Java Galeri izni istemiyor

Black X6

Picopat
Katılım
13 Eylül 2023
Mesajlar
193
Çözümler
3
Daha fazla  
Cinsiyet
Erkek
Java'da program yazarken galeri erişimine ihtiyacım var fakat uygulamayı çalıştırdığımda izin istemeden "permission needed!" toast mesajını veriyor. Manifest bölümünde de tam olarak izinleri tanımladım aslında. Sebebi nedir?

Java:
 Uri imageData;
 ActivityResultLauncher<Intent> activityResultLauncher;
 ActivityResultLauncher<String> permissionLauncher;
 private ActivityUploadBinding binding;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 ActivityUploadBinding activityBinding = ActivityUploadBinding.inflate(getLayoutInflater());
 View view = activityBinding.getRoot();
 setContentView(view);
 binding = activityBinding;
 registerLauncher();
 }

 public void publish_btn(View view){
 }

 public void selectImg(View view) {
 if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
 if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_EXTERNAL_STORAGE)) {
 Snackbar.make(view, "Permission needed for gallery", Snackbar.LENGTH_INDEFINITE)
 .setAction("Give permission", new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 // İzin izleme başlatıcısını çağırmak için hemen burada izin isteği yapılmalıdır.
 permissionLauncher.launch(Manifest.permission.READ_EXTERNAL_STORAGE);
 }
 }).show();
 } else {
 // İzin izleme başlatıcısını çağırmak için hemen burada izin isteği yapılmalıdır.
 permissionLauncher.launch(Manifest.permission.READ_EXTERNAL_STORAGE);
 }
 } else {
 // İzinler zaten varsa, galeriye gitmek için intent başlatılır.
 Intent intentToGallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
 activityResultLauncher.launch(intentToGallery);
 }
 }

 private void registerLauncher() {
 activityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
 @Override
 public void onActivityResult(ActivityResult result) {
 if (result.getResultCode() == RESULT_OK) {
 Intent intentFromResult = result.getData();
 if(intentFromResult != null) {
 imageData = intentFromResult.getData();
 binding.selectImg.setImageURI(imageData);
 }
 }
 }
 });

 permissionLauncher = registerForActivityResult(new ActivityResultContracts.RequestPermission(), new ActivityResultCallback<Boolean>() {
 @Override
 public void onActivityResult(Boolean result) {
 if(result) {
 // İzin verildiğinde, galeriye gitme işlemi yeniden başlatılır.
 Intent intentToGallery = new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
 activityResultLauncher.launch(intentToGallery);
 } else {
 // Kullanıcı izin vermediğinde bir uyarı mesajı gösterilir.
 Toast.makeText(UploadActivity.this,"Permission needed!", Toast.LENGTH_LONG).show();
 }
 }
 });
 }
}
 
Son düzenleyen: Moderatör:

Geri
Yukarı