1. //获取手机信息
  2. function GetPhoneInfo(): string;
  3. Var
  4. TelephonyManager: JTelephonyManager;
  5. TelephonyServiceNative: JObject;
  6. begin
  7. result := '';
  8. TelephonyServiceNative := SharedActivityContext.getSystemService
  9. (TJContext.JavaClass.TELEPHONY_SERVICE);
  10. if Assigned(TelephonyServiceNative) then
  11. TelephonyManager := TJTelephonyManager.Wrap
  12. ((TelephonyServiceNative as ILocalObject).GetObjectID);
  13. result := JStringToString(TelephonyManager.getLine1Number);//取得手机号
  14. //TelephonyManager.getDeviceId 取IMEI
  15. //TelephonyManager.getLine1Number 取MSISDN 手机号,大部分SIM卡中不会写入这个信息
  16. //TelephonyManager.getSimSerialNumber 取ICCID
  17. //TelephonyManager.getSubscriberId 取IMSI 运营商实际上是用这个查询的
  18. end;
  19.  
  20. //手机振动
  21. uses FMX.Helpers.Android, Androidapi.JNI.App, Androidapi.JNI.Os, Androidapi.JNIBridge, FMX.StdCtrls;
  22. procedure TForm1.Button2Click(Sender: TObject);
  23. function GetVibratorArray(const AintArr:array of int64):TJavaArray<int64>;//震动规律函数
  24. var
  25. Lindex:integer;
  26. begin
  27. Result:=TJavaArray<int64>.Create(Length(AintArr));
  28. for Lindex:=Low(AintArr) to High(AintArr) do
  29. Result.Items [Lindex]:= AintArr[Lindex];
  30. end;
  31. var
  32. LVibrator:JVibrator;
  33. LJavaArray:TJavaArray<int64>;
  34. begin
  35. LVibrator:=TJVibrator.Wrap((SharedActivity.getSystemService(TJActivity.javaClass.VIBRATOR_SERVICE ) as iLocalObject).GetObjectID );//引用震动
  36. if not LVibrator.hasVibrator then
  37. begin
  38. showmessage('手机不支持震动');
  39. exit;
  40. end;
  41. LVibrator.vibrate();//震动200ms
  42. LVibrator.cancel ;//立刻停止震动
  43. LJavaArray:=GetVibratorArray([,,,]);//调用震动规律
  44. LVibrator.vibrate(LJavaArray,-);//不重复, 震动一 次
  45. LJavaArray:=GetVibratorArray([,,,]);//调用震动规律
  46. LVibrator.vibrate(LJavaArray,);//v不停重复,大于0的参数,可以指定震动次数
  47. end;
  1. //剪贴版FClipboardService: IFMXClipboardService;
  2. TPlatformServices.Current.SupportsPlatformService(IFMXClipboardService, IInterface(FClipboardService));
  3. FClipboardService.SetClipboard(Tvalue(Edit1.Text)); //复制
  4. FClipboardService.GetClipboard.ToString; //粘贴
  5.  
  6. //键盘FService: IFMXVirtualKeyboardToolbarService;
  7. if TPlatformServices.Current.SupportsPlatformService (IFMXVirtualKeyboardToolbarService, IInterface(FService)) then
  8. begin
  9. FService.SetToolbarEnabled(true);
  10. FService.SetHideKeyboardButtonVisibility(true);
  11. end;
  1. //电话信息(Call拨号)
  2. PhoneDialerService: IFMXPhoneDialerService;
  3.  
  4. //获取电话服务信息
  5. procedure TPhoneDialerForm.btnGetCarrierInfoClick(Sender: TObject);
  6. var
  7. PhoneDialerService: IFMXPhoneDialerService;
  8. begin
  9. { test whether the PhoneDialer services are supported }
  10. if TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(PhoneDialerService)) then
  11. begin
  12. { if yes, then update the labels with the retrieved information }
  13. CarrierNameItem.ItemData.Detail := PhoneDialerService.GetCarrier.GetCarrierName;
  14. CountryCodeItem.ItemData.Detail := PhoneDialerService.GetCarrier.GetIsoCountryCode;
  15. NetworkCodeItem.ItemData.Detail := PhoneDialerService.GetCarrier.GetMobileCountryCode;
  16. MobileNetworkItem.ItemData.Detail := PhoneDialerService.GetCarrier.GetMobileNetwork;
  17. end
  18. else
  19. ShowMessage('PhoneDialer service not supported');
  20. end;
  21.  
  22. //拨号
  23. procedure TPhoneDialerForm.btnMakeCallClick(Sender: TObject);
  24. var
  25. PhoneDialerService: IFMXPhoneDialerService;
  26. begin
  27. { test whether the PhoneDialer services are supported }
  28. if TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(PhoneDialerService)) then
  29. begin
  30. { if the Telephone Number is entered in the edit box then make the call, else
  31. display an error message }
  32. if edtTelephoneNumber.Text <> '' then
  33. PhoneDialerService.Call(edtTelephoneNumber.Text)
  34. else
  35. begin
  36. ShowMessage('Please type in a telephone number.');
  37. edtTelephoneNumber.SetFocus;
  38. end;
  39. end
  40. else
  41. ShowMessage('PhoneDialer service not supported');
  42. end;
  43. Intent :TJIntent
  44. uses
  45. Androidapi.JNI.GraphicsContentViewText, FMX.Helpers.Android, Androidapi.JNI.Net, Androidapi.Helpers;
  46. procedureCall_URI(constAAction : JString;constAURI: string);
  47. var
  48. uri: Jnet_Uri;
  49. Intent: JIntent;
  50. begin
  51. uri := StrToJURI(AURI);
  52. Intent := TJIntent.JavaClass.init(AAction, uri);
  53. {Intent.putExtra()
  54.  
  55. //短信
  56. Call_URI(TJIntent.JavaClass.ACTION_SENDTO, 'smsto:137114553XX');
  57. Intent.putExtra(StringToJString('sms_body'), StringToJString('测试短信'));
  58. 如果是要发短信等复杂的应用,需要传递各种其他的参数.要用到Intent.putExtra()传递多个参数.
  59. 这里只封装最简单的,具体Intent.putExtra()的用法,可以查询Java的资料.大把的
  60. }
  61. SharedActivityContext.startActivity(Intent);
  62. end;
  63. //使用例子:
  64. //打电话
  65. Call_URI(TJIntent.JavaClass.ACTION_CALL, 'tel:137114553XX');
  66. //打开地图显示某个坐标点
  67. Call_URI(TJIntent.JavaClass.ACTION_VIEW, 'geo:38.899533,-77.036476');
  68. //打开网页
  69. Call_URI(TJIntent.JavaClass.ACTION_VIEW, 'www.baidu.com');
  70. //发送电子邮件
  71. Call_URI(TJIntent.JavaClass.ACTION_SENDTO, 'mailto:wr960204@126.com');
  72. //播放音乐
  73. Call_URI(TJIntent.JavaClass.ACTION_VIEW, 'file:///sdcard/download/最炫民族风.mp3');

delphi xe10 手机内部系统相关操作(手机信息、震动、剪贴板、键盘、电话、拨号)的更多相关文章

  1. python 系统相关操作

    1.文件 open()代开文件或者创建文件 fout=open('oops.txt','wt') print('Oops, I created a file.',file=fout) fout.clo ...

  2. linux c编程:系统数据文件和信息

    linux系统相关的文件信息包含在/etc/passwd文件和/etc/group中.每次登录linux系统以及每次执行ls -l命令时都要使用口令文件.这些字段都包含在<pwd.h>中定 ...

  3. atitit.短信 验证码  破解  v3 p34  识别 绕过 系统方案规划----业务相关方案 手机验证码  .doc

    atitit.短信 验证码  破解  v3 p34  识别 绕过 系统方案规划----业务相关方案 手机验证码  .doc 1. 手机短信验证码 vs 图片验证码 安全性(破解成本)确实要高一些1 1 ...

  4. (转载)Mac系统下利用ADB命令连接android手机并进行文件操作

    Mac系统下利用ADB命令连接android手机并进行文件操作 标签: Mac adb android 2016-03-14 10:09 5470人阅读 评论(1) 收藏 举报  分类: Androi ...

  5. 手机缺失sqlite3时操作数据库的多种解决方案 ----adb命令科普

    在Android应用开发无处不在SQLite数据库的身影.那么在开发中怎么使用adb命令操作数据库的功能呢? 下面我们将完整的介绍与数据库操作相关的命令集及当手机缺少sqlite3的时候的多种解决方案 ...

  6. adb命令具体解释(二)——手机缺失sqlite3时操作数据库的多种解决方式

    在android应用开发无处不在SQLite数据库的身影.那么在开发中怎么使用adb命令操作数据库的功能呢? 以下我们将完整的介绍与数据库操作相关的命令集及当手机缺少sqlite3的时候的多种解决方式 ...

  7. 升鲜宝V2.0_杭州生鲜配送行业,升鲜宝供应链手机分拣系统使用说明_升鲜宝生鲜供应链管理系统_15382353715_余东升

    1. 系统概述 升鲜宝供应链手机分拣系统(Android版)是升鲜宝供应链管理系统的配套分拣系统,本系统适用于农副产品生鲜配送供应链企业分拣过程,在线上数据管理和线下业务管理两大方面提供解决方案,该系 ...

  8. adb软件国产安卓手机对系统的把控

    国产安卓手机对系统的把控,现在想搞机的方法是愈来愈麻烦,华为最先的申请解锁码,到现在直接系统锁死不给解.让我等搞机小伙伴是望机兴叹.安卓手机的通病随着系统升级,手机就越来越卡.本想通过卸载系统自带应用 ...

  9. Struts+Servlet+JDBC网上手机销售系统

    项目描述 Hi,大家好,今天给大家分享一个<网上手机销售系统>.本系统一共分为前台和后台两大模块,两个模块之间虽然在表面上是相互独立的,但是在对数据库的访问上是紧密相连的,各个模块访问的是 ...

随机推荐

  1. 在Feign中添加自定义配置

    首先先创建一个FeignConfig类,代码如下: package com.xing.config; import org.springframework.context.annotation.Bea ...

  2. JMeter 并发压力测试

    一,下载JMeter http://jmeter.apache.org/download_jmeter.cgi 二,创建默认配置 可以不用配置相同参数. 测试计划:右键添加线程组 线程组:右键添加  ...

  3. js-打印九九乘法表

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Tomcat---概述

    1.Tomcat  是  一个  免费.开源  的 web应用服务器: 属于  轻量级  应用服务器,在中小型系统.并发量不大的情况下  被广泛使用: 2.Tomcat 是  Apache下的核心项目 ...

  5. macOS添加字体

    打开macOS的Applications文件夹: 双击其中的Font Book: 把下载的字体解压后的_文件夹_ 拖进来,字体就安装好了.

  6. React 组件间传值

    壹  .了解React传值的数据 一. 创建组件的方法 一 . 1  通过function声明的组件特点是: 1)function创建的组件是没有state属性,而state属性决定它是不是有生命周期 ...

  7. Android中父View和子view的点击事件的执行过程

    Android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解.  一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN- ...

  8. move_base 分层代价地图的作用(翻译)

    A. 标准层 ​ Static Map Layer:为了做全局规划,机器人需要一个超越其传感器的地图,以了解墙壁和其他静态障碍物的位置. 静态地图可以先用SLAM算法生成,也可以从架构图中创建. 当层 ...

  9. python安装 cvxpy 巨坑,一堆C++错误

    https://www.lfd.uci.edu/~gohlke/pythonlibs/#ecos 下载scs,ecos,cvxpy的whl,一个个安装即可 之前被一堆C++错误搞晕了2小时

  10. Dubbo入门到精通学习笔记(一):Dubbo对传统工程进行改造、注册中心安装(Zookeeper-3.4.6)、工程结构优化

    文章目录 改造思路 样例工程:传统的单工程项目(edu-demo) 模型结构 思路 改成dubbo调用方式后的工程结构 部署环境规划 改造 愚公移山 迁移包 迁移页面: 迁移配置相关 新项目的主要作用 ...