標籤:
震動,是調用了 安卓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
Delphi XE6 for Android 讓手機震動(調用Java的函數)