我注意到有趣的事情。当我使用自己的意图将文件发送到另一个应用程序而不使用FileProvider:
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
sendIntent.setType("image/gif");
sendIntent.setPackage(packageName);
int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS;
sendIntent.setFlags(flags);
在Nougat设备应用程序崩溃。 但是,如果我使用下一个代码:
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("image/gif");
String titleForChooser = getString(R.string.app_chooser_title);
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS;
sendIntent.setFlags(flags);
Intent.createChooser(sendIntent, titleForChooser);
在Nougat上它除了FB Messenger和WhatsApp之外还可以正常工作。有人知道答案"为什么?"?你能解释一下吗?