Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Permissions Sorunu [Çözüldü]
#11
(22-09-2021, Saat: 22:19)codder71 Adlı Kullanıcıdan Alıntı:
(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.
Hocam boş uygulamada da aynı hatayı veriyorsa @TescilsizUzman Fesih hocanın bildirdiği çözümü deneyebilirsiniz:
https://www.delphican.com/showthread.php?tid=4753
https://www.delphican.com/showthread.php?tid=2193
Cevapla
#12
(23-09-2021, Saat: 18:26)emozgun Adlı Kullanıcıdan Alıntı:
(22-09-2021, Saat: 22:19)codder71 Adlı Kullanıcıdan Alıntı: 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


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

Hocam denedim yine aynı hatayı alıyorum.
Hocam boş uygulamada da aynı hatayı veriyorsa @TescilsizUzman Fesih hocanın bildirdiği çözümü deneyebilirsiniz:
https://www.delphican.com/showthread.php?tid=4753
https://www.delphican.com/showthread.php?tid=2193

Merhabalar 

Hocam aynen bu yöntem çalışıyor ama yeni olan o diğer yöntem ide de hata veriyor galiba bug var Rad studio 11de
Cevapla
#13
Merhabalar delphide yeniyim hatanın sebebi konusunda hiç bir fikrim yok ancak çözümü buldum.
C:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\Object Pascal\Mobile Snippets\CameraComponent\uMaim.pas dosyasında çözüm mevcut çalıştırmak istediğim kodu biraz modladım ve başarılı.

procedure TForm1.FormCreate(Sender: TObject);
begin
 ReadPermission := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE);

      if not PermissionsService.IsPermissionGranted(ReadPermission) then
      begin
               PermissionsService.RequestPermissions([ReadPermission],ReadPermissionRequestResult);
      end;
end;
 
procedure TForm1.ReadPermissionRequestResult(Sender: TObject; const APermissions: TClassicStringDynArray; const AGrantResults: TClassicPermissionStatusDynArray);
begin
  if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then
       begin

       end
       else begin
       
       end;
end;
Cevapla
#14
(25-09-2021, Saat: 20:13)0x1dot Adlı Kullanıcıdan Alıntı: Merhabalar delphide yeniyim hatanın sebebi konusunda hiç bir fikrim yok ancak çözümü buldum.
C:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\Object Pascal\Mobile Snippets\CameraComponent\uMaim.pas dosyasında çözüm mevcut çalıştırmak istediğim kodu biraz modladım ve başarılı.


procedure TForm1.FormCreate(Sender: TObject);
begin
 ReadPermission := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE);

      if not PermissionsService.IsPermissionGranted(ReadPermission) then
      begin
               PermissionsService.RequestPermissions([ReadPermission],ReadPermissionRequestResult);
      end;
end;
 
procedure TForm1.ReadPermissionRequestResult(Sender: TObject; const APermissions: TClassicStringDynArray; const AGrantResults: TClassicPermissionStatusDynArray);
begin
  if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then
       begin

       end
       else begin
       
       end;
end;

Merhabalar cevabınız için teşekkür ederim. Fakat Rad Studio 11de yine aynı hatayı veriyor. Eski yöntem ama çalışıyor şimdilik onu kullanıyorum.
Cevapla
#15
(25-09-2021, Saat: 22:28)codder71 Adlı Kullanıcıdan Alıntı:
(25-09-2021, Saat: 20:13)0x1dot Adlı Kullanıcıdan Alıntı: Merhabalar delphide yeniyim hatanın sebebi konusunda hiç bir fikrim yok ancak çözümü buldum.
C:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\Object Pascal\Mobile Snippets\CameraComponent\uMaim.pas dosyasında çözüm mevcut çalıştırmak istediğim kodu biraz modladım ve başarılı.


procedure TForm1.FormCreate(Sender: TObject);
begin
 ReadPermission := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE);

      if not PermissionsService.IsPermissionGranted(ReadPermission) then
      begin
               PermissionsService.RequestPermissions([ReadPermission],ReadPermissionRequestResult);
      end;
end;
 
procedure TForm1.ReadPermissionRequestResult(Sender: TObject; const APermissions: TClassicStringDynArray; const AGrantResults: TClassicPermissionStatusDynArray);
begin
  if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then
       begin

       end
       else begin
       
       end;
end;

Merhabalar cevabınız için teşekkür ederim. Fakat Rad Studio 11de yine aynı hatayı veriyor. Eski yöntem ama çalışıyor şimdilik onu kullanıyorum.

Dostum bilgi düzeyini bilmiyorum lakin procedure olarak type kısmına ekleme yapmamış olabilir misin bu fonksiyonları? zira delphi 11 sürümünde şuan gerekli okuma fonksiyonlarını çağırdığımda izinleri başarılı bir şekilde alabiliyorum. Belki de dosya indirme fonksiyonlarıyla alakalı bir sorun olabilir. Teferruatı bir kenara attığımız vakit kod başarılı bir şekilde derleniyor. Yardımcı olabildiysem ne mutlu. Kolay gelsin.
Cevapla
#16
(25-09-2021, Saat: 23:35)0x1dot Adlı Kullanıcıdan Alıntı:
(25-09-2021, Saat: 22:28)codder71 Adlı Kullanıcıdan Alıntı: Merhabalar cevabınız için teşekkür ederim. Fakat Rad Studio 11de yine aynı hatayı veriyor. Eski yöntem ama çalışıyor şimdilik onu kullanıyorum.

Dostum bilgi düzeyini bilmiyorum lakin procedure olarak type kısmına ekleme yapmamış olabilir misin bu fonksiyonları? zira delphi 11 sürümünde şuan gerekli okuma fonksiyonlarını çağırdığımda izinleri başarılı bir şekilde alabiliyorum. Belki de dosya indirme fonksiyonlarıyla alakalı bir sorun olabilir. Teferruatı bir kenara attığımız vakit kod başarılı bir şekilde derleniyor. Yardımcı olabildiysem ne mutlu. Kolay gelsin.

Gerekli eklemeleri yaptım aynı hataayı veriyor. Siz bir boş proje ekleme yapıp gönderirseniz bir denerim bendemi hata var bilemedim.
Cevapla
#17
https://mega.nz/file/QUITjC5C#03oBySLxse...aYuDE4jKrQ
Form1.FormCreate olayında istenen izinler alınıyor ve fonksiyonlar çağrıldığında başarılı oluyor. Bu arada cihazımın android sürümü 9, denemeleri burada yapıyordum. Hazır bi proje üzerinde çalışıyordum o yüzden öylece attım kolay gelsin.
Cevapla
#18
@codder71 hocam Android 11'de dosya kayıt hakkında araştırma yapıyorum. Kullandığınız eski yöntem olarak hangi komutu kullanıyorsunuz, bildirebilir misiniz?
Cevapla
#19
(29-09-2021, Saat: 07:09)emozgun Adlı Kullanıcıdan Alıntı: @codder71 hocam Android 11'de dosya kayıt hakkında araştırma yapıyorum. Kullandığınız eski yöntem olarak hangi komutu kullanıyorsunuz, bildirebilir misiniz?

https://www.delphican.com/showthread.php?tid=2241 bu linkteki anlatım şuan rad studio 11 de kullanabiliyorum.

(27-09-2021, Saat: 17:26)0x1dot Adlı Kullanıcıdan Alıntı: https://mega.nz/file/QUITjC5C#03oBySLxse...aYuDE4jKrQ
Form1.FormCreate olayında istenen izinler alınıyor ve fonksiyonlar çağrıldığında başarılı oluyor. Bu arada cihazımın android sürümü 9, denemeleri burada yapıyordum. Hazır bi proje üzerinde çalışıyordum o yüzden öylece attım kolay gelsin.

Teşekkürler hocam sorunu çözdüm sayenizde izin sorgu kısmındaki const yapı değişmiş şimdi farkına vardım. Sizin gösterdiğiniz yapı çalışıyor. 
Hocam farkettiğim bişiyi size söylemek istiyorum. Gönderdiğiniz örnek projede manifest dosyasında provider belirlenmemiş bu şekilde dosya açabiliyormusunuz ( Yani intent işlemi oluyormu ? ) Rad studio 11de o kısımda da hata var. Önceki sürümde her dosyayı intent ederek çalıştırabilirken şimdi provider eklediğimde uygulama açılışta direk çöküyor. Sizde bu sorunlar oluyor mu ?
Cevapla
#20
(29-09-2021, Saat: 22:17)codder71 Adlı Kullanıcıdan Alıntı:
(29-09-2021, Saat: 07:09)emozgun Adlı Kullanıcıdan Alıntı: @codder71 hocam Android 11'de dosya kayıt hakkında araştırma yapıyorum. Kullandığınız eski yöntem olarak hangi komutu kullanıyorsunuz, bildirebilir misiniz?

https://www.delphican.com/showthread.php?tid=2241 bu linkteki anlatım şuan rad studio 11 de kullanabiliyorum.

(27-09-2021, Saat: 17:26)0x1dot Adlı Kullanıcıdan Alıntı: https://mega.nz/file/QUITjC5C#03oBySLxse...aYuDE4jKrQ
Form1.FormCreate olayında istenen izinler alınıyor ve fonksiyonlar çağrıldığında başarılı oluyor. Bu arada cihazımın android sürümü 9, denemeleri burada yapıyordum. Hazır bi proje üzerinde çalışıyordum o yüzden öylece attım kolay gelsin.

Teşekkürler hocam sorunu çözdüm sayenizde izin sorgu kısmındaki const yapı değişmiş şimdi farkına vardım. Sizin gösterdiğiniz yapı çalışıyor. 
Hocam farkettiğim bişiyi size söylemek istiyorum. Gönderdiğiniz örnek projede manifest dosyasında provider belirlenmemiş bu şekilde dosya açabiliyormusunuz ( Yani intent işlemi oluyormu ? ) Rad studio 11de o kısımda da hata var. Önceki sürümde her dosyayı intent ederek çalıştırabilirken şimdi provider eklediğimde uygulama açılışta direk çöküyor. Sizde bu sorunlar oluyor mu ?

Hocam inan manifest kısmı neresi onu bile bilmiyorum. ListBox1ItemClick fonksiyonunun içeriğindeki dosya açma kodlarını soruyorsan onlar çalışmıyor.
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: 1 Ziyaretçi