Я создаю приложение Chooser, которое заменяет собственный диалог Android Share. Он работает нормально, за исключением случаев, когда я пытаюсь поделиться изображением из Chrome через longpress image> поделиться изображением.
Если я попытаюсь сделать:
Галерея Фокуса (Франко)> Поделиться (Мое приложение)> Google+> Нет проблем.
Chrome> Поделиться (My App)> Crash.
Как только я пытаюсь получить доступ к содержимому: // uri, которое передается в мое приложение как EXTRA_STREAM, я получаю сообщение об ошибке:
java.lang.SecurityException: Отказ в разрешении: открытие провайдера
org.chromium.chrome.browser.util.ChromeFileProvider from
ProcessRecord {9a9ad72 13494: com.rejh.sharedr / u0a226} (pid = 13494,
uid = 10226), который не экспортируется из UID 10101
Содержание URI выглядит так:
Содержание: //com.android.chrome.FileProvider/images/screenshot/15307085865714015389178311011200.jpg
Вот что я делаю (упрощенно):
@override
public void onCreate() {
handleIntent();
@override
public void onNewIntent() {
handleIntent();
}
public void handleIntent() {
Parcelable parcel = getIntent().getParcelableExtra(Intent.EXTRA_INTENT);
payloadIntent = new Intent((Intent) parcel);
Uri extraStreamUri = (Uri) payloadIntent.getExtras().get(Intent.EXTRA_STREAM);
ContentResolver contentResolver = getContentResolver();
String fileMimeType = contentResolver.getType(extraStreamUri);
Cursor returnCursor = contentResolver.query(extraStreamUri, null, null, null, null);
}
Я получаю сообщение об ошибке в последней строке (contentResolver.query ()). Как ни странно, getType () работает.
Манифест декларации о деятельности:
<activity
android:name=".ActShareReplace"
android:label="Sharedr"
android:theme="@style/AppTheme.TransparentActivity"
>
<intent-filter>
<action android:name="android.intent.action.CHOOSER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Насколько я могу судить, у меня все еще должен быть доступ к URI, поскольку я пытаюсь получить к нему доступ из того же действия, которое получает намерение.
Кстати, Chrome - единственное приложение, с которым у меня до сих пор были проблемы. Пользователь сообщил, что обмен изображениями из Whatsapp привел к аналогичным ошибкам.