2015-06-17 2 views
1

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

но мой написанный код не работает на Android 5, а затем

как получить IMEI на андроид 5 в FireMonkey?

+0

Вы найдете его в модуле Androidapi.Helpers после XE7. http://stackoverflow.com/questions/25981458/in-which-uses-can-i-find-sharedactivitycontext – feri17k

ответ

0

Вот фрагмент кода, который получает 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; 
+0

У меня появилось следующее сообщение об ошибке: «Undeclared identifier SharedActivity» и «Undeclared identifier JStringToString» ... Как я может решить это? благодаря – KryNaC