我在本机应用程序中打开内部数据文件时遇到问题
指出我对Android开发还不熟悉但不是编程新手
非常重要设置
我有一个移动Air应用程序,我在Android设备上运行。要在应用程序中加载PDF /播放视频,我编写了一个本机扩展来通过其本机应用程序加载文件。
问题
在测试应用程序时,我发现存储在外部存储器中的文件正常加载,内部存储器中的文件显示来自本机应用程序的消息,如无法播放文件或无法打开文件。(内部存储中的文件已下载并保存在航空应用程序结束)。
这让我想到了Android中的权限设置。
我知道内部存储中的文件默认是私有的
我已经阅读了如何使用openFileOutput写入设置其权限的文件 但由于文件已经存在,这将无法正常工作。我可以加载文件并再次吐出来,但这并不理想,因为这会导致不必要的开销。
我不确定如何继续,我是否需要在Air App端设置清单属性? Android 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();
}
}