Delphi XE6 for Android 让手机震动(调用Java的函数)
震动,是调用了 安卓api JNI 里面的 函数 ,这些都是 调用java的 ,如下面的引用,
uses
FMX.Helpers.Android,
Androidapi.JNI.App,
Androidapi.JNI.Os,
Androidapi.JNIBridge, FMX.StdCtrls;
还是分几步,
1 新建一个手机项目
打开xe6, file ---- new ----FireMonkeyMobile Application-Delphi
2 选择black application 点击ok。
3 在打开的窗口中,放入几个个Button控件.
4、点击保存按钮,将程序保存在你事先设定好的目录中。
5、给Button按钮写的点击事件写点代码:
procedure TForm1.Button2Click(Sender: TObject);
var
LVibrator:JVibrator;
begin
LVibrator:=TJVibrator.Wrap((SharedActivity.getSystemService(TJActivity.javaClass.VIBRATOR_SERVICE ) as iLocalObject).GetObjectID );//引用震动
if not LVibrator.hasVibrator then
begin
showmessage('手机不支持震动');
exit;
end;
LVibrator.vibrate(200);//震动200ms
end;
6 运行 看看, 手机上直接就出来了,呵呵
7 再加几个按钮,看看,停止震动按钮
procedure TForm1.Button5Click(Sender: TObject);
var
LVibrator:JVibrator;
LJavaArray:TJavaArray<int64>;
begin
LVibrator:=TJVibrator.Wrap((SharedActivity.getSystemService(TJActivity.javaClass.VIBRATOR_SERVICE ) as iLocalObject).GetObjectID );//调用震动
LVibrator.cancel ;//立刻停止震动
end;
8 然后如果要想,有规律的震动,怎么弄呢? 继续添加2个按钮和一个函数
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 TForm1.Button3Click(Sender: TObject);
var
LVibrator:JVibrator;
LJavaArray:TJavaArray<int64>;
begin
LVibrator:=TJVibrator.Wrap((SharedActivity.getSystemService(TJActivity.javaClass.VIBRATOR_SERVICE ) as iLocalObject).GetObjectID );
if not LVibrator.hasVibrator then
begin
showmessage('手机不支持震动');
exit;
end;
LJavaArray:=GetVibratorArray([200,1000,3000,5000]);//调用震动规律
LVibrator.vibrate(LJavaArray,-1);//不重复, 震动一 次
end;
procedure TForm1.Button4Click(Sender: TObject);
var
LVibrator:JVibrator;
LJavaArray:TJavaArray<int64>;
begin
LVibrator:=TJVibrator.Wrap((SharedActivity.getSystemService(TJActivity.javaClass.VIBRATOR_SERVICE ) as iLocalObject).GetObjectID );
if not LVibrator.hasVibrator then
begin
showmessage('手机不支持震动');
exit;
end;
LJavaArray:=GetVibratorArray([200,1000,3000,5000]);//调用震动规律
LVibrator.vibrate(LJavaArray,0);//v不停重复,大于0的参数,可以指定震动次数
end;
注意: 运行的时候,手机别黑屏。
http://blog.csdn.net/laorenshen/article/details/41148843
Delphi XE6 for Android 让手机震动(调用Java的函数)的更多相关文章
- delphi xe6 for android 自带控件LocationSensor优先使用GPS定位的方法
delphi xe6 for android LocationSensor控件默认是优先使用网络定位,对定位精度要求高的应用我们可以修改原码直接指定GPS定位. 修改方法: 将C:\Program F ...
- Android JNI c/c++调用java 无需新建虚拟机
近期通过研究SDL源码 得出android JNI c/c++调用java 无需新建虚拟机: 具体步骤如下 第一步获得:两个参数 JNIEnv和jclass void Java_com_Test_A ...
- hive 调用java的函数和科学记数法转换
hive中field如果是string,比如id,那么使用10000000000+id结果是科学计数法显示,转换为正常显示方法: select (10000000000+cast(id as int) ...
- Delphi XE6 试用Android视频采集
FMX支持视频采集,具体见FMX.Media,提供了很类支持音频.视频的处理. 按帮助文档,用Note3做了测试,结果,效率太低,不可用. 具体可查询帮助Video Capturing一节,我就是按这 ...
- 六、Android学习笔记_JNI_c调用java代码
1.编写native方法(java2c)和非native方法(c2java): package com.example.provider; public class CallbackJava { // ...
- Android学习笔记_JNI_c调用java代码
1.编写native方法(java2c)和非native方法(c2java): package com.example.provider; public class CallbackJava { // ...
- Android JNI中C调用Java方法
背景需求 我们需要在JNI的C代码调用Java代码.实现原理:使用JNI提供的反射借口来反射得到Java方法,进行调用. JNI关键方法讲解. 1. 在同一个类中,调用其他方法 JNIEXPORT v ...
- Android实例-手机震动(XE8+小米2)
相关资料:http://blog.csdn.net/laorenshen/article/details/41148843 结果: 1.打开Vibrate权限为True. 2.规律震动我没感觉出来,有 ...
- Android NDK 学习之调用Java函数
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...
随机推荐
- Git 经常使用的命令
查看.参加.服从.删.恢复,复位更改文件 git help <command> # 演出command的help git show # 显示的提交内容 git show $id git c ...
- 一、Bitmap的recycle问题
尽管Android有自己的垃圾回收机制,对于是不是要我们自己调用recycle,还的看情况而定.假设仅仅是使用少量的几张图片,回收与否关系不大.但是若有大量bitmap须要垃圾回收处理,那必定垃圾回收 ...
- char* 和char[]的差别
下面内容均来自互联网,系笔者汇总并总结. 1. 问题介绍 问题引入: 在实习过程中发现了一个曾经一直默认的错误,相同char *c = "abc"和char c[]="a ...
- async 与 await异步编程活用基础
[本文转自:http://www.cnblogs.com/x-xk/archive/2013/06/05/3118005.html 作者:肅] 好久没写博客了,时隔5个月,奉上一篇精心准备的文章,希 ...
- svn 树冲突
情况类似如下:(其中 removed_directory 是你工作的某个目录) 代码如下 复制代码 $svn statusD C removed_directory> local ...
- 【Android】广播BrocastReceiver
1.Android中广播主要分为两种:标准广播和有序广播. 标准广播:完全异步执行.广播发出后,所有的广播接收器几乎在同一刻收到广播事件,没有先后顺序之分. 优点:效率高 缺点:不能被截断 有序广播: ...
- oracle左右连接 完全连接 有效连接 心得总结
左链接 A表 Left join B表 on 条件 示例 A表 B表 SELECT * FROM A left JOIN B ON A.AID = B.BID; 结果: 左链接查询出来的数 ...
- C#压缩文件为zip格式
Vercher C#压缩文件为zip格式 需要ICSharpCode.SharpZipLib.dll,网上下载的到. 代码是从网上找来的: 1 public class ZipClass 2 { ...
- if elsif;报错;new赋值
1. IF INSERTING THEN BEGIN 中间不能为空 END;ELSIF DELETING THEN BEGIN E ...
- Kickstart + http Linux自动化部署服务端
设备需要开启Network Boot功能.具体PXE技术就另外提,本文主要讲解配置. 在搭建该服务器之前需要关闭SELinux和iptables不然可能dhcp服务都起不来,客户端收不到IP地址,无法 ...