Ich versuche, Bilder von Chrome Browser zu meiner Anwendung mit impliziten Absicht ACTION_SEND zu teilen.Permission Denial beim Lesen von Inhalt Uri von Chrom Bilder durch openInputStream()
Während Bilder gesucht Teilen, App erhält Absicht mit einem Content-URI wie folgt aus: Inhalt: //com.android.chrome.FileProvider/images/screenshot/1457448067808912906311.jpg
Mit ContentResolver und openInputStream () zu Uri in Bytes mit dem Inhalt verknüpft zu lesen, stürzt es App werfen Exception-Sicherheit: die Erlaubnis Denial
Hier ist der Stack-Trace:
Caused by java.lang.SecurityException: Permission Denial: opening provider org.chromium.chrome.browser.util.CompatibilityFileProvider from ProcessRecord{e2de807 31401:com.theteamie.android.app/u0a784} (pid=31401, uid=10784) that is not exported from uid 10060
at android.os.Parcel.readException(Parcel.java:1620)
at android.os.Parcel.readException(Parcel.java:1573)
at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3576)
at android.app.ActivityThread.acquireProvider(ActivityThread.java:4799)
at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2018)
at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1466)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1087)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:942)
at android.content.ContentResolver.openInputStream(ContentResolver.java:662)
at com.theteamie.android.app.activity.PostShareActivity.copyToLocalFile(PostShareActivity.java:141)
at com.theteamie.android.app.activity.PostShareActivity.processChosenFile(PostShareActivity.java:103)
at com.theteamie.android.app.activity.PostShareActivity.onCreate(PostShareActivity.java:72)
at android.app.Activity.performCreate(Activity.java:6259)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1130)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
Früher habe ich gearbeitet, als ich diese Funktion codiert habe. Ich habe Hilfe von Antworten zu meinem SO question. Kann jemand bitte vorschlagen, was dieses Problem jetzt verursachen könnte?
"Früher war es ein paar Tage zurück" - nur um zu bestätigen, dass Sie den 'Uri' benutzen, wenn Sie ihn erhalten, richtig? Wenn Sie diese "Uri" irgendwo gespeichert haben (z. B. Datenbank) und versuchen, sie später zu verwenden, wird dieses Verhalten erwartet. – CommonsWare
Ja, ich benutze den Uri, den ich von der Absicht erhalte. Er speichert ihn nicht irgendwo und benutzt ihn später. – Priya
Aus dem Stegreif fühlt es sich wie ein Bug in Chrome an. – CommonsWare