delphi 手机振动 IOS Android
https://community.embarcadero.com/blogs/entry/how-to-vibrate-ios-and-android-phones-using-firemonkey-and-xe8
http://blogs.embarcadero.com/davidi/2015/07/06/43894/
unit Umain; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls {$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} Const libAudioToolbox = ‘/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox‘; kSystemSoundID_vibrate = $FFF; Procedure AudioServicesPlaySystemSound( inSystemSoundID: integer ); Cdecl; External libAudioToolbox Name _PU + ‘AudioServicesPlaySystemSound‘; {$ENDIF} type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.Button1Click(Sender: TObject); {$IFDEF ANDROID} Var Vibrator:JVibrator; {$ENDIF} begin {$IFDEF ANDROID} Vibrator:=TJVibrator.Wrap((SharedActivityContext.getSystemService(TJContext.JavaClass.VIBRATOR_SERVICE) as ILocalObject).GetObjectID); // Vibrate for 500 milliseconds Vibrator.vibrate(500); {$ENDIF} {$IFDEF IOS} AudioServicesPlaySystemSound( kSystemSoundID_vibrate ); {$ENDIF} end; end.
时间: 2024-10-07 02:52:06