目的是,在我的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, "分享"));
感谢回答过我问题的人~