如何使用 Intent 在 android 上 Select 归档
How to Select File on android using Intent
我使用此代码对 select 任何类型的文件使用 Intent 并在我的应用程序中获取它的路径
//this when button click
public void onBrowse(View view) {
Intent chooseFile;
Intent intent;
chooseFile = new Intent(Intent.ACTION_GET_CONTENT);
chooseFile.addCategory(Intent.CATEGORY_OPENABLE);
chooseFile.setType("file/*");
intent = Intent.createChooser(chooseFile, "Choose a file");
startActivityForResult(intent, ACTIVITY_CHOOSE_FILE);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) return;
String path = "";
if(requestCode == ACTIVITY_CHOOSE_FILE)
{
Uri uri = data.getData();
String FilePath = getRealPathFromURI(uri); // should the path be here in this string
System.out.print("Path = " + FilePath);
}
}
public String getRealPathFromURI(Uri contentUri) {
String [] proj = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query( contentUri, proj, null, null,null);
if (cursor == null) return null;
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
文件浏览器打开时的问题 我无法 select 文件 它似乎在我按下文件时未启用 没有任何反应所以这段代码有什么问题
我从 android 手机
上传了一张截图
image
提前致谢
the type of a file is .txt
然后使用 text/plain
作为 MIME 类型。正如 Ian Lake 在评论中指出的那样,file/*
不是有效的 MIME 类型。
除此之外,删除 getRealPathFromURI()
(这将不起作用)。除了 Uri
本身之外,没有其他路径。您可以通过在 ContentResolver
上调用 openInputStream()
来读取此 Uri
标识的内容,并且您可以通过在 [=] 上调用 getContentResolver()
来获取 ContentResolver
19=].
换行:
chooseFile.setType("file/*");
至
chooseFile.setType("*/*");
这将帮助您选择任何类型的文件。
我使用此代码对 select 任何类型的文件使用 Intent 并在我的应用程序中获取它的路径
//this when button click
public void onBrowse(View view) {
Intent chooseFile;
Intent intent;
chooseFile = new Intent(Intent.ACTION_GET_CONTENT);
chooseFile.addCategory(Intent.CATEGORY_OPENABLE);
chooseFile.setType("file/*");
intent = Intent.createChooser(chooseFile, "Choose a file");
startActivityForResult(intent, ACTIVITY_CHOOSE_FILE);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) return;
String path = "";
if(requestCode == ACTIVITY_CHOOSE_FILE)
{
Uri uri = data.getData();
String FilePath = getRealPathFromURI(uri); // should the path be here in this string
System.out.print("Path = " + FilePath);
}
}
public String getRealPathFromURI(Uri contentUri) {
String [] proj = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query( contentUri, proj, null, null,null);
if (cursor == null) return null;
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
文件浏览器打开时的问题 我无法 select 文件 它似乎在我按下文件时未启用 没有任何反应所以这段代码有什么问题
我从 android 手机
上传了一张截图
image
提前致谢
the type of a file is .txt
然后使用 text/plain
作为 MIME 类型。正如 Ian Lake 在评论中指出的那样,file/*
不是有效的 MIME 类型。
除此之外,删除 getRealPathFromURI()
(这将不起作用)。除了 Uri
本身之外,没有其他路径。您可以通过在 ContentResolver
上调用 openInputStream()
来读取此 Uri
标识的内容,并且您可以通过在 [=] 上调用 getContentResolver()
来获取 ContentResolver
19=].
换行:
chooseFile.setType("file/*");
至
chooseFile.setType("*/*");
这将帮助您选择任何类型的文件。