如何让用户在Android中使用Intent仅选择本地文件?

如何让用户在Android中使用Intent仅选择本地文件?,android,android-intent,uri,android-file,Android,Android Intent,Uri,Android File,我需要让用户从本地存储中为我的应用程序选择一个文件。现在我正在使用INTENT.ACTION\u GET\u CONTENT让用户选择文件,但它也提供了从云中选择URI的选项。获取URI文件后,我将其视为本地文件并执行各种操作(包括提取文件扩展名)。如何让用户只选择本地文件 else if(menuItem.getItemId() == R.id.action_import_from_file){ Intent i = new Intent(Intent.ACTION_GET_CONTE

我需要让用户从本地存储中为我的应用程序选择一个文件。现在我正在使用
INTENT.ACTION\u GET\u CONTENT
让用户选择文件,但它也提供了从云中选择URI的选项。获取URI文件后,我将其视为本地文件并执行各种操作(包括提取文件扩展名)。如何让用户只选择本地文件

else if(menuItem.getItemId() == R.id.action_import_from_file){
    Intent i = new Intent(Intent.ACTION_GET_CONTENT);
    i.setType("*/*");
    startActivityForResult(Intent.createChooser(i, "Pick a file"), REQUEST_CODE_SELECT_FILE_FOR_IMPORT);
}
试试这个

 Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
 intent.setType("image/*");
 intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
 startActivityForResult(intent, PICK_PHOTO_FOR_AVATAR);
尝试使用
setType()
方法,并指定用户要选择的文件类型

Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.setType("application/pdf|application/x-excel|text/csv");
startActivityForResult(Intent.createChooser(i, "Pick a file"), REQUEST_CODE_SELECT_FILE_FOR_IMPORT);
您还可以使用MIME类型数组,如下面的代码

Intent i = new Intent(Intent.ACTION_GET_CONTENT);
String[] types = {"application/x-excel/*", "application/csv/*",};
i.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
startActivityForResult(Intent.createChooser(i, "Pick a file"), REQUEST_CODE_SELECT_FILE_FOR_IMPORT);
请尝试使用like
intent.putExtra(仅intent.EXTRA_本地_,true)

如果设备中的gallery应用程序支持,则仅显示本地存储中的文件。如果gallery应用程序不支持上述目的,您可以在检查gallery应用程序返回的文件路径的文件长度后向用户显示错误消息

仅对打开的csv和xlsx文件尝试此操作 它将只选择csv和xlsx文件

    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.setType("*/*");
    String[] mimetypes = {"application/vnd.openxmlformats- 
    officedocument.spreadsheetml.sheet", "text/csv"}; 
    intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
    startActivityForResult(intent, READ_REQUEST_CODE);

xlsx和csv文件是否在应用程序中?我正在从excel文件、csv文件等导入数据集。