Мое приложение загружает файл из Интернета и сохраняет его в папку «Загрузки», а также предоставляет уведомление, этот файл был загружен. Когда я нажимаю уведомление, я создал chooserIntent, чтобы выбрать приложение, чтобы открыть файл. Тем не менее, любое приложение, которое я выбираю, не откроет файл с сообщением об ошибке: «Невозможно открыть файл», но когда я иду в диспетчер файлов, он открывается нормально. Думаю, это связано с разрешениями? BTW, Uri получается так (Android 7.1):Android: Не удается открыть загруженный файл из уведомления. Ошибка: «Не удается открыть файл»
Uri fileUri = FileProvider.getUriForFile(getActivityContext(), getAppContext().getPackageName() + ".provider", file);
Вот мой код для уведомления:
private Notification downloadCompleteNotification(String title, String message, Uri uri) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setDataAndType(uri, "*/*");
Intent chooser = Intent.createChooser(intent, getResources().getString(R.string.open_file_with));
NotificationCompat.Builder builder = initBasicBuilder(title, message, intent);
builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_u));
builder.setOngoing(false);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, chooser, 0);
builder.setContentIntent(pendingIntent);
return builder.build();
}
private NotificationCompat.Builder initBasicBuilder(String title, String text, Intent intent) {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSmallIcon(R.drawable.u)
.setContentTitle(title)
.setContentText(text);
if (intent != null) {
TaskStackBuilder taskStackBuilder = TaskStackBuilder.create(this);
taskStackBuilder.addNextIntentWithParentStack(intent);
}
return builder;
}
Ваша версия для Android? –
Как я уже сказал: android 7.1. – Sermilion
О, я пропустил это. Вы дали разрешение READ_EXTERNAL_STORAGE? –