Delphi XE5 Android 调用手机震动


本文整理自网络,侵删。

 
uses
  Androidapi.JNI.Os,
  Androidapi.JNIBridge;

function GetVibratorArray(const AIntArr: array of Int64): TJavaArray;
var
  LIndex: Integer;
begin
  Result := TJavaArray.Create(Length(AIntArr));
  for LIndex := Low(AIntArr) to High(AIntArr) do
    Result.Items[LIndex] := AIntArr[LIndex];
end;

procedure VibratorTest;
var
  LVibrator: JVibrator;
  LJavaArray: TJavaArray;
begin
  { Vibrator概要:
      cancel(): 关闭震动
      hasVibrator():检查硬件是否支持
      vibrate(long milliseconds): 震动milliseconds毫秒
      vibrate(long[] pattern, int repeat):按给定数组震动 }

  { 需要开启Vibrator权限 }
  LVibrator := TJVibrator.Create as JVibrator;

  { 测试手机是否支持震动 }
  if not LVibrator.hasVibrator then
  begin
    ShowMessage('手机不支持震动');
    Exit;
  end;

{ Test procedure vibrate(milliseconds: Int64); cdecl; overload; }

  { 效果A: 立即震动 800 毫秒 }
//  LVibrator.vibrate(800);

{ Test procedure vibrate(pattern: TJavaArray; repeat_: Integer); cdecl; overload;
   pattern: 为震动数组参数,偶数代表等待时间(ms), 奇数代表震动持续时间(ms)
   repeat_: -1: 只震动一遍;  > -1: 从Index为 repeat_ 的位置开始重复震动 }

  { 创建测试数组 }
  LJavaArray := GetVibratorArray([500, 1000, 2000, 3000]);

  { 效果B: 等待500毫秒 -> 震动1秒 -> 等待2秒 -> 震动3秒 }
//  LVibrator.vibrate(LJavaArray, -1);

  { 效果C: 效果B重复震动 }
//  LVibrator.vibrate(LJavaArray, 0);

  { 取消震动(当手机暗屏或锁屏时会自动取消) }
//  LVibrator.cancel;

  { 效果D: (等待500毫秒 -> 震动1秒 -> 等待2秒 -> 震动3秒)(先按原顺序震动一遍)
           接着循环 [1000, 2000, 3000]
           ->(等待1秒 -> 震动2秒 - > 等待3秒)
           ->[等待1秒 -> 等待2秒 ... ]
           这个听上去的效果像( 等待4秒 -> 震动2秒 )}
  // LVibrator.vibrate(LJavaArray, 1);

  { 效果E: (先按原顺序执行一遍), 接着不会震动(偶数为等待时间) }
//  LVibrator.vibrate(LJavaArray, 3);

  { 效果F: 当然是报IndexOutBounds异常 }
//  LVibrator.vibrate(LJavaArray, {!!!}4);

end;

来源:http://blog.csdn.net/flcop/article/details/13290779

相关阅读 >>

Delphi 得到字符串拼音首字母

Delphi 查找目录下文件(多文件查找)

Delphi 调用dll文件中的form

Delphi如何过xp的防火墙而不被拦截

Delphi adoquery查询,如何得到查询记录数?

Delphi的with…do语句的用法

Delphi的窗体文件(dfm)文件中的汉字提取出来?

Delphi memo1 光标跟随鼠标移动

Delphi 串口常用的字符串转换函数

Delphi实现url编码解码函数

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...