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
LVibrator: JVibrator;
LJavaArray: TJavaArray<Int64>;
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(); { Test procedure vibrate(pattern: TJavaArray<Int64>; repeat_: Integer); cdecl; overload;
pattern: 为震动数组参数,偶数代表等待时间(ms), 奇数代表震动持续时间(ms)
repeat_: -1: 只震动一遍; > -1: 从Index为 repeat_ 的位置开始重复震动 } { 创建测试数组 }
LJavaArray := GetVibratorArray([, , , ]); { 效果B: 等待500毫秒 -> 震动1秒 -> 等待2秒 -> 震动3秒 }
// LVibrator.vibrate(LJavaArray, -); { 效果C: 效果B重复震动 }
// LVibrator.vibrate(LJavaArray, ); { 取消震动(当手机暗屏或锁屏时会自动取消) }
// LVibrator.cancel; { 效果D: (等待500毫秒 -> 震动1秒 -> 等待2秒 -> 震动3秒)(先按原顺序震动一遍)
接着循环 [1000, 2000, 3000]
->(等待1秒 -> 震动2秒 - > 等待3秒)
->[等待1秒 -> 等待2秒 ... ]
这个听上去的效果像( 等待4秒 -> 震动2秒 )}
// LVibrator.vibrate(LJavaArray, ); { 效果E: (先按原顺序执行一遍), 接着不会震动(偶数为等待时间) }
// LVibrator.vibrate(LJavaArray, ); { 效果F: 当然是报IndexOutBounds异常 }
// LVibrator.vibrate(LJavaArray, {!!!}); end;

Delphi XE5 Android 调用手机震动的更多相关文章

  1. Delphi XE5 Android 调用手机震动(通过JObject测试是否支持震动)

    源码如下: uses Androidapi.JNI.Os, Androidapi.JNIBridge; function GetVibratorArray(const AIntArr: array o ...

  2. Delphi XE5 Android 调用 Google ZXing

    { Google ZXing Call demo Delphi Version: Delphi XE5 Version 19.0.13476.4176 By: flcop(zylove619@hotm ...

  3. delphi xe5 android 调用照相机获取拍的照片

    本篇文章我们来看一下delphi xe5 在android程序里怎样启动照相机并获取所拍的照片,本代码取自xe自带打sample,路径为: C:\Users\Public\Documents\RAD ...

  4. 学习使用Delphi for android 调用Java类库

    http://blog.csdn.net/laorenshen/article/details/41148253 学习使用Delphi for android 调用Java类库 2014-11-15 ...

  5. html5调用手机震动

    在h5里面里面,浏览器对象有个vibrate属性.顾名思义,翻译过来就是震动的意思,这个api属性方法如下: 要调用的例子 if (window.navigator.vibrate) window.n ...

  6. Unity3d之音效播放和调用手机震动

    http://blog.csdn.net/sunshine_1984/article/details/12943979 今天研究了下Unity3d音效播放相关内容,整理下实现细节. 1,添加音效文件到 ...

  7. delphi xe5 android iny绿色版+最新SDK/NDK安装方法

    转自: http://bbs.2ccc.com/topic.asp?topicid=438595 首先感谢iny的绿色版,因为我的精简Win7 32位安装原版镜像4.63G过程正常,但是编译出错,后来 ...

  8. delphi xe5 android 服务端和手机端的源码下载

    xe5 android的服务端和手机客户端的源代码下载地址 http://files.cnblogs.com/nywh2008/AndroidTest.rar

  9. xe5 android 调用照相机获取拍的照片[转]

    本篇文章我们来看一下delphi xe5 在android程序里怎样启动照相机并获取所拍的照片,本代码取自xe自带打sample,路径为: C:\Users\Public\Documents\RAD ...

随机推荐

  1. Lab 6-3

    In this lab, we'll analyze the malware found in the file Lab06-03.exe. Questions and Short Answers C ...

  2. LeetCode--025--k个一组翻转链表(java)

    给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序. 示例 : 给定这个链表: ...

  3. 『Python CoolBook』C扩展库_其六_线程

    GIL操作 想让C扩展代码和Python解释器中的其他进程一起正确的执行, 那么你就需要去释放并重新获取全局解释器锁(GIL). 在Python接口封装中去释放并重新获取全局解释器锁(GIL),此时本 ...

  4. IO流的分类

    按内容分:字节流和字符流 按流向分:输入流和输出流 字节流: 输入流:InputStream 输出流:OutputStream 字符流: 输入流:FileReader 输出流:FileWriter

  5. 蓝桥杯 算法训练 素因子去重 (java)

    问题描述 给定一个正整数n,求一个正整数p,满足p仅包含n的所有素因子,且每个素因子的次数不大于1   输入格式 一个整数,表示n   输出格式 输出一行,包含一个整数p.   样例输入 1000   ...

  6. C++使用: C++中map的基本操作和用法

    在阅读SSD代码中发现作者使用了C++中的map方法,因此搜索该关联式容器的使用方法,在这里一并总结. 一.Map 簡介 Map是STL的一個容器,它提供一對一的hash. 第一個可以稱為關鍵字(ke ...

  7. .net core 使用 ef core

    第一步: 创建一个.net core console app. 第二步:安装EFCore package 和  design(以前vs是有EF项目模板的,core版本现在没有,所有安装这个工具来创建M ...

  8. ActiveMQ使用介绍及实例

    上一篇讲了rabbitmq的使用以及demo,activemq的思路也与之有相似的地方. activemq是基于Java实现的.activemq没有rabbitmq那么多的路由规则,其通信方式只有两种 ...

  9. JS中的一等公民:函数

    在JavaScript中,函数可以 作为值赋给一个变量 作为参数传递给另一个函数 作为另一个函数的返回值 所以我们说JavaScript的函数是“一等公民”. 赋值: var foo = functi ...

  10. 非常好的开源C项目tinyhttpd(500行代码)

    编译命令 gcc -W -Wall -lpthread -o httpd httpd.c 源码 #include <stdio.h> #include <sys/socket.h&g ...