Я пытаюсь написать простое упражнение, которое выполняет следующее:
Пользователь удерживает изображение, просматриваемое в браузере Android, а затем нажимает «Поделиться изображением» и выбирает мою активность для его обработки. Я хочу иметь возможность открыть файл изображения из моей деятельности.
Путь к файлу заканчивается: /data/data/com.android.browser/app_sharedimage/SOME_FILE_NAME.jpg
и вызов «File ()» на пути приводит к ошибке разрешения:
java.io.FileNotFoundException: /data/data/com.android.browser/app_sharedimage/SOME_FILE_NAME.jpg (В доступе отказано))
Как я могу открыть этот файл изображения? Есть ли какое-то разрешение, которое мне нужно добавить в манифест?
Вот соответствующий код:
if (Intent.ACTION_SEND.equals(intent.getAction())) {
if (extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.getParcelable(Intent.EXTRA_STREAM);
String scheme = uri.getScheme();
if (scheme.equals("content")) {
String mimeType = intent.getType();
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(uri, null, null,
null, null);
cursor.moveToFirst();
String filePath = cursor.getString(cursor
.getColumnIndexOrThrow(Images.Media.DATA));
...
...
new FileBody(new File(filePath))
...