震动,是调用了 安卓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);//震动200ms end;
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;
注意: 运行的时候,手机别黑屏。
http://blog.csdn.net/laorenshen/article/details/41148843
|
请发表评论