Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Permissions Sorunu [Çözüldü]
#1
Merhabalar Arkadaşlar

Uygulamamda izin sorgu işlemi yapmak istedim ama kod hata veriyor. Rad studio 10.4 de düzgün bir şekilde çalışan kod Rad studio 11 de hata vermekte sebebi ne olabilir acaba kullanım yöntemimi değişti. 
Hata :

E2250: There is no overloaded version of 'RequestPermissions' that can be called with these arguments


Altta kodları paylaşıyorum : 

Uses System.Permissions;

procedure TForm5.izinlimiyim(sender : TObject; const Apermission : TArray<string>;
                                const AGrantResults : TArray<TPermissionStatus>);
begin
 if  (Length(AGrantResults) = 2) and (AGrantResults[0] = TPermissionStatus.Granted)
                                 and (AGrantResults[1] = TPermissionStatus.Granted) then
 begin
   Dosya_indir;
 end
 else
 begin
  Toast('Uygulamanın İzinlere İhtiyacı Vardır.',ShortToast);
 end;

end;

procedure TForm5.iziniste;
var
Veri_yaz , Veri_Oku : string;
begin
 Veri_yaz := 'android.permission.WRITE_EXTERNAL_STORAGE';
 Veri_Oku := 'android.permission.READ_EXTERNAL_STORAGE';

 PermissionsService.RequestPermissions( [Veri_yaz,Veri_Oku] , izinlimiyim );

end;
Cevapla
#2
google politikaları uyum sağlamış olabilirler.

Uygulamanızın, uygulama paketleri veya APK'larınızın 1 veya daha fazlasının manifest dosyasında requestLegacyExternalStorage işareti içerdiğini tespit ettik.

Android 11 veya sonraki sürümleri çalıştıran cihazlarda uygulamaları olan geliştiriciler, kullanıcıların cihaz depolama alanları üstünde daha fazla erişim denetimine sahip olmasını sağlamak için Kısıtlı Depolama'yı kullanmalıdır. 5 Mayıs tarihinden sonra uygulamanızı Android 11 veya sonraki sürümlerde yayınlamak için aşağıdakilerden birini yapmanız gerekir:

Uygulamanızı, Storage Access Framework veya Media Store API gibi daha fazla gizliliğe önem veren en iyi uygulamaları kullanacak şekilde güncelleyin
Uygulamanızı manifest dosyasında Tüm dosyalara erişim (MANAGE_EXTERNAL_STORAGE) iznini beyan edecek şekilde güncelleyin ve 5 Mayıs tarihinden itibaren Play Console'da Tüm dosyalara erişim izin beyanını tamamlayın
Uygulamanızdan Tüm dosyalara erişim iznini tamamen kaldırın
Android 11 sürümünü hedefleyen uygulamalar için requestLegacyExternalStorage işareti yok sayılır. Kapsamlı erişimi sürdürmek için Tüm dosyalara erişim iznini kullanmanız gerekir.

Kullanım iznine sahip olmadan Tüm dosyalara erişim iznine erişmek isteyen uygulamalar Google Play'den kaldırılır ve güncellemeleri yayınlayamazsınız.
Cevapla
#3
(19-09-2021, Saat: 22:20)nguzeller Adlı Kullanıcıdan Alıntı: google politikaları uyum sağlamış olabilirler.

Uygulamanızın, uygulama paketleri veya APK'larınızın 1 veya daha fazlasının manifest dosyasında requestLegacyExternalStorage işareti içerdiğini tespit ettik.

Android 11 veya sonraki sürümleri çalıştıran cihazlarda uygulamaları olan geliştiriciler, kullanıcıların cihaz depolama alanları üstünde daha fazla erişim denetimine sahip olmasını sağlamak için Kısıtlı Depolama'yı kullanmalıdır. 5 Mayıs tarihinden sonra uygulamanızı Android 11 veya sonraki sürümlerde yayınlamak için aşağıdakilerden birini yapmanız gerekir:

Uygulamanızı, Storage Access Framework veya Media Store API gibi daha fazla gizliliğe önem veren en iyi uygulamaları kullanacak şekilde güncelleyin
Uygulamanızı manifest dosyasında Tüm dosyalara erişim (MANAGE_EXTERNAL_STORAGE) iznini beyan edecek şekilde güncelleyin ve 5 Mayıs tarihinden itibaren Play Console'da Tüm dosyalara erişim izin beyanını tamamlayın
Uygulamanızdan Tüm dosyalara erişim iznini tamamen kaldırın
Android 11 sürümünü hedefleyen uygulamalar için requestLegacyExternalStorage işareti yok sayılır. Kapsamlı erişimi sürdürmek için Tüm dosyalara erişim iznini kullanmanız gerekir.

Kullanım iznine sahip olmadan Tüm dosyalara erişim iznine erişmek isteyen uygulamalar Google Play'den kaldırılır ve güncellemeleri yayınlayamazsınız.
Merhabalar

Hocam öncelikle cevabınız için teşekkürler.

Hatayı runtineda almıyorum hocam. Bu hata ideden kaynaklanıyor ve uygulamayı derlemiyor. O satırı sildiğim zaman uygulama derleniyor ve istediğim gibi çalışıyor. Acaba bu kodun kullanımımı değişti farklı şeyler denedim ama yine de olmadı.
Cevapla
#4
çalışmasında sorun Delphi de de olabilir, ben sadece böye bir sorun ile karışacaksınız belirtmek istedim, benim uygulama böyle bir uyarı geldi.
Cevapla
#5
(20-09-2021, Saat: 17:17)nguzeller Adlı Kullanıcıdan Alıntı: çalışmasında sorun Delphi de de olabilir, ben sadece böye bir sorun ile karışacaksınız belirtmek istedim, benim uygulama böyle bir uyarı geldi.

Hocam benim suan yayında dosya yazma ve okuma izni olan uygulamam var sorun yok yayında ona güncelleme gönderecem bakalım inş hata vermez.
Cevapla
#6
benimde yayında izinli uygulama vardı bu mesaj geldi foto çekmek için kullanıyordum, olmasada olurdu iptal ettim.
Cevapla
#7
(20-09-2021, Saat: 22:55)nguzeller Adlı Kullanıcıdan Alıntı: benimde yayında izinli uygulama vardı bu mesaj geldi foto çekmek için kullanıyordum, olmasada olurdu iptal ettim.

Eski yöntemle yaptım şimdilik bakalım. Güncellemeye çalışacağım bakalım.
Cevapla
#8
@codder71 Length(AGrantResults) da hata olmasın? Şunu deneyebilir misiniz?
procedure TForm1.HariciDepolamaIcinIzinIsteClick(Sender: TObject);
begin
  PermissionsService.RequestPermissions
    ([JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE),
      JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE)],
      procedure(const APermissions: TArray<string>;
        const AGrantResults: TArray<TPermissionStatus>)
      begin
          if (AGrantResults[0] = TPermissionStatus.Granted) then
              Memo1.Lines.Add('READ_EXTERNAL_STORAGE İZİNLİ')
          else
              Memo1.Lines.Add('READ_EXTERNAL_STORAGE İZİNSİZ');
          if (AGrantResults[1] = TPermissionStatus.Granted) then
              Memo1.Lines.Add('WRITE_EXTERNAL_STORAGE İZİNLİ')
          else
              Memo1.Lines.Add('WRITE_EXTERNAL_STORAGE İZİNSİZ');
      end);
end;

Benim de sıkıntım aynı konuda. "Download" klasörüne Sqlite dosyasını yedekleme amacıyla kaydedebiliyordum. G.P.Store'a yüklemek için android:targetSdkVersion="30" (Andorid 11) olarak değiştirdim. Ondan beridir aynı uygulama Android 10'da da çalışsa yine "Download"a hiçbir şekilde kayıt yapamıyorum, "Permission denied" hatası veriyor.
@nguzeller in bildirdiği üzere "Storage Access Framework veya Media Store API gibi daha fazla gizliliğe önem veren en iyi uygulamaları kullanacak şekilde güncelleyin" kuralına uymak lazım galiba. Bununla ilgili yol gösteren olabilir mi acaba?
Cevapla
#9
Bununla ilgili Delphi 11 bir örnek bekliyordum ben göremedim, Storage Access Framework veya Media Store API izinleri var mı ne şekilde yazılıyor onuda bilmiyorum.
Cevapla
#10
(22-09-2021, Saat: 10:27)emozgun Adlı Kullanıcıdan Alıntı: @codder71 Length(AGrantResults) da hata olmasın? Şunu deneyebilir misiniz?
procedure TForm1.HariciDepolamaIcinIzinIsteClick(Sender: TObject);
begin
  PermissionsService.RequestPermissions
    ([JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE),
      JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE)],
      procedure(const APermissions: TArray<string>;
        const AGrantResults: TArray<TPermissionStatus>)
      begin
          if (AGrantResults[0] = TPermissionStatus.Granted) then
              Memo1.Lines.Add('READ_EXTERNAL_STORAGE İZİNLİ')
          else
              Memo1.Lines.Add('READ_EXTERNAL_STORAGE İZİNSİZ');
          if (AGrantResults[1] = TPermissionStatus.Granted) then
              Memo1.Lines.Add('WRITE_EXTERNAL_STORAGE İZİNLİ')
          else
              Memo1.Lines.Add('WRITE_EXTERNAL_STORAGE İZİNSİZ');
      end);
end;

Benim de sıkıntım aynı konuda. "Download" klasörüne Sqlite dosyasını yedekleme amacıyla kaydedebiliyordum. G.P.Store'a yüklemek için android:targetSdkVersion="30" (Andorid 11) olarak değiştirdim. Ondan beridir aynı uygulama Android 10'da da çalışsa yine "Download"a hiçbir şekilde kayıt yapamıyorum, "Permission denied" hatası veriyor.
@nguzeller in bildirdiği üzere "Storage Access Framework veya Media Store API gibi daha fazla gizliliğe önem veren en iyi uygulamaları kullanacak şekilde güncelleyin" kuralına uymak lazım galiba. Bununla ilgili yol gösteren olabilir mi acaba?

Hocam cevabınız için teşekkürler. Bu metoda benzer bir deneme yaptım ama yine aynı hatayı aldım. Tekrar bi deneyecem ama

(22-09-2021, Saat: 11:07)nguzeller Adlı Kullanıcıdan Alıntı: Bununla ilgili Delphi 11 bir örnek bekliyordum ben göremedim, Storage Access Framework veya Media Store API izinleri var mı ne şekilde yazılıyor onuda bilmiyorum.

aynn hocam örneklere bende baktım ama birşey göremedim.

(22-09-2021, Saat: 10:27)emozgun Adlı Kullanıcıdan Alıntı: @codder71 Length(AGrantResults) da hata olmasın? Şunu deneyebilir misiniz?
procedure TForm1.HariciDepolamaIcinIzinIsteClick(Sender: TObject);
begin
  PermissionsService.RequestPermissions
    ([JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE),
      JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE)],
      procedure(const APermissions: TArray<string>;
        const AGrantResults: TArray<TPermissionStatus>)
      begin
          if (AGrantResults[0] = TPermissionStatus.Granted) then
              Memo1.Lines.Add('READ_EXTERNAL_STORAGE İZİNLİ')
          else
              Memo1.Lines.Add('READ_EXTERNAL_STORAGE İZİNSİZ');
          if (AGrantResults[1] = TPermissionStatus.Granted) then
              Memo1.Lines.Add('WRITE_EXTERNAL_STORAGE İZİNLİ')
          else
              Memo1.Lines.Add('WRITE_EXTERNAL_STORAGE İZİNSİZ');
      end);
end;

Benim de sıkıntım aynı konuda. "Download" klasörüne Sqlite dosyasını yedekleme amacıyla kaydedebiliyordum. G.P.Store'a yüklemek için android:targetSdkVersion="30" (Andorid 11) olarak değiştirdim. Ondan beridir aynı uygulama Android 10'da da çalışsa yine "Download"a hiçbir şekilde kayıt yapamıyorum, "Permission denied" hatası veriyor.
@nguzeller in bildirdiği üzere "Storage Access Framework veya Media Store API gibi daha fazla gizliliğe önem veren en iyi uygulamaları kullanacak şekilde güncelleyin" kuralına uymak lazım galiba. Bununla ilgili yol gösteren olabilir mi acaba?
Hocam denedim yine aynı hatayı alıyorum.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Çözüldü _ Delphi Community Edition SDK ayarları hatası cinarbil 1 485 12-03-2026, Saat: 10:25
Son Yorum: damert6
  Webbrowser Sorunu [ÇÖZÜLDÜ] codder71 7 421 10-02-2026, Saat: 17:04
Son Yorum: codder71
  Orange UI nin 2.3 Free versiyonu Dil Sorunu ? ovural 0 267 12-11-2025, Saat: 16:53
Son Yorum: ovural
  IOS Uygulama Yayınlama Sorunu emrahozten 2 714 11-06-2025, Saat: 21:00
Son Yorum: hakan_cng
  Boyutlandırma Sorunu Coban 6 1.406 28-03-2025, Saat: 11:51
Son Yorum: Coban



Konuyu Okuyanlar: