Delphi XE6 for Android 讓手機震動(調用Java的函數)

來源:互聯網
上載者:User

標籤:

震動,是調用了 安卓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的函數)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.