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

时间:2015-06-17 07:53:14

标签: android delphi firemonkey imei

我尝试在Android设备上获取IMEI,我可以在android 4.2上成功完成此操作

但 我编写的代码在android 5及更高版本上不起作用

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

1 个答案:

答案 0 :(得分:1)

以下是使用Android JNI为您获取Android设备IMEI的代码段:

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;