Android共享内部和外部存储文件

时间:2016-08-31 12:58:01

标签: android

我一直在寻找几个小时。我想与文件提供商共享内部存储中的文件。我得到了正确的内容:// 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"));
}

0 个答案:

没有答案