设置现有文件的内部读写属性

时间:2012-10-11 12:26:00

标签: android air native internal

我在本机应用程序中打开内部数据文件时遇到问题

指出我对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();      
    }
}

0 个答案:

没有答案