如何解决CSV文件无法从通知中打开的任何应用程序
我要从我的应用程序与任何支持CSV查看的应用程序创建的通知水龙头(等待中)打开CSV文件。在这种情况下,我正在使用Microsoft Excel。我将文件保存在外部存储的“下载”文件夹中。该文件是可见的,并且可以从任何其他文件管理器应用程序打开,但是当我尝试从通知中打开文件时,某些应用程序崩溃或显示“尝试将文件保存在设备上然后再打开”(Microsoft Excel)。所以我的问题是,如果文件管理器应用程序可以使用同一应用程序打开文件,为什么我的应用程序无法使用该应用程序打开文件。这是我正在使用的代码:
public void showNotifications(Context context,String title,String description,String mime,File file){
PendingIntent pendingIntent = null;
try {
Uri uri = Uri.parse(file.getPath()); //Tried both file.getAbsolutePath(),getCanonicalPath() too
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
intent.setDataAndType(uri,mime); //using "text/csv" as mime
pendingIntent = PendingIntent.getActivity(context,intent,PendingIntent.FLAG_CANCEL_CURRENT);
}catch (Exception e){
e.printstacktrace();
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
int importance = notificationmanager.IMPORTANCE_DEFAULT;
NotificationChannel channel = new NotificationChannel("1","bla bla bla",importance);
notificationmanager notificationmanager = context.getSystemService(notificationmanager.class);
notificationmanager.createNotificationChannel(channel);
}
NotificationCompat.Builder builder = new NotificationCompat.Builder(context,"1")
.setSmallIcon(R.drawable.ic_outline_arrow_circle_down_24)
.setContentTitle(title)
.setContentText(description)
.setAutoCancel(true)
.setContentIntent(pendingIntent)
.setPriority(NotificationCompat.PRIORITY_DEFAULT);
notificationmanagerCompat notificationmanager = notificationmanagerCompat.from(context);
notificationmanager.notify(1,builder.build());
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。