目前我可以从互联网上下载文件并存储在SD卡上,然后从那里使用该文件。然而,这使得可以看到文件(具有专有数据)。我更喜欢使用来自raw或assets文件夹之类的文件。 我将跳过下载代码,但我使用该文件的代码是
File myFile = new File (android.os.Environment.getExternalStorageDirectory() + "/folder/filename.xml");
Intent myIntent = new Intent(Intent.ACTION_VIEW);
myIntent.setData(Uri.fromFile(myFile));
Android使用默认应用程序打开文件,一切都很好。
我发现类似的问答是围绕使用像
这样的代码 Uri.parse("android.resource://com.projectname.testing/raw/filename");
和
InputStream ins = getResources().openRawResource(R.raw.filename);
但我无法弄清楚如何将这两者中的任何一个恢复为'文件'格式,以便与我的.setData代码一起使用
我想通过简单地将文件作为文件访问来解决我的问题。但是,由于我已经阅读了外部应用程序,我可能需要使用mode_world_readable创建该文件的临时副本,然后在应用程序关闭后删除它。这听起来像是一项额外的工作,特别是因为我上面的代码适用于存储在SD卡上的文件。
有没有人有任何想法? 感谢
答案 0 :(得分:0)
我更喜欢使用来自raw或assets文件夹的文件。
请注意,这些也可以“看到”。
但我无法弄清楚如何将这两者中的任何一个恢复为'文件'格式,以便与我的.setData代码一起使用
setData()
不接受File
。它需要Uri
。使用Uri.parse()
解析其他类型的Uri
值 - 您已经拥有上面显示的代码。
但是,由于外部应用程序正在使用它,我已经阅读过,我可能需要使用mode_world_readable创建该文件的临时副本,然后在应用程序关闭后将其删除。
它绝对需要具有世界可读性。此外,并非所有应用都支持所有方案,因此支持file://
或http://
的应用可能不支持android.resource://
。