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 ...
随机推荐
- 小强的HTML5移动开发之路(32)—— JavaScript回顾7
BOM模型brower object model(浏览器对象模型),通过浏览器内置的一些对象可以操作浏览器本身. DOM是用来操作页面的,BOM是用来操作浏览器本身的. BOM是没有规范的,但是大部分 ...
- XMPP之ios即时通讯客户端开发-配置XMPP基本信息之工程代码(五)
登录功能完成以后包含以下代码文件: AppDelegate.h AppDelegate.m LoginViewController.h LoginViewController.m LoginUser. ...
- 利用SendMessage实现窗口拖动
原文:利用SendMessage实现窗口拖动 利用SendMessage实现窗口拖动 周银辉 想想以前用跟踪鼠标位 ...
- Web静态服务器
Web静态服务器 编程微刊 Web静态服务器-1-显示固定的页面 #coding=utf-8 import socket def handle_client(client_socket): " ...
- Ruby开发环境
Windows上Ruby开发环境的配置 最近公司项目上有需要,需要开发一个puppet的自动化工具,这个工具需要操作存储设备上的各种资源,而鉴于puppet不是善于完成这个任务的首选语言,于是我们 ...
- js 如何一次性删除数组中的多个元素
用for循环或者forEach遍历数组的话,在方法体内部splice都得不到正确的结果.有什么好的办法解决这个问题吗? var arr=[2,3,5,7]; arr.forEach(function( ...
- webpack之font-awesome
1.安装font-awesome和font-awesome-loader及依赖 git:https://github.com/shakacode/font-awesome-loader npm ins ...
- 利用Adorner制作用于图像裁切的选择框
原文:利用Adorner制作用于图像裁切的选择框 前天,我写了一篇"使用Adorner显示WPF控件的边界点"的文章.这次,使用从Adorner继承来写一个用于图像裁切的选择框. ...
- Win32 Windows计划 十一年
一个.使用位图 1 位图 - 由图像上的各点的颜色被保存,生成对应的位图文件 栅格 - 保存图像可以理解为晶格 矢量图 - 能够理解为画图命令的保存 2 位图的使用 2.1 载入位图 LoadBitm ...
- 形态学-扩大-C代码
直接在代码,难.他们明白: void MorhpolotyDilate_ChenLee(unsigned char* pBinImg, int imgW, int imgH, Tpoint* mask ...