我正在开发一个可以将图像发送到其他应用的应用。在Nougat发布后,我们应该使用FileProvider
。但我注意到这种方法并不普遍。对于早期版本的Android,我们应该使用Uri.getUriFromFile()
方法。但是对于某些应用程序(即默认消息应用程序),使用FileProvider
对Nougat也不起作用。是否有适用于所有应用的通用方法,或者我应该定义仅在练习时无法与FileProvider
一起使用的应用?
答案 0 :(得分:0)
以下代码必须正常运行:
File file = new File(filePath);
Uri contentUri = FileProvider.getUriForFile(getContext(), "com.example.fileprovider", file);
if (contentUri != null) {
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // temp permission for receiving app to read this file
shareIntent.setDataAndType(contentUri, getContentResolver().getType(contentUri));
shareIntent.putExtra(Intent.EXTRA_STREAM, contentUri);
startActivity(Intent.createChooser(shareIntent, "Share image");
}