0

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?

+0

"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

+0

Ja, ich benutze den Uri, den ich von der Absicht erhalte. Er speichert ihn nicht irgendwo und benutzt ihn später. – Priya

+0

Aus dem Stegreif fühlt es sich wie ein Bug in Chrome an. – CommonsWare

Antwort

0

Stellen Sie sicher, dass Sie versuchen, das Bild aus derselben Aktivität abzurufen, für die Sie ACTION_SEND in Android Manifest festgelegt haben. Der wahrscheinlichste Grund für die obige Ausgabe