DELPHI 10.3 Android获取IMEI

在这篇文章中,我们将编写一个带有Delphi 10.3 Rio的Android应用程序,能够捕获设备的IMEI。
运行时权限
Android的一个进化点是请求在运行时使用资源的权限。实际上,应用程序在执行时应该要求用户授权使用Android认为“危险”的功能。
在这里插入图片描述
在Delphi 10.3是第一个版本,以配备原生机制,满足Android的这一要求。因此,从Delphi 10.3 Rio开始,新的Android权限模型应该是我们的代码。

IMEI设备ID
IMEI是一个缩写,移动设备识别码 (国际移动设备识别码)。这是每个设备的唯一数字序列和特殊字符。这个想法非常类似于网卡的MAC地址。这使得每月在市场上的数百个设备中定位特定设备变得容易。

创建Mobile Delphi 10.3应用程序
谈到移动APP,确保只有授权的“人员”APP才能查看公司信息是至关重要的。在Delphi 10.3中创建一个新的Mobile项目,在源代码中,我们将在uses子句中添加以下引用
————————————————
版权声明:本文为CSDN博主「xyzhan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xyzhan/article/details/98211163:

uses
  FMX.Platform.Android,
  Androidapi.JNI.Telephony,
  Androidapi.JNI.Provider ,
  Androidapi.JNIBridge,
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.JNI.JavaTypes,
  Androidapi.Helpers;

在表单中,我们将添加一个Button,将其Text属性更改为“Capture IMEI” ,将Name属性更改为btnCaptureIMEI。

在这里插入图片描述
让我们编写你的onClick事件,如下所示:

procedure TForm1.btnCapturarIMEIClick(Sender: TObject);
var
  obj: JObject;
  tm: JTelephonyManager;
  IMEI: String;
begin
  obj := SharedActivityContext.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE);
  if obj <> nil then
  begin
    tm := TJTelephonyManager.Wrap( (obj as ILocalObject).GetObjectID );
    if tm <> nil then
      IMEI := JStringToString(tm.getDeviceId);
  end;
  if IMEI = '' then
      IMEI := JStringToString(TJSettings_Secure.JavaClass.getString(                        SharedActivity.getContentResolver,                        TJSettings_Secure.JavaClass.ANDROID_ID));
 
  ShowMessage('IMEI :' + #13 + IMEI);
 
end;

运行-APP并单击-按钮,将显示设备的IMEI;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值