Ответ 1
Я читал об этом немного. Во-первых, EXTRA_STREAM не использует FLAG_GRANT_READ_URI_PERMISSION
. Он работает, начиная с JellyBean только потому, что под капотом, называя startActivity()
копии EXTRA_STREAM
до ClipData
, который установлен для Intent и использует FLAG_GRANT_READ_URI_PERMISSION
.
Относительно вашего вопроса, на который должен вызываться revokeUriPermission().
Я предлагаю использовать:
private static final int REQUEST_CODE = 1;
startActivityForResult(intent, REQUEST_CODE);
вместо
startActivity(intent);
а затем переопределить следующий метод:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
if (requestCode == REQUEST_CODE) {
// Call revokeUriPermission here
}
}
Вышеуказанный метод будет вызываться при запуске активности. Посмотрите документацию здесь