网站开发平台是什么,利用免费网站做SEO,wordpress支持的邮箱,低学历吃香的十大职业一、前言 我们在开发移动端APP的时候#xff0c;有时可能需要APP能够提供震动功能#xff0c;以便提醒操作者#xff0c;特别是ios提供的3D Touch触感功能#xff0c;操作者操作时会有触感震动#xff0c;给操作者的感觉很友好。那么#xff0c;在Delphi的移动端FMX开发中…
一、前言 我们在开发移动端APP的时候有时可能需要APP能够提供震动功能以便提醒操作者特别是ios提供的3D Touch触感功能操作者操作时会有触感震动给操作者的感觉很友好。那么在Delphi的移动端FMX开发中如何实现
二、验证环境
以下程序代码在Delphi 的11.3上测试通过注意在android系统中需要设置 Vibrate 权限。 测试设备
androidRedmi K30 5G android 11版本iosiPhone 13 Pro Max 15.0.2
以上设备版本测试通过。
三、实现代码
函数说明
//Param :
// android上表示震动需要持续的时间单位是毫秒
// ios上表示震动的类型
// $FFF 表示震动
// $5EF(1519)表示3D Touch 中 Peek 震动反馈
// $5F0(1520) 3D Touch 中 Pop 震动反馈
// $5F1(1521)表示连续三次短震
procedure Vibrate(Param : Integer 0);
全部代码如下使用时引用uVibrate_IOS_Android.pas单元即可使用上述函数。
{ sensor 2023-12-06
}
unit uVibrate_IOS_Android;interface
uses
{$IFDEF ANDROID}Androidapi.JNI.Os,Androidapi.JNI.GraphicsContentViewText,Androidapi.Helpers,Androidapi.JNIBridge;
{$ENDIF}
{$IFDEF IOS}//IOSapi.MediaPlayer,//IOSapi.CoreGraphics,//FMX.Platform,//FMX.Platform.IOS,//IOSapi.UIKit,Macapi.ObjCRuntime;//Macapi.ObjectiveC,//iOSapi.Cocoatypes,//Macapi.CoreFoundation,//iOSapi.Foundation,//iOSapi.CoreImage,//iOSapi.QuartzCore,//iOSapi.CoreData
{$ENDIF}{$IFDEF IOS}
ConstlibAudioToolbox /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox;kSystemSoundID_vibrate $FFF; //表示震动Procedure AudioServicesPlaySystemSound( inSystemSoundID: integer ); Cdecl; External libAudioToolbox Name _PU AudioServicesPlaySystemSound;
{$ENDIF}//Param :
// android上表示震动需要持续的时间单位是毫秒
// ios上表示震动的类型
// $FFF 表示震动
// $5EF(1519)表示3D Touch 中 Peek 震动反馈
// $5F0(1520) 3D Touch 中 Pop 震动反馈
// $5F1(1521)表示连续三次短震
procedure Vibrate(Param : Integer 0);implementationprocedure Vibrate(Param : Integer);
{$IFDEF ANDROID}
VarVibrator:JVibrator;
{$ENDIF}
begin{$IFDEF ANDROID}if Param 0 then Param : 300;Vibrator:TJVibrator.Wrap((SharedActivityContext.getSystemService(TJContext.JavaClass.VIBRATOR_SERVICE) as ILocalObject).GetObjectID);// Vibrate for Param millisecondsVibrator.vibrate(Param);{$ENDIF}{$IFDEF IOS}if Param 0 then Param : kSystemSoundID_vibrate;AudioServicesPlaySystemSound( Param );{$ENDIF}
end;end.参考How to vibrate iOS and Android phones using FireMonkey and XE8