我一直在寻找几个小时。我想与文件提供商共享内部存储中的文件。我得到了正确的内容:// Uri并授予了权限。但我无法与其他应用程序共享以打开该文件。
另一方面,我可以从外部存储共享。
请帮帮我
我在这里做了什么:
File file = new File(mContext.getExternalFilesDir(null)+File.separator+"example.pdf");
FileOutputStream outFile = new FileOutputStream(file); // This way I can open.
File file = new File(mContext.getFilesDir()+File.separator+"example.pdf");
FileOutputStream outFile = new FileOutputStream(file); // now I can not open it
打开申请的意图:
public void openfile(Uri fileUri)
{
String mimeType = getMimeType(fileUri); // returns correct mime type
File imagePath = new File(mContext.getFilesDir().toString(),"data/data/com.kryptos.ctech.kryptos/files");
File newFile = new File(imagePath,fileUri.getLastPathSegment());
Uri contentUri = FileProvider.getUriForFile(mContext, mContext.getPackageName(),newFile);
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_VIEW);
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // temp permission for receiving app to read this file
shareIntent.setDataAndType(fileUri, mimeType);
//shareIntent.putExtra(Intent.EXTRA_STREAM, fileUri);
mContext.startActivity(Intent.createChooser(shareIntent, "Choose an app"));
}