Android共享文件

时间:2017-08-10 14:26:19

标签: android file

我想从内部目录共享文件。 我已经使用了文件提供程序。

        <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="com.gps.stuttgartuni.bincalendar"
        android:exported="true"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_path" />
    </provider>

我和你一样分享这个文件

            File file = new File(getFilesDir(), fileName);
    if(file.exists()){
        try {
            Uri uri =FileProvider.getUriForFile(getApplicationContext(), BuildConfig.APPLICATION_ID, file);
            Intent sharingIntent = new Intent(Intent.ACTION_SEND);
            sharingIntent.setType("application/xml");

            sharingIntent.putExtra(Intent.EXTRA_STREAM, uri);
            sharingIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            Context context=getApplicationContext();
            List<ResolveInfo> resInfoList = context.getPackageManager().queryIntentActivities(sharingIntent, PackageManager.MATCH_DEFAULT_ONLY);
            for (ResolveInfo resolveInfo : resInfoList) {
                String packageName = resolveInfo.activityInfo.packageName;
                context.grantUriPermission(packageName, uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
            }
            startActivity(sharingIntent);
        }
        catch (Exception e){
            Log.e("Error",e.getMessage());
        }

我正在尝试发送.xml 使用gmail和内置客户端发送电子邮件时代码没有问题,但我不能使用app或messenger或任何其他消息应用程序共享文件。 相同的messenger应用程序显示格式不受支持的吐司,虽然通常我可以使用它们发送.xml文件。

知道为什么代码只对某些应用程序有问题吗?

0 个答案:

没有答案