mzyinzi 2024-10-31 09:09 采纳率: 50%
浏览 49
已结题

RAD_XE11.3获取android11手机的IMEI码

RAD_XE11.3获取android11手机的IMEI,原来的APP应用是在ANDORID5上的,升级到ANDROID11后原来的代码不能读取到IMEI了。

{
 //读取IMEI引用的单元
  FMX.Platform.Android,
  Androidapi.JNI.Telephony,
  Androidapi.JNI.Provider ,
  Androidapi.JNIBridge,
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.JNI.JavaTypes,
  Androidapi.Helpers;
}


procedure TForm1.FormCreate(Sender: TObject);
var
  obj: JObject;
  tm: JTelephonyManager;
  IMEI: String;
begin
      //读取PDA的IMEI唯一码
  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
  begin
    IMEI := JStringToString(TJSettings_Secure.JavaClass.getString(SharedActivity.getContentResolver,TJSettings_Secure.JavaClass.ANDROID_ID));
  end;
  ShowMessage('IMEI :' + #13 + IMEI);
End;

  • 写回答

30条回答 默认 最新

查看更多回答(29条)

报告相同问题?

问题事件

  • 系统已结题 11月13日
  • 已采纳回答 11月5日
  • 创建了问题 10月31日