【发布时间】:2017-08-28 06:37:03
【问题描述】:
我正在使用以下方法调用选择任何文件,但它不能正常工作。
private void fileIntent(int file)
{
if ((ActivityCompat.checkSelfPermission(ICShowFileCabinetDetails.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, file);
} else {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(Intent.createChooser(intent, "Select File"), file);
}
}
清单中设置了以下权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
OnActivtyresult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == SELECT_FILE && data != null) {
try {
mProPic = MediaStore.Images.Media.getBitmap(getApplicationContext().getContentResolver(), data.getData());
Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
// String filename = selectedImage.getLastPathSegment();
String[] filenames = picturePath.split("\\/");
int count = filenames.length;
String name = filenames[count - 1];
imagepickerselected = 1;
UploadIamgeinServer(1, name);
} catch (IOException e) {
e.printStackTrace();
}
}
}
每当我单击以在按钮单击中选择文件时,选择打开的文件。但是除了图像之外,所有文件都显示为隐藏,单击不起作用。 如果没有方法,按钮单击工作正常。如果有人在代码中发现错误,请告诉我。
谢谢
【问题讨论】:
-
你能更新你的日志吗?你的安卓版本是什么。你在
else给出意图 -
请发布日志?
-
抱歉朋友问题已更新。应用程序没有崩溃。请参考图片附件。
-
按照我的回答你可以使用你的文件扩展名而不是 xls
-
@Hasmukhkachhatiya 它仅适用于 excel 文件,对吗?我的要求是选择任何文件。
标签: android intentfilter filepicker