Невозможно прочитать файлы Uri, предоставленные другим приложением, т. Е. Whatsapp - PullRequest
0 голосов
/ 10 июля 2019

Когда файл используется другими приложениями через FileProvider, Uri, полученный в моем приложении, не читается.Если я пытаюсь получить путь к файлу или создать файл из него, он говорит, что файл не существует.Пример Uri из whatsapp имеет содержание : //com.whatsapp.provider.media/item/91836.Это дает исключение безопасности, когда я пытаюсь прочитать растровое изображение из Uri.

Строки кода - метод onCreate:

Uri mediaUri = getIntent().getParcelableExtra(Intent.EXTRA_STREAM);
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), mediaUri);

Манифест:

<activity
        android:name=".ui.main.MainActivity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustNothing">
        <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />

            <data android:mimeType="image/*" />
            <data android:mimeType="video/mp4" />
            <!--<data android:mimeType="video/*" />-->
        </intent-filter>
    </activity>

Исключение:

Caused by: java.lang.SecurityException: Permission Denial: opening provider com.whatsapp.MediaProvider from ProcessRecord{fbda37f 23891:com.fayvo/u0a273} (pid=23891, uid=10273) that is not exported from UID 10133
        at android.os.Parcel.createException(Parcel.java:1953)
        at android.os.Parcel.readException(Parcel.java:1921)
        at android.os.Parcel.readException(Parcel.java:1871)
        at android.app.IActivityManager$Stub$Proxy.getContentProvider(IActivityManager.java:4159)
        at android.app.ActivityThread.acquireProvider(ActivityThread.java:6759)
        at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2912)
        at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1879)
        at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1460)
        at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1313)
        at android.content.ContentResolver.openInputStream(ContentResolver.java:1033)
        at android.provider.MediaStore$Images$Media.getBitmap(MediaStore.java:919)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...