Delphi XE5 Android 调用手机震动(通过JObject测试是否支持震动)
源码如下:
- 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权限 }
- // <del>LVibrator := TJVibrator.Create as JVibrator;</del>
- { 使用官方推荐方式创建 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;
http://blog.csdn.net/flcop/article/details/13290779
Delphi XE5 Android 调用手机震动(通过JObject测试是否支持震动)的更多相关文章
- Delphi XE5 Android 调用手机震动
uses Androidapi.JNI.Os, Androidapi.JNIBridge; function GetVibratorArray(const AIntArr: array of Int6 ...
- Delphi XE5 Android 调用 Google ZXing
{ Google ZXing Call demo Delphi Version: Delphi XE5 Version 19.0.13476.4176 By: flcop(zylove619@hotm ...
- delphi xe5 android 调用照相机获取拍的照片
本篇文章我们来看一下delphi xe5 在android程序里怎样启动照相机并获取所拍的照片,本代码取自xe自带打sample,路径为: C:\Users\Public\Documents\RAD ...
- 学习使用Delphi for android 调用Java类库
http://blog.csdn.net/laorenshen/article/details/41148253 学习使用Delphi for android 调用Java类库 2014-11-15 ...
- Delphi XE5 android 获取网络状态
unit Androidapi.JNI.Network; interface function IsConnected: Boolean; function IsWiFiConnected: Bool ...
- delphi xe5 android iny绿色版+最新SDK/NDK安装方法
转自: http://bbs.2ccc.com/topic.asp?topicid=438595 首先感谢iny的绿色版,因为我的精简Win7 32位安装原版镜像4.63G过程正常,但是编译出错,后来 ...
- delphi xe5 android 服务端和手机端的源码下载
xe5 android的服务端和手机客户端的源代码下载地址 http://files.cnblogs.com/nywh2008/AndroidTest.rar
- xe5 android 调用照相机获取拍的照片[转]
本篇文章我们来看一下delphi xe5 在android程序里怎样启动照相机并获取所拍的照片,本代码取自xe自带打sample,路径为: C:\Users\Public\Documents\RAD ...
- Delphi XE5 android 获取网络状态《转》
unit Androidapi.JNI.Network; interface function IsConnected: Boolean; function IsWiFiConnected: Bool ...
随机推荐
- SQLServer重建索引
Use [数据库名称]Go DECLARE @DBCCString NVARCHAR(1000)DECLARE @TableName VARCHAR(100)DECLARE Cur_Index CUR ...
- js进阶 9-11 select选项框如何动态添加和删除元素
js进阶 9-11 select选项框如何动态添加和删除元素 一.总结 一句话总结: 二.js进阶 9-11 select选项框如何动态添加和删除元素 1.案例说明 2.相关知识 Select 下拉列 ...
- WPF入门(三)->几何图形之不规则图形(PathGeometry)
原文:WPF入门(三)->几何图形之不规则图形(PathGeometry) 前面我们给大家介绍了LineGeometry,EllipseGeometry,CombinedGeometry等一些规 ...
- 【81.37%】【codeforces 734B】Anton and Digits
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- 【33.33%】【codeforces 681D】Gifts by the List
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- Objective-C 数据类型 (一)
数据类型分为三类:基本数据类型,对象类型,id类型. 基本数据类型:int ,float double char 对象类型:类,指针对象,协议 id类型:可以表示对象类型(在表示对象类型的时候 不需要 ...
- Network architecture for minimalistic connected objects
In one embodiment, a network architecture comprises minimalistic connected objects (MCOs), distribut ...
- Codeforces 449 B. Jzzhu and Cities
堆优化dijkstra,假设哪条铁路能够被更新,就把相应铁路删除. B. Jzzhu and Cities time limit per test 2 seconds memory limit per ...
- Android 4.0开发之GridLayOut布局实践
在上一篇教程中http://blog.csdn.net/dawanganban/article/details/9952379,我们初步学习了解了GridLayout的布局基本知识,通过学习知道,Gr ...
- Win7 64有点找不到MSVCP71.DLL和MSVCR71.dll
现象: win7启动好多程序都报找不到MSVCP71.DLL,网页上不去,可是非常奇怪的是好像在线给系统打补丁没有受到不论什么影响,能正常打补丁. 解决: 从本机搜索了一下msvcp71.dll ...