是否有任何Intent为Android中的所有设备选择文件?

时间:2015-10-10 15:20:46

标签: android

我正在使用以下意图从我的设备中选择任何文件,但它仅为三星平板电脑选择文件而不是任何其他设备。

Intent intent = new Intent("com.sec.android.app.myfiles.PICK_DATA");
intent.putExtra("CONTENT_TYPE", "*/*");
intent.addCategory(Intent.CATEGORY_DEFAULT);

1 个答案:

答案 0 :(得分:1)

根据文档,您应该使用ACTION_PICK方法使用startActivityForResult()意图:

final int ACTION_PICK_RESULT = 0;

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("*/*");
startActivityForResult(intent, ACTION_PICK_RESULT);

然后,您可以使用活动的onActivityResult()方法检索文件。

@Override
public void onActivityResult(int requestCode, int resultCode, Intent returnIntent) {
    if (resultCode == RESULT_OK) {
        Uri returnUri = returnIntent.getData();
        try {
            ParcelFileDescriptor pfd = getContentResolver()
                    .openFileDescriptor(returnUri, "r");
            FileDescriptor fd = pfd.getFileDescriptor();

            // TODO Do stuff with the file
        } 
        catch (FileNotFoundException e) {
            Log.e("MainActivity", "File not found.");
        }
    }
}

有关详细信息,请参阅此页面:Requesting a Shared File