zoukankan      html  css  js  c++  java
  • Android实例-手机震动(XE8+小米2)

    相关资料:http://blog.csdn.net/laorenshen/article/details/41148843

    结果:

    1.打开Vibrate权限为True。

    2.规律震动我没感觉出来,有了解情况的请联系我。多谢了。

    实例代码:

      1 unit Unit1;
      2 
      3 interface
      4 
      5 uses
      6   System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      7   FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
      8   Androidapi.Helpers,//
      9   FMX.Helpers.Android,//
     10   Androidapi.JNI.App,//
     11   Androidapi.JNI.Os,//
     12   Androidapi.JNIBridge,//
     13   FMX.StdCtrls, FMX.Controls.Presentation;//
     14 type
     15   TForm1 = class(TForm)
     16     Button1: TButton;
     17     Button2: TButton;
     18     Button3: TButton;
     19     Button4: TButton;
     20     Label1: TLabel;
     21     procedure Button1Click(Sender: TObject);
     22     procedure Button2Click(Sender: TObject);
     23     procedure Button3Click(Sender: TObject);
     24     procedure Button4Click(Sender: TObject);
     25   private
     26     { Private declarations }
     27   public
     28     { Public declarations }
     29   end;
     30 
     31 var
     32   Form1: TForm1;
     33 
     34 implementation
     35 
     36 {$R *.fmx}
     37 {$R *.NmXhdpiPh.fmx ANDROID}
     38 
     39 function GetVibratorArray(const AintArr:array of Int64):TJavaArray<Int64>;//震动规律函数
     40 var
     41   Lindex: Integer;
     42 begin
     43   Result:=TJavaArray<Int64>.Create(Length(AintArr));
     44   for Lindex:=Low(AintArr) to High(AintArr) do
     45     Result.Items[Lindex] := AintArr[Lindex];
     46 end;
     47 
     48 procedure TForm1.Button1Click(Sender: TObject);
     49 var
     50   LVibrator: JVibrator;
     51 begin
     52   LVibrator := TJVibrator.Wrap((SharedActivity.getSystemService(TJActivity.javaClass.VIBRATOR_SERVICE) as iLocalObject).GetObjectID);//引用震动
     53   if not LVibrator.hasVibrator then
     54   begin
     55     Showmessage('手机不支持震动');
     56     Exit;
     57   end;
     58   LVibrator.vibrate(200);//震动200ms
     59 end;
     60 
     61 procedure TForm1.Button2Click(Sender: TObject);
     62 var
     63   LVibrator:JVibrator;
     64   LJavaArray:TJavaArray<Int64>;
     65 begin
     66   LVibrator := TJVibrator.Wrap((SharedActivity.getSystemService(TJActivity.javaClass.VIBRATOR_SERVICE) as iLocalObject).GetObjectID);//调用震动
     67   LVibrator.cancel;//停止震动
     68 end;
     69 
     70 procedure TForm1.Button3Click(Sender: TObject);
     71 var
     72   LVibrator:JVibrator;
     73   LJavaArray:TJavaArray<Int64>;
     74 begin
     75   LVibrator := TJVibrator.Wrap((SharedActivity.getSystemService(TJActivity.javaClass.VIBRATOR_SERVICE) as iLocalObject).GetObjectID);
     76   if not LVibrator.hasVibrator  then
     77   begin
     78     Showmessage('手机不支持震动');
     79     Exit;
     80   end;
     81   LJavaArray := GetVibratorArray([200, 1000, 3000, 5000]);//调用震动规律//我没感觉出来,如果你们能感觉出来,给我说一下。
     82   LVibrator.vibrate(LJavaArray, -1);//震动一遍
     83 end;
     84 
     85 procedure TForm1.Button4Click(Sender: TObject);
     86 var
     87   LVibrator:JVibrator;
     88   LJavaArray:TJavaArray<Int64>;
     89 begin
     90   LVibrator:=TJVibrator.Wrap((SharedActivity.getSystemService(TJActivity.javaClass.VIBRATOR_SERVICE) as iLocalObject).GetObjectID);
     91   if not LVibrator.hasVibrator  then
     92   begin
     93     Showmessage('手机不支持震动');
     94     Exit;
     95   end;
     96   LJavaArray := GetVibratorArray([200, 1000, 3000, 5000]);//调用震动规律
     97   LVibrator.vibrate(LJavaArray, 0);//重复  //-1:震动一遍  0:重复   >0:指定震动遍数
     98 end;
     99 
    100 end.
  • 相关阅读:
    内存溢出异常
    Java堆中的对象
    运行时数据区域
    字符串常量池
    自己编译JDK
    @PathVariable注解详解
    spring容器监听器
    redis和spring整合
    Redis安装、启动、关闭
    HDU3974 Assign the task
  • 原文地址:https://www.cnblogs.com/FKdelphi/p/4995011.html
Copyright © 2011-2022 走看看