Мое приложение может открывать и обрабатывать определенные файлы. Таким образом, вы можете нажать на такой файл, например, в файловом менеджере, и мое приложение предложит его открыть. Фильтр намерений в файле манифеста настроен примерно так.
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="text/plain" />
</intent-filter>
Чтение и обработка файла, как это работает нормально:
Context.getContentResolver().openInputStream(getIntent().getData());
Проблема в том, что я хочу удалить файл после его обработки. (Если пользователь устанавливает для него флажок) Пользователям обычно больше не нужен файл после его открытия в моем приложении.
В настоящее время я могу сделать это только в том случае, если файл предоставлен мне как файл uri (начиная с file://). В этом случае этот код работает нормально:
new File(contentUri.getPath()).delete();
Но я не знаю, как удалить файл, если он предоставляется как uri контента. (начиная с содержания://)
Например, это возвращает null и ничего не делает:
Context.getContentResolver().delete(getIntent().getData(), null, null);
Uri
? - person CommonsWare   schedule 21.11.2016Uri
. Что это? Частью вашего минимально воспроизводимого примера должно быть то, как вы получаетеUri
, указывающий на некоторый контент, который вы хотите удалить. - person CommonsWare   schedule 22.11.2016