Bild aus der Galerie in Android 6(Marshmallow)
In Meiner Anwendung werde ich versuchen zu Holen Bild von der Galeere, so zu gehen, dass Bild zu server.
Code funktioniert auf Android 5 und darunter, aber für Android 6 auf dem Nexus 5 bin ich nicht in der Lage, Bild Informationen. Log-Spur, die ich habe
Hinweis: Code funktioniert auf Android 5 und unter Versionen
11-06 12:27:43.736: W/System.err(31678): java.lang.SecurityException: Permission Denial: reading com.google.android.apps.photos.contentprovider.MediaContentProvider uri content://com.google.android.apps.photos.contentprovider/0/1/content%3A//media/external/images/media/19138/ACTUAL/94710853 from pid=31678, uid=10111 requires the provider be exported, or grantUriPermission()
11-06 12:27:43.757: W/System.err(31678):
at android.os.Parcel.readException(Parcel.java:1599)
11-06 12:27:43.757: W/System.err(31678):
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
11-06 12:27:43.757: W/System.err(31678):
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
11-06 12:27:43.757: W/System.err(31678):
at android.content.ContentProviderProxy.query(ContentProviderNative.java:421)
11-06 12:27:43.757: W/System.err(31678):
at android.content.ContentResolver.query(ContentResolver.java:491)
11-06 12:27:43.757: W/System.err(31678):
at android.content.ContentResolver.query(ContentResolver.java:434)
11-06 12:27:43.758: W/System.err(31678):
at org.apache.cordova.file.ContentFilesystem.openCursorForURL(ContentFilesystem.java:258)
11-06 12:27:43.758: W/System.err(31678):
at org.apache.cordova.file.ContentFilesystem.getFileMetadataForLocalURL(ContentFilesystem.java:169)
11-06 12:27:43.758: W/System.err(31678):
at org.apache.cordova.file.FileUtils.getFileMetadata(FileUtils.java:822)
11-06 12:27:43.758: W/System.err(31678):
at org.apache.cordova.file.FileUtils.access$500(FileUtils.java:52)
11-06 12:27:43.758: W/System.err(31678):
at org.apache.cordova.file.FileUtils$15.run(FileUtils.java:394)
11-06 12:27:43.758: W/System.err(31678):
at org.apache.cordova.file.FileUtils$25.run(FileUtils.java:551)
11-06 12:27:43.758: W/System.err(31678):
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
11-06 12:27:43.758: W/System.err(31678):
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
11-06 12:27:43.758: W/System.err(31678):
at java.lang.Thread.run(Thread.java:818)
schöne Erklärung inthecheesefactory.com/blog/...
Ich denke, Sie sollten versuchen zu decodieren und das Bild im gleichen Kontext, ohne dabei die uri zu einem anderen Kontext und entschlüsseln Bild gibt(wie startActivity).
Ich denke, Sie sollten versuchen zu decodieren und das Bild im gleichen Kontext, ohne dabei die uri zu einem anderen Kontext und entschlüsseln Bild gibt(wie startActivity).
InformationsquelleAutor Harsh | 2015-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
TUN es auf diese Weise...
auf Schaltfläche Klicken Sie zum SDK-Version
nach, dass in der überschreibenden Methode onRequestPermissionsResult schreiben Sie diesen code:
Danach
es ist eine statische int-Wert azeichen es ein int-Wert, aber dieser Wert sollte nicht verwendet werden, für jede andere Anfrage. zum Beispiel, wenn für die Kamera, die Sie verwenden Wert 1 für diesen können Sie einen beliebigen ganzzahligen Wert, außer 1..
InformationsquelleAutor Ashwani
Ich glaube, Sie brauchen sich auf Wunsch die Berechtigungen, die der Benutzer zur Laufzeit (dies ist eine der auffälligsten änderungen aus der api-22 bis 23).
Können Sie versuchen, diese Schnipsel, extrahiert aus der Android-Entwickler die Erlaubnis Seite
Lassen Sie mich wissen, wenn es geholfen hat.
InformationsquelleAutor mmark
Um Bild aus Galerie in Marshmallow, sind Sie verpflichtet, zu gewähren READ_EXTERNAL_STORAGE Erlaubnis zur Laufzeit. Android-Version M hat die Art verändert, wie Berechtigungen erteilt werden, um Anwendungen.
Bevor Marshmallow, die alle erforderlichen Berechtigungen erteilt werden, auf einmal und dass ist bei der installation. Aber in Marshmallow, wird der Benutzer um Erlaubnis gefragt zu der Zeit nur wenn die Zustimmung erforderlich ist, und hat der Benutzer entweder Erlauben oder Verweigern die Zustimmung.
Unten zwei links, die Ihnen helfen, mehr. Link 1 ist aus der offiziellen Dokumentation von Android, und Link 2 ist ein blog, welcher erklärt hat, dieses Thema mit einem Beispiel arbeiten.
Link1: http://developer.android.com/training/permissions/requesting.html
Link2: http://inthecheesefactory.com/blog/things-you-need-to-know-about-android-m-permission-developer-edition/en
InformationsquelleAutor Muhammad Ibrahim
Ich hatte das gleiche Problem. Das Bild zeigte in der Bildansicht nach der Ernte das Bild aus der Galerie verwenden
und der Entschlüsselung des bitmap-Bild aus der URI
Aber speichern die URI für die zukünftige Verwendung und erneuten öffnen der app und Wiederverwendung der gespeicherten URI nicht funktioniert. Konnte nicht der Entschlüsselung des bitmap aus URI.
Ich löste das Problem durch das entpacken des original-Inhalts-uri aus der URI-Pfad
InformationsquelleAutor Abi
Versuchen, diese
Dies ist die einfache Methode, die ich erstellt habe, mit anderen Beispielen
call CHECKGALLERYPERMISSION () - Methode, wo Sie wollen, und fügen Sie den code in Methode
Hinweis
InformationsquelleAutor Sunil