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 方法
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位。