通用的方式将图像分享给其他应用程序

时间:2017-08-31 14:46:12

标签: java android sharing

我正在开发一个可以将图像发送到其他应用的应用。在Nougat发布后,我们应该使用FileProvider。但我注意到这种方法并不普遍。对于早期版本的Android,我们应该使用Uri.getUriFromFile()方法。但是对于某些应用程序(即默认消息应用程序),使用FileProvider对Nougat也不起作用。是否有适用于所有应用的通用方法,或者我应该定义仅在练习时无法与FileProvider一起使用的应用?

1 个答案:

答案 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");

    }