本文整理自网络,侵删。
震动,是调用了 安卓api JNI 里面的 函数 ,这些都是 调用java的 ,如下面的引用,
uses FMX.Helpers.Android, Androidapi.JNI.App, Androidapi.JNI.Os, Androidapi.JNIBridge, FMX.StdCtrls;
还是分几步,
1 新建一个手机项目
打开xe6, file ---- new ----FireMonkeyMobile Application-Delphi
2 选择black application 点击ok。
3 在打开的窗口中,放入几个个Button控件.
4、点击保存按钮,将程序保存在你事先设定好的目录中。
5、给Button按钮写的点击事件写点代码:
procedure TForm1.Button2Click(Sender: TObject);var LVibrator:JVibrator;begin LVibrator:=TJVibrator.Wrap((SharedActivity.getSystemService(TJActivity.javaClass.VIBRATOR_SERVICE ) as iLocalObject).GetObjectID );//引用震动
if not LVibrator.hasVibrator then begin showmessage('手机不支持震动'); exit; end;
LVibrator.vibrate(200);//震动200msend;
6 运行 看看, 手机上直接就出来了,呵呵
7 再加几个按钮,看看,停止震动按钮
procedure TForm1.Button5Click(Sender: TObject);var LVibrator:JVibrator; LJavaArray:TJavaArray<int64>;begin LVibrator:=TJVibrator.Wrap((SharedActivity.getSystemService(TJActivity.javaClass.VIBRATOR_SERVICE ) as iLocalObject).GetObjectID );//调用震动 LVibrator.cancel ;//立刻停止震动end;
8 然后如果要想,有规律的震动,怎么弄呢? 继续添加2个按钮和一个函数
function GetVibratorArray(const AintArr:array of int64):TJavaArray<int64>;//震动规律函数var Lindex:integer;begin Result:=TJavaArray<int64>.Create(Length(AintArr)); for Lindex:=Low(AintArr) to High(AintArr) do Result.Items [Lindex]:= AintArr[Lindex];end;
procedure TForm1.Button3Click(Sender: TObject);var LVibrator:JVibrator; LJavaArray:TJavaArray<int64>;begin LVibrator:=TJVibrator.Wrap((SharedActivity.getSystemService(TJActivity.javaClass.VIBRATOR_SERVICE ) as iLocalObject).GetObjectID ); if not LVibrator.hasVibrator then begin showmessage('手机不支持震动'); exit; end; LJavaArray:=GetVibratorArray([200,1000,3000,5000]);//调用震动规律 LVibrator.vibrate(LJavaArray,-1);//不重复, 震动一 次
end;
procedure TForm1.Button4Click(Sender: TObject);var LVibrator:JVibrator; LJavaArray:TJavaArray<int64>;begin LVibrator:=TJVibrator.Wrap((SharedActivity.getSystemService(TJActivity.javaClass.VIBRATOR_SERVICE ) as iLocalObject).GetObjectID ); if not LVibrator.hasVibrator then begin showmessage('手机不支持震动'); exit; end; LJavaArray:=GetVibratorArray([200,1000,3000,5000]);//调用震动规律 LVibrator.vibrate(LJavaArray,0);//v不停重复,大于0的参数,可以指定震动次数end;
注意: 运行的时候,手机别黑屏。
相关阅读 >>
Delphi 创建win桌面快捷方式,实现360桌面图标数字提示 或 类似安卓的右上角的数字提示
Delphi ifileoperation替换shfileoperation
更多相关阅读请进入《Delphi》频道 >>