android - 如何在 firemonkey 中获取 Android 5 上的 IMEI?

标签 android delphi firemonkey imei

我尝试在 android 设备上获取 IMEI,我可以在 android 4.2 上成功地做到这一点

但是 我编写的代码不适用于 android 5 及更高版本

如何在 firemonkey 中获取 android 5 上的 IMEI?

最佳答案

这是一个使用 Android JNI 为您获取 Android 设备 IMEI 的代码 fragment :

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

事件:

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;

关于android - 如何在 firemonkey 中获取 Android 5 上的 IMEI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30885490/

相关文章:

java - Android:异步任务和 UI

java - 将字符串转换为日期对象

delphi - 如何查看两个形状是否重叠

delphi - FMX进度条颜色

macos - ShowModal窗口打开NSOpenPanel将在Delphi FMX中自动关闭

java - 从 Android 上传照片到 Facebook

android - DDMS 中偶尔会关闭“设备”选项卡

delphi - 哪些 .OBJ 文件链接到哪些 VCL 库

delphi - TActionMainMenuBar 菜单中的 RadioItems

web-services - 有人使用带有 Delphi 的 Bing map Web 服务吗?