Meine App lädt eine Datei aus dem Internet herunter und speichert sie im Ordner "Downloads" sowie eine Benachrichtigung, dass die Datei heruntergeladen wurde. Wenn ich auf die Benachrichtigung klicke, habe ich chooserIntent erstellt, um eine App zum Öffnen der Datei auszuwählen. Jede App, die ich auswähle, öffnet die Datei jedoch nicht mit der Fehlermeldung: "Datei kann nicht geöffnet werden", aber wenn ich zu einem Dateimanager gehe, wird die Datei problemlos geöffnet. Ich denke, es ist etwas mit Berechtigungen verbunden? BTW, ist Uri wie dieser (Android 7.1) erhalten:Android: Heruntergeladene Datei kann nicht aus der Benachrichtigung geöffnet werden. Fehler: "Datei kann nicht geöffnet werden"
Uri fileUri = FileProvider.getUriForFile(getActivityContext(), getAppContext().getPackageName() + ".provider", file);
hier für die Benachrichtigung ist mein Code:
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;
}
Ihre Android-Version? –
Wie gesagt: Android 7.1. – Sermilion
Oh ich verpasste es .. Haben Sie READ_EXTERNAL_STORAGE Runtime-Erlaubnis gegeben? –