繁体   English   中英

Android共享文件

[英]Android sharing 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发送电子邮件并内置客户端没有问题,但是我无法使用应用程序或Messenger或任何其他消息传递应用程序共享文件。 相同的Messenger应用程序显示不支持该格式的消息,尽管通常我可以使用它们发送.xml文件。

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

发生这种情况是因为您设置了sharingIntent.setType("application/xml"); 并非所有的应用程序都能满足您的意图。 将您的类型更改为sharingIntent.setType("text/plain");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM