Problem mit der Speicherberechtigung in Android 5 bis 13Java

Java-Forum
Guest
 Problem mit der Speicherberechtigung in Android 5 bis 13

Post by Guest »

Ich erstelle meine App mit native.vue und Java. Ich versuche, Daten im internen Speicher des Geräts zu speichern und zu lesen. Wenn ich diesen Code in Android 10 ausführe, erfolgt keine Berechtigungsanfrage an den Benutzer.
In meiner Manifestdatei definiere ich:

Code: Select all




In meiner Java-Datei habe ich:

Code: Select all

import static androidx.core.content.ContextCompat.startActivity;
import android.Manifest;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.StrictMode;
import android.provider.OpenableColumns;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.activity.result.ActivityResultLauncher;
import android.provider.Settings;
import android.content.ContentValues;
import android.provider.MediaStore;
import android.os.Environment;
import java.io.OutputStream;
import android.util.Log;
import android.widget.Toast;
Mit diesem Code unten zeige ich, dass ich keine Berechtigung habe

Code: Select all

public static boolean checkStoragePermissions(Context context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
// Android est 11 (R) ou supérieur
Log.d("createDir", "Android est 11 (R) ou supérieur");
return Environment.isExternalStorageManager();
} else {
// Inférieur à Android 11
Log.d("createDir", "Inférieur à Android 11");
int write = ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE);
int read = ContextCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE);

return read == PackageManager.PERMISSION_GRANTED && write == PackageManager.PERMISSION_GRANTED;
}
}
Also versuche ich, die Erlaubnis zu bekommen mit:

Code: Select all

 public static boolean requestForStoragePermissions(Activity activity,
ActivityResultLauncher storageActivityResultLauncher) {
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
Intent intent = new Intent();
intent.setAction(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
Uri uri = Uri.fromParts("package", activity.getPackageName(), null);
intent.setData(uri);

if (storageActivityResultLauncher != null) {
storageActivityResultLauncher.launch(intent);
} else {
activity.startActivity(intent);
}
return true; // Requête réussie
} else {
Log.d("createDir", "Inférieur à Android 11");
Log.d("createDir", activity.toString());
ActivityCompat.requestPermissions(
activity,
new String[] {
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE
},
STORAGE_PERMISSION_CODE);
return true; // Requête réussie
}
} catch (Exception e) {
e.printStackTrace();
return false; // Erreur dans la requête
}
}
Aber wenn ich es unter Android 10 ausführe, wird im Telefon kein Dialogfeld angezeigt.
Unter meinem Blick Methode.

Code: Select all

  requestStoragePermissions() {
const activity = Application.android.foregroundActivity || Application.android.startActivity;
let ctx = Utils.android.getApplicationContext();
let execc = com.ecodev.Mifi.MyUtils.requestForStoragePermissions(activity, null);
let exec = com.ecodev.Mifi.MyUtils.checkStoragePermissions(ctx);
console.log('requestForStoragePermissions' + execc);
console.log(exec);
},
Ich habe mehrere Beiträge zum gleichen Thema gelesen und dies vergeblich getestet.
Problem mit der Speicherberechtigung bei Geräten mit Android 10+ https://medium.com/@kezzieleo/manage- external-storage-permission-android-studio-java-9c3554cf79a7

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post