Pawel Glowacki asked about vibrating smartphones using Delphi code for iOS and Android. Thierry Laborde and Williamm Wittwer of Embarcadero France provided the following Delphi and FireMonkey sample code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
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. |
Notes: For the iOS part you have to go to the SDK Manager, choose the SDK for iOS, and click on the button to add a Path and parameter it likes in the joined picture. Don’t forget to click on the button ‘Update Local File Cache. For the Android part don’t forget to add the authorization for Vibration in the parameter of the project. http://docwiki.embarcadero.com/RADStudio/XE8/en/SDK_Manager
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition