【已解决】为什么Android分享txt文件至第三方应用不成功?

目的是,在我的App内转发,刚刚存储于sd卡内的txt文件,至一个第三方App。

问题:转发到第三方App不成功,在选择转发应用界面选中该App后,无反应。
测试发现转发到QQ、微信都正常被发送;并且在QQ、微信内转发至上述第三方App是正常的。

我就寻思着应该是我转发代码没写好,转发这块确实是才刚接触,唔...可以帮忙找找问题么...

        Intent intent = new Intent();
        intent.addCategory("android.intent.category.DEFAULT");
        intent.setAction(Intent.ACTION_SEND);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
          Uri contentUri =
              FileProvider.getUriForFile(
                  activity.getApplicationContext(),
                  BuildConfig.APPLICATION_ID + ".provider",
                  activity.file);
          intent.putExtra(Intent.EXTRA_STREAM, contentUri);
        } else {
          intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(activity.file));
        }
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        intent.setType("text/plain");
        activity.startActivity(Intent.createChooser(intent, "分享"));

半天后,我类比了“用WPS打开txt”,结合资料实现了原本目的。

更新代码:

        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        Uri contentUri;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
          contentUri =
              FileProvider.getUriForFile(
                  activity.getApplicationContext(),
                  BuildConfig.APPLICATION_ID + ".provider",
                  activity.file);
        } else {
          contentUri = Uri.fromFile(activity.file);
        }
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        intent.setDataAndType(contentUri, "text/plain");
        activity.startActivity(Intent.createChooser(intent, "分享"));

感谢回答过我问题的人~

是不是特定的手机或者app 有问题,这种情况考虑是权限的问题。

要想分享文件,首先要在Manifest中声明要分享的目录。然后将待分享的文件放在这个目录下才可以。
你缺少的是manifest中的配置