Delphi Can
Permissions Sorunu [Çözüldü] - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Mobil Platform - FireMonkey (FMX) (https://www.delphican.com/forumdisplay.php?fid=7)
+--- Konu Başlığı: Permissions Sorunu [Çözüldü] (/showthread.php?tid=6281)

Sayfalar: 1 2 3


Cvp: Permissions Sorunu - emozgun - 23-09-2021

(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


Cvp: Permissions Sorunu - codder71 - 23-09-2021

(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


Permissions Sorunu - 0x1dot - 25-09-2021

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;



Cvp: Permissions Sorunu - codder71 - 25-09-2021

(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ı.


Kod:
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.


Cvp: Permissions Sorunu - 0x1dot - 25-09-2021

(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ı.


Kod:
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.


Cvp: Permissions Sorunu - codder71 - 26-09-2021

(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.


Permissions Sorunu - 0x1dot - 27-09-2021

https://mega.nz/file/QUITjC5C#03oBySLxsek82ZMZdX8Q4nIofRsZ_bRscaYuDE4jKrQ
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.


Cvp: Permissions Sorunu - emozgun - 29-09-2021

@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?


Cvp: Permissions Sorunu - codder71 - 29-09-2021

(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#03oBySLxsek82ZMZdX8Q4nIofRsZ_bRscaYuDE4jKrQ
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 ?


Cvp: Permissions Sorunu - 0x1dot - 29-09-2021

(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#03oBySLxsek82ZMZdX8Q4nIofRsZ_bRscaYuDE4jKrQ
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.