Berechtigung: does not have permission to content.........

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Berechtigung: does not have permission to content.........

    Hallo zusammen,

    ich versuche eine Datei zu öffnen und anzuzeigen.
    Der Pfad der Datei kommt aus meiner App eigenen Datenbank.
    Die Datei existiert nachweislich und lässt sich über ein "Intent.ACTION_OPEN_DOCUMENT" problemlos öffnen und anzeigen!

    Die selbe Datei lässt sich jedoch nicht öffnen und anzeigen wenn ich nicht zuvor "Intent.ACTION_OPEN_DOCUMENT" verwende.

    bei folgendem Code habe ich Probleme mit den Berechtigungen:

    Java-Quellcode

    1. Uri myUri = Uri.parse("content://com.android.externalstorage.documents/document/primary%3ANoten_MVP%2FBariton%2Test.pdf");
    2. Intent target = new Intent(Intent.ACTION_VIEW);
    3. target.setDataAndType( myUri, "application/pdf");
    4. Intent.FLAG_GRANT_WRITE_URI_PERMISSION|Intent.FLAG_GRANT_PREFIX_URI_PERMISSION);
    5. Intent intent = Intent.createChooser(target, "Open PDF using");
    6. try {
    7. startActivity(intent);
    8. } catch (ActivityNotFoundException e) {
    9. // Instruct the user to install a PDF reader here, or something
    10. Toast.makeText(this, "No Applications found to open pdf", Toast.LENGTH_SHORT).show();
    11. }
    12. }
    Alles anzeigen
    Folgende Fehlermeldungen erhalte ich dabei:

    Caused by: java.lang.SecurityException: UID 10138 does not have permission to content://com.android.externalstorage.documents/document/primary%3ANoten_MVP%2FBariton%2Test.pdf [user 0]; you could obtain access using ACTION_OPEN_DOCUMENT or related APIs
    ......
    ......
    Caused by: android.os.RemoteException: Remote stack trace:
    at com.android.server.uri.UriGrantsManagerService.checkGrantUriPermission(UriGrantsManagerService.java:1174)
    at com.android.server.uri.UriGrantsManagerService.checkGrantUriPermissionFromIntent(UriGrantsManagerService.java:591)
    at com.android.server.uri.UriGrantsManagerService.grantUriPermissionFromIntent(UriGrantsManagerService.java:617)
    at com.android.server.uri.UriGrantsManagerService$LocalService.grantUriPermissionFromIntent(UriGrantsManagerService.java:1379)
    at com.android.server.wm.ActivityStarter.startActivityUnchecked(ActivityStarter.java:1691)




    in der AndroidManifest habe ich folgendes
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />


    Wie kann ich die fehlende Berechtigung bekommen?[/b]
  • Hallo zusammen,

    ich habe nun in meinem Testcode versucht die Erlaubnis während der Laufzeit zu bekommen.
    Nur leider funktioniert das auch nicht

    Quellcode

    1. if (ContextCompat.checkSelfPermission(
    2. this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
    3. if (ActivityCompat.shouldShowRequestPermissionRationale(this,
    4. //Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
    5. Manifest.permission.READ_EXTERNAL_STORAGE)){
    6. } else {
    7. ActivityCompat.requestPermissions(
    8. this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1234);
    9. }
    10. } else {
    11. //dateierstellen();
    12. //TESSTPDF();
    13. //myPDF();
    14. }
    15. }
    16. @Override
    17. public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
    18. super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    19. if (requestCode == 1234) {
    20. if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
    21. Log.i("resultcode", "dateierstellen " + requestCode);
    22. //dateierstellen();
    23. myPDF();
    24. } else {
    25. Toast.makeText(getApplicationContext(), "Permission Denied", Toast.LENGTH_SHORT).show();
    26. }
    27. }
    28. }
    Alles anzeigen

    Aber auch damit bekomme ich die Fehlermeldung:

    java.lang.SecurityException: UID 10153 does not have permission to content://com.android.externalstorage.documents/document/primary%3.................



    Meine Verzeichnis liegt doch auf der Shared-Momory Ebene?
    Dann müsste dies doch in Android 1ß ohne Probleme gehen.....

    Wäre über einen Tipp oder Stichwort sehr dankbar.
    Irgendwie habe ich dabei ein Verständnisproblem.......