Android 使用位于“原始”或“资产”文件夹中的文件

Android 使用位于“原始”或“资产”文件夹中的文件,android,Android,目前,我可以从互联网上下载一个文件并存储在SD卡上,然后从那里使用该文件。但是,这样可以查看包含专有数据的文件。我更喜欢使用像原始或资产文件夹的文件。 我将跳过下载代码,但我使用该文件的代码如下 File myFile = new File (android.os.Environment.getExternalStorageDirectory() + "/folder/filename.xml"); Intent myIntent = new Intent(Intent.ACTION_V

目前,我可以从互联网上下载一个文件并存储在SD卡上,然后从那里使用该文件。但是,这样可以查看包含专有数据的文件。我更喜欢使用像原始或资产文件夹的文件。 我将跳过下载代码,但我使用该文件的代码如下

  File myFile = new File (android.os.Environment.getExternalStorageDirectory() + "/folder/filename.xml");
  Intent myIntent = new Intent(Intent.ACTION_VIEW);
  myIntent.setData(Uri.fromFile(myFile));
Android用默认应用程序打开文件,一切正常

我发现类似的Q/A都是围绕着使用类似

  Uri.parse("android.resource://com.projectname.testing/raw/filename");

但是我不知道如何将这两种格式中的任何一种恢复为“文件”格式,以便与我的.setData代码一起使用

我想通过简单地以文件的形式访问文件来解决我的问题。但是,由于它正由我读过的外部应用程序使用,我可能需要使用模式_world _readable创建文件的临时副本,然后在应用程序关闭后将其删除。这听起来需要做很多额外的工作,尤其是因为我上面的代码确实适用于存储在SD卡上的文件

有人有什么想法吗? 谢谢

我更喜欢使用像原始或资产文件夹的文件

请注意,这些也可以看到

但是我不知道如何将这两种格式中的任何一种恢复为“文件”格式,以便与我的.setData代码一起使用

setData不接受文件。它需要一个Uri。使用Uri.parse解析其他类型的Uri值-您已经有了上面显示的代码

但是,由于它正由我读过的外部应用程序使用,我可能需要使用模式_world _readable创建文件的临时副本,然后在应用程序关闭后将其删除


它肯定需要具有世界可读性。此外,并非所有应用程序都支持所有方案,因此支持file://或http://的应用程序可能不支持android。资源://。

谢谢您的回复。您能否详细说明如何查看原始或资产文件夹中的文件?我认为它们被编码并打包到.apk中,这需要“黑客”才能侵入。因此,如果有人拥有我的私人数据,这将证明获得了“非法活动”——此外,我尝试了各种不同的Uri.parse选项,但似乎没有任何效果。它只在我传递一个文件时才起作用。@lifeIsGood:您能详细说明如何查看原始或资产文件夹中的文件吗?-其他应用程序都可以阅读这些内容。
  InputStream ins  = getResources().openRawResource(R.raw.filename);