• 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

  • 相关阅读:
    HTML5的智能提示在VisualStudio2010
    浏览器的缓存机制
    等待资源(wait_resource)解码(完整版)
    对quartz的总结
    利用Spring动态对Quartz定时任务管理
    Tomcat源码分析(一)服务启动
    深入分析 Java 中的中文编码问题
    企业搜索引擎开发之连接器connector(一)
    SpringQuartz (一)
    Quartz 项目应用笔记
  • 原文地址:https://www.cnblogs.com/findumars/p/5830126.html
Copyright © 2020-2023  润新知