从外部应用程序

时间:2017-10-23 05:56:29

标签: android file android-intent uri ioexception

从活动1开始,我使用了意图

Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.setType("*/*"); 
try{
    startActivityForResult(Intent.createChooser(i, "Pick a file"), REQUEST_CODE_UPLOAD_FILE_FOR_IMPORT);
    }catch (android.content.ActivityNotFoundException ex){
           Log.e("Error","FileManager not found!");
           }

并处理URI并从文档中提取数据。一旦我这样做,我将提取的数据和URI传递给活动2,用户可以在其中查看数据。用户还可以选择从活动2打开原始文件,然后执行以下操作:

public void onClick(View v) {
                Intent intent = new Intent(Intent.ACTION_VIEW, getUri());
                PackageManager packageManager = activity.getPackageManager();
                List activities = packageManager.queryIntentActivities(intent,
                        PackageManager.MATCH_DEFAULT_ONLY);
                boolean isIntentSafe = activities.size() > 0;
                if(isIntentSafe){
                    startActivity(intent);
                }
            }

但是我选择的任何外部应用程序都会获得io Exception。如何让他们打开我的文件?

1 个答案:

答案 0 :(得分:0)

看起来第二个应用没有权限来读取文件。

对于阅读电子表格,Google有相同的API。API DetailsSpreadsheet Service可能对您有帮助。