Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Android 13 te Android ID alamama problemi
#1
Merhaba arkadaşlar, uygulama içinde oturum açan kullanıcı bilgisi için cihazın android id değerine ihtiyaç duyuyorum. Fakat Android 11 den sonraki sürümlerde bu değeri getirmiyor uygulama neden olabilir acaba? Aşağıda android id getiren fonksiyonu paylaşıyorum. Permission ile ilgili bir sıkıntı mı bilmiyorum ama formun create eventine 


  ReadPermission := JStringToString
    (TJManifest_permission.JavaClass.READ_PHONE_STATE);
  if not PermissionsService.IsPermissionGranted(ReadPermission) then
  begin
    PermissionsService.RequestPermissions([ReadPermission],
      ReadPermissionRequestResult);
  end;


şeklinde bir kontrol dahi koydum. Ayrıca manifest dosyasında da READ_PHONE_STATE ile ilgili tanımlamada var.


function GetAndroidId: string;
begin
{$IFDEF ANDROID}
  result := JStringToString(TJSettings_SECURE.JavaClass.getString
    (SharedActivity.getContentResolver,
    TJSettings_SECURE.JavaClass.ANDROID_ID));
{$ENDIF}
end;
Cevapla
#2
Cihaz ID sini alırken:

{$IFDEF ANDROID}
 TThread.CreateAnonymousThread(
   procedure
   begin
     PermissionsService.RequestPermissions([JStringToString(TJManifest_permission.JavaClass.ACCESS_NETWORK_STATE), JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE),
        JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE), JStringToString(TJManifest_permission.JavaClass.CAMERA),
        JStringToString(TJManifest_permission.JavaClass.READ_PHONE_STATE), JStringToString(TJManifest_permission.JavaClass.INTERNET)],
       procedure(const APermissions: TClassicStringDynArray; const AGrantResults: TClassicPermissionStatusDynArray)
       begin
         if (AGrantResults[0] = TPermissionStatus.Granted) then
           and_per := 0
         else
         begin
           Showmessage('Lütfen Yetkileri Veriniz..');
           and_per := 1
         end;
       end);
   end).Start;

 Tel_ID_No := JStringToString(TJSettings_SECURE.JavaClass.getString(SharedActivity.getContentResolver, TJSettings_SECURE.JavaClass.ANDROID_ID));

{$ENDIF}
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#3
Herhangi bir izne ihtiyaç olmadan aşağıdaki gibi alabiliyorum. 
Android 13 te test edilmiştir. Android 9 dan beri bu metodu kullanıyorum.
{$IFDEF ANDROID}
    Result := JStringToString(TJSettings_SECURE.JavaClass.getString(TAndroidHelper.Activity.getContentResolver,
     TJSettings_SECURE.JavaClass.ANDROID_ID));
{$ENDIF}
Begin : = end / 2;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Android Uygulama İkonu ARM 2 400 11-11-2025, Saat: 12:15
Son Yorum: ARM
  Android SDK kajmerantime 1 384 28-10-2025, Saat: 14:53
Son Yorum: cinarbil
  Android El Terminali Barkod Okuyucu Verisi tuna 0 333 17-10-2025, Saat: 01:07
Son Yorum: tuna
  Android işlem öneriliyor uyarısı! Coban 9 1.863 07-08-2025, Saat: 12:07
Son Yorum: RAD Coder
  FMX Android Adaptive Icons kullanabilir miyiz? egeven 1 2.156 30-06-2025, Saat: 21:46
Son Yorum: emozgun



Konuyu Okuyanlar: 1 Ziyaretçi