Mar*_*arl 15 video android video-processing
从这里我知道一种编写文件的方法,可以访问其他应用程序和其他意图,但现在不推荐使用Context.MODE_WORLD_READABLE,我怎样才能安全地完成此操作?
FileOutputStream out = myActivity.openFileOutput(fileTo, Context.MODE_WORLD_READABLE);
Run Code Online (Sandbox Code Playgroud)
好的更多信息:
我正在使用这个:
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "video/*");
Run Code Online (Sandbox Code Playgroud)
而uri将是我将写入SD卡位置的那个.视频将来自应用程序,所以问题是,如果现在不允许,我该如何编写文件并查看它.
Com*_*are 12
而uri将是我将写入SD卡位置的那个.
这已经MODE_WORLD_WRITABLE是默认情况.另外请注意,您列出的代码(openFileOutput())并没有写入外部存储(你不正确称之为"SD卡").openFileOutput()用于内部存储.
视频将来自应用程序,所以问题是,如果现在不允许,我该如何编写文件并查看它.
如果您确实将文件写入外部存储,只需使用Uri指向该文件即可.
如果要将文件写入内部存储,请创建一个ContentProvider以提供该文件,并使用Uri指向该文件ContentProvider.这是一个示例应用程序,ContentProvider它从assets/第一次运行中提取PDF文件,然后提供该文件,openFile()以便PDF查看器可以查看.
使用以下方法将视频保存在内存中:
openFileOutput("test.mp4", "MODE_PRIVATE");
Run Code Online (Sandbox Code Playgroud)
然后这样做:
String path = context.getFilesDir().getAbsolutePath() + "/test.mp4"; // path to the root of internal memory.
File f = new File(path);
f.setReadable(true, false);
Intent playIntent ....
playIntent.setType("video/*");
playIntent.setData(Uri.fromFile(f));
Run Code Online (Sandbox Code Playgroud)
祝好运.