Как получить IMEI на Android 5 в firemonkey?

Я пытаюсь получить IMEI на устройстве Android, и я могу успешно сделать это на Android 4.2.

но мой написанный код не работает на Android 5 и более поздних версиях

как узнать IMEI на андроид 5 в firemonkey?


person NiliDelphi    schedule 17.06.2015    source источник
comment
Вы найдете его в модуле Androidapi.Helpers, начиная с XE7. stackoverflow.com/questions/25981458 /   -  person feri17k    schedule 16.07.2016


Ответы (1)


Вот фрагмент кода, который получает IMEI устройства Android для вас с помощью Android JNI:

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;
person aleroot    schedule 17.06.2015
comment
Я получил следующее сообщение об ошибке: «Необъявленный идентификатор SharedActivity» и «Необъявленный идентификатор JStringToString» ... Как я могу это решить? Спасибо - person KryNaC; 07.04.2016