一、申请权限
需要申请权限读写外部文件,在Manifest文件中输入以下代码对权限进行声明,分别是读外部文件权限和写外部文件权限:文章来源:https://www.toymoban.com/news/detail-717313.html
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
二、调用系统文件选择器
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
//筛选文件(这里是读取音频目录)
intent.setType("audio/*");
//调用系统文件选择器
startActivityForResult(intent,100);
三、在Activity回调函数中接收Uri并处理
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK && requestCode == 100) {
//获取Uri
Uri uri = data.getData();
//根据Uri查询文件名
Cursor cursor = ((Activity)context).getContentResolver().query(uri,null,null,null,null);
if(cursor != null){
int nameIndex = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
cursor.moveToFirst();
//文件名
String fileName = cursor.getString(nameIndex);
cursor.close();
System.out.println(fileName);
}
}
}
运行效果:
直接复制就能用,没效果你来砍我文章来源地址https://www.toymoban.com/news/detail-717313.html
到了这里,关于Android 调用系统文件选择器读取Uri并获得文件名的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!