Delphi XE5 Android 调用手机震动
2013-10-28 12:49
573 查看
源码如下:
uses Androidapi.JNI.Os, Androidapi.JNIBridge; 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 VibratorTest; var LVibratorObj: JObject; LVibrator: JVibrator; LJavaArray: TJavaArray<Int64>; begin { Vibrator概要: cancel(): 关闭震动 hasVibrator():检查硬件是否支持 vibrate(long milliseconds): 震动milliseconds毫秒 vibrate(long[] pattern, int repeat):按给定数组震动 } { 需要开启Vibrator权限 } // LVibrator := TJVibrator.Create as JVibrator; { 使用官方推荐方式创建 2014-5-8 update} LVibratorObj := SharedActivity.getSystemService( TJContext.JavaClass.VIBRATOR_SERVICE); LVibrator := TJVibrator.Wrap((LVibratorObj as ILocalObject).GetObjectID); { 测试手机是否支持震动 } 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<Int64>; 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;
相关文章推荐
- Delphi XE5 Android 调用手机震动
- Delphi XE5 Android 调用手机震动(通过JObject测试是否支持震动)
- Delphi XE5 Android 调用手机震动
- Delphi XE5 Android 调用 Google ZXing
- delphi xe5 android 调用照相机获取拍的照片
- delphi xe5 android 开发实现手机打电话和发短信
- android 调用手机震动
- delphi xe5 android 手机上使用sqlite
- Android 调用手机震动
- android 调用手机震动
- delphi xe5 android 开发实现手机打电话和发短信
- Delphi XE5 for android 调用Java类库必看的文件
- Delphi XE 5 真机调试 Android 程序时如何让 XE5 发现你的安卓手机
- Delphi XE6 for Android 让手机震动(调用Java的函数)
- delphi XE5开发Android程序调用电话相关功能(短信息和电话)
- Android 手机震动调用
- 关于Android手机应用中如何调用手机震动
- delphi xe5 android 开发实现手机打电话和发短信
- Delphi XE5 Android 调用 Google ZXing
- Delphi XE5 Android 调用 Google ZXing