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/
IOS方法
#import <AudioToolbox/AudioToolbox.h>
调用方法
SystemSoundID soundID;
kSystemSoundID_Vibrate是常量$FFF
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
delphi 方法
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
|
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 . |
添加库方法
ios must Add Path
RAD IDE>Tools>Options>SDK Manager>IOS 系统SDK
点击 右侧按钮>Add a new path item.
Path on remote machine:$(SDKROOT)/System/Library/Frameworks
File mask:AudioToolbox
Path type:Other Path
Include subdirectories:
点 OK>Update Local File Cache
windows系统电脑能看到更新到的AudioToolbox功能文件。
D:\Users\Administrator\Documents\Embarcadero\Studio\SDKs\iPhoneOS9.1.sdk\System\Library\Frameworks\AudioToolbox.framework\Headers
参考
http://blog.csdn.net/tht2009/article/details/50183721
报错
[DCC Error] E2597 ld: warning: directory not found for option
‘-FE:\Users\Administrator\Documents\Embarcadero\Studio\SDKs\iPhoneOS9.3.sdk\System\Library\PrivateFrameworks‘
ld: file not found: /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox
解决方法:
1、收到建立目录PrivateFrameworks
2、删除windows目录E:\Users\Administrator\Documents\Embarcadero\Studio\SDKs\iPhoneOS9.3.sdk。
然后关闭IDE,删除IDE里3个SDK。然后重新下载,先下载ios32位,添加AudioToolbox库,更新缓存,再依次更新64位。