Ich erstelle derzeit meine eigene Galerie App. Ich verwende ein benutzerdefiniertes Objekt, das alle erforderlichen Informationen für eine Galerie enthält, einschließlich der URLs der Bilder aus der lokalen Android-Galerie.Wie kann ich Bilder aus der Galerie von URIs in der db ohne Erlaubnis verweigert laden
Ich speichere dieses Galerieobjekt in einer SQL lite db.
Ich habe eine Aktivität um diese Galerie Objekte zu sehen. In dieser Aktivität lade ich die Galerie, die ich anzeigen möchte - das funktioniert.
Aber wenn ich versuche, die Bilder zu laden:
GalleryDTO galleryDTO=vrGalleryApp.getGalleryService().loadGalleryById(displayedGalleryId);
if(galleryDTO.getPhotos()!=null&&!galleryDTO.getPhotos().isEmpty()){
for(int i=0;i<galleryDTO.getPhotos().size();i++){
Uri imageUrl = galleryDTO.getPhotos().get(i);
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUrl);
Dann wird die folgende Ausnahme ausgelöst:
java.lang.SecurityException: Permission Denial: opening provider com.google.android.apps.photos.contentprovider.MediaContentProvider from ProcessRecord{3585e48d 8727:at....vrgallery.vrgallery/u0a137} (pid=8727, uid=10137) that is not exported from uid 10071
selbst erklärte ich die erforderlichen Rechte im Manifest:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Diese Ausnahme tritt nicht für Galerien auf, die gerade vor dem Anzeigen gespeichert wurden. Aber wenn ich meine App schließe (z. B. mit dem Task-Manager) und sie wieder öffne, wird die Ausnahme auch für diese neuen Galerien ausgelöst.
Woran liege ich falsch?
Vielen Dank für Ihre Antwort, ich fürchtete, dass es so etwas ist – fsch