我在本机应用程序中打开内部数据文件时遇到问题
指出我对 Android 开发相当陌生,但对编程并不陌生,这一点非常重要
设置
我有一个在 Android 设备上运行的移动 Air 应用程序。为了在应用程序中加载 PDF/播放视频,我编写了一个本机扩展程序来通过其本机应用程序加载文件。
问题
在测试应用程序时,我发现存储在外部存储中的文件加载正常,内部存储中的文件显示来自本机应用程序的消息,例如无法播放文件或无法打开文件。(内部存储中的文件被下载并保存在空中申请结束)。
这让我认为它是 Android 中的权限设置。
我知道内部存储中的文件默认是私有的
我已经阅读了如何使用 openFileOutput 写入设置其权限的文件,但由于文件已经存在,这将不起作用。我可以加载文件并再次将其吐出,但这并不理想,因为这可能会导致不必要的开销。
我不确定如何继续,我需要在 Air App 端设置清单属性吗?安卓应用端?双方?如果是的话,是哪一个,在哪里
或者他们是在运行时更改它的一种方法,我发现了 setReadable 函数,但它处于 API 级别 9 并且我的理想目标是略低于此。
任何帮助是极大的赞赏
public static void openFile( Activity parentActivity, String filePath, String fileType, String mimeType ) {
//Create the file we are to create
File fileToOpen = new File(filePath);
//Check if the file exists
if( fileToOpen.exists() ) {
//The path of the file we want to open
Uri path = Uri.fromFile(fileToOpen);
//Create a new intent of the file we want to view
Intent intent = new Intent(Intent.ACTION_VIEW);
//Set the path and the mime type for the file
intent.setDataAndType(path, mimeType);
//Remove any other activities
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//Check that its within the try and catch block
try {
//Open the file by stating a new activity
parentActivity.startActivity(intent);
}
catch (ActivityNotFoundException e) {
//Make a pop-up informing that we don't have an application to open the file
Toast.makeText( parentActivity,"No Application Available to View " + fileType,Toast.LENGTH_SHORT).show();
}
} else {
//Display an alert which will show that the file dosn't exist
Toast.makeText( parentActivity, fileType+" file dosn't exist", Toast.LENGTH_SHORT).show();
}
}