本文整理自网络,侵删。
//获取手机信息function GetPhoneInfo(): string;Var TelephonyManager: JTelephonyManager; TelephonyServiceNative: JObject;begin result := ''; TelephonyServiceNative := SharedActivityContext.getSystemService (TJContext.JavaClass.TELEPHONY_SERVICE); if Assigned(TelephonyServiceNative) then TelephonyManager := TJTelephonyManager.Wrap ((TelephonyServiceNative as ILocalObject).GetObjectID); result := JStringToString(TelephonyManager.getLine1Number);//取得手机号 //TelephonyManager.getDeviceId 取IMEI //TelephonyManager.getLine1Number 取MSISDN 手机号,大部分SIM卡中不会写入这个信息 //TelephonyManager.getSimSerialNumber 取ICCID //TelephonyManager.getSubscriberId 取IMSI 运营商实际上是用这个查询的end;
//手机振动uses FMX.Helpers.Android, Androidapi.JNI.App, Androidapi.JNI.Os, Androidapi.JNIBridge, FMX.StdCtrls;procedure TForm1.Button2Click(Sender: TObject);function GetVibratorArray(const AintArr:array of int64):TJavaArray<int64>;//震动规律函数var Lindex:integer;begin Result:=TJavaArray<int64>.Create(Length(AintArr)); for Lindex:=Low(AintArr) to High(AintArr) do Result.Items [Lindex]:= AintArr[Lindex];end;var LVibrator:JVibrator; LJavaArray:TJavaArray<int64>;begin LVibrator:=TJVibrator.Wrap((SharedActivity.getSystemService(TJActivity.javaClass.VIBRATOR_SERVICE ) as iLocalObject).GetObjectID );//引用震动 if not LVibrator.hasVibrator then begin showmessage('手机不支持震动'); exit; end; LVibrator.vibrate(200);//震动200ms LVibrator.cancel ;//立刻停止震动 LJavaArray:=GetVibratorArray([200,1000,3000,5000]);//调用震动规律 LVibrator.vibrate(LJavaArray,-1);//不重复, 震动一 次 LJavaArray:=GetVibratorArray([200,1000,3000,5000]);//调用震动规律 LVibrator.vibrate(LJavaArray,0);//v不停重复,大于0的参数,可以指定震动次数end;复制代码复制代码//剪贴版FClipboardService: IFMXClipboardService;TPlatformServices.Current.SupportsPlatformService(IFMXClipboardService, IInterface(FClipboardService));FClipboardService.SetClipboard(Tvalue(Edit1.Text)); //复制FClipboardService.GetClipboard.ToString; //粘贴
//键盘FService: IFMXVirtualKeyboardToolbarService;if TPlatformServices.Current.SupportsPlatformService (IFMXVirtualKeyboardToolbarService, IInterface(FService)) then begin FService.SetToolbarEnabled(true); FService.SetHideKeyboardButtonVisibility(true);end;复制代码
复制代码//电话信息(Call拨号)PhoneDialerService: IFMXPhoneDialerService;
//获取电话服务信息procedure TPhoneDialerForm.btnGetCarrierInfoClick(Sender: TObject);var PhoneDialerService: IFMXPhoneDialerService;begin { test whether the PhoneDialer services are supported } if TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(PhoneDialerService)) then begin { if yes, then update the labels with the retrieved information } CarrierNameItem.ItemData.Detail := PhoneDialerService.GetCarrier.GetCarrierName; CountryCodeItem.ItemData.Detail := PhoneDialerService.GetCarrier.GetIsoCountryCode; NetworkCodeItem.ItemData.Detail := PhoneDialerService.GetCarrier.GetMobileCountryCode; MobileNetworkItem.ItemData.Detail := PhoneDialerService.GetCarrier.GetMobileNetwork; end else ShowMessage('PhoneDialer service not supported');end;
//拨号procedure TPhoneDialerForm.btnMakeCallClick(Sender: TObject);var PhoneDialerService: IFMXPhoneDialerService;begin { test whether the PhoneDialer services are supported } if TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(PhoneDialerService)) then begin { if the Telephone Number is entered in the edit box then make the call, else display an error message } if edtTelephoneNumber.Text <> '' then PhoneDialerService.Call(edtTelephoneNumber.Text) else begin ShowMessage('Please type in a telephone number.'); edtTelephoneNumber.SetFocus; end; end else ShowMessage('PhoneDialer service not supported');end;Intent :TJIntentuses Androidapi.JNI.GraphicsContentViewText, FMX.Helpers.Android, Androidapi.JNI.Net, Androidapi.Helpers;procedureCall_URI(constAAction : JString;constAURI: string);var uri: Jnet_Uri; Intent: JIntent;begin uri := StrToJURI(AURI); Intent := TJIntent.JavaClass.init(AAction, uri); {Intent.putExtra()
//短信Call_URI(TJIntent.JavaClass.ACTION_SENDTO, 'smsto:137114553XX');Intent.putExtra(StringToJString('sms_body'), StringToJString('测试短信')); 如果是要发短信等复杂的应用,需要传递各种其他的参数.要用到Intent.putExtra()传递多个参数. 这里只封装最简单的,具体Intent.putExtra()的用法,可以查询Java的资料.大把的 } SharedActivityContext.startActivity(Intent);end;//使用例子://打电话Call_URI(TJIntent.JavaClass.ACTION_CALL, 'tel:137114553XX');//打开地图显示某个坐标点Call_URI(TJIntent.JavaClass.ACTION_VIEW, 'geo:38.899533,-77.036476');//打开网页Call_URI(TJIntent.JavaClass.ACTION_VIEW, 'www.baidu.com');//发送电子邮件 Call_URI(TJIntent.JavaClass.ACTION_SENDTO, 'mailto:wr960204@126.com');//播放音乐Call_URI(TJIntent.JavaClass.ACTION_VIEW, 'file:///sdcard/download/最炫民族风.mp3');复制代码
博客园 滔Roy https://www.cnblogs.com/guorongtao
相关阅读 >>
Delphi 10.4.1 edgebrowser 模拟操作网页方法
Delphi关于dbgrid和webbrowser的焦点问题
Delphi 用 tbytesstream 类实现的读文件为十六进制字符的函数
更多相关阅读请进入《Delphi》频道 >>