zoukankan      html  css  js  c++  java
  • Delphi XE6 for Android 让手机震动(调用Java的函数)

    震动,是调用了 安卓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

  • 相关阅读:
    2018-2019-2 20175202实验三《敏捷开发与XP实践》实验报告
    20175202 葛旭阳 MyCP
    20175202 《Java程序设计》第九周学习总结
    20175202 《Java程序设计》第八周学习总结
    2018-2019-2 20175202实验二《Java面向对象程序设计》实验报告
    20175202 结对编程练习—四则运算(第一周)
    20175203 2018-2019 实验三 《敏捷开发与XP实践》
    2018-2019-20175203 实验二 《Java面向对象程序设计》
    20175203 2018-2019-2 实验一《Java开发环境的熟悉》实验报告
    20175203 2018-2019-2《Java程序设计》第五周学习总结
  • 原文地址:https://www.cnblogs.com/findumars/p/5830126.html
Copyright © 2011-2022 走看看