Android 调用系统文件选择器读取Uri并获得文件名

这篇具有很好参考价值的文章主要介绍了Android 调用系统文件选择器读取Uri并获得文件名。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、申请权限

需要申请权限读写外部文件,在Manifest文件中输入以下代码对权限进行声明,分别是读外部文件权限和写外部文件权限:

<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);
		}
	}
}

运行效果:
android uri获取文件名,android,java,开发语言
直接复制就能用,没效果你来砍我文章来源地址https://www.toymoban.com/news/detail-717313.html

到了这里,关于Android 调用系统文件选择器读取Uri并获得文件名的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android 编译错误:CreateProcess error=206, 文件名或扩展名太长。

    最近更新了Android Studio 之后Android studio 编译错误:CreateProcess error=206, 文件名或扩展名太长。 原因为 bin 文件的路径层级太多 解决方法1: 1. Android Studio - Run - Edit Configurations - Templates - Application - shorten command line: 选择 JAR manifest    -java -cp classpath.jar classname [args] (默认为user-lo

    2024年02月07日
    浏览(45)
  • Android将Uri转为路径字符串(适配安卓全版本)并使用第三方应用打开文件(适配Android7.0+)

    做这个功能时在网上找了无数篇例子,有些方法是有问题的,故自己写一篇完整实现的总结,作备忘也作案例。顺便说一句,Android对存储权限的给予真的越来越严格 目录 1.Uri转为路径String以获得文件名  2.获取文件后缀名 3.通过后缀名获取文件MIME类型  4.设置Intent的Uri与权限

    2024年02月19日
    浏览(41)
  • windows 系统批量去掉文件名前缀 bat 脚本

    在 Windows 系统上,你可以使用批处理脚本(.bat 文件)来批量去掉文件名的前缀。以下是一个简单的示例脚本,你可以根据自己的需求进行修改: 将上述脚本保存为扩展名为 .bat 的文件,并将 \\\"C:PathToYourFolder\\\" 替换为你想要批量移除文件名前缀的文件夹路径,以及将 \\\"OldPr

    2024年02月13日
    浏览(58)
  • bug:file name too long文件名超出系统最大限制

    今天开发需求的时候发现无法新建文件,提示file name too lang,于是翻阅和查询了一些资料,发现不同操作系统下文件名和目录名最长的长度不同。 操作系统 文件名最大长度(字节) 路径最大长度 Linux 255 4096 MAC 255 1024 Windows(未开启长文件名) 255 260 Windows(开启长文件名) 25

    2024年02月16日
    浏览(33)
  • OSError: [WinError 123] 文件名、目录名或卷标语法不正确。: ‘C:\Users\xgs87762\AppData\Loca1\Android\Sd业\platf orm-to

    在使用conda时,反复出现 Alternatively, you can set the CONDA_NO_PLUGINS environment variable on the command line to run the command without plugins enabled. 提示信息问题 原因: 因为我的环境变量中,有个不存在的目录配置在了Path路径里面,我把它删除后,再次输入 conda -V 就没有这个提示了 注意: 用户

    2024年02月21日
    浏览(54)
  • android uri转换file

    下载jar包commons-io-2.11.0.jar导入项目工程,导入import org.apache.commons.io.FileUtils; 如果使用系统import android.os.FileUtils;有些手机不兼容会导致项目崩溃

    2024年02月11日
    浏览(38)
  • Android各个应用商店Uri

    三星: URL: https://apps.samsung.com/appquery/AppRating.as?appId=PackageName URI: “samsungapps://AppRating/PackageName” Onestore ”onestore://common/product/bg_update/PID“ https://m.onestore.co.kr/mobilepoc/apps/appsDetail.omp?prodId=PID Google Play “market://details?id=PackageName” 华为 “appmarket://details?id=PackageName” vivo “vivoMa

    2024年01月22日
    浏览(35)
  • Android 读取Txt文件内容

    View Code 一个获取InputStream中字符串内容的方法:传入一个InputStream,返回其中的文本内容。 View Code 以gbk编码读取内容,不同的文本文件可能编码不同,如果出现乱码,可能需要调整编码。 手机测试有安卓版本限制、生产厂家限制,如:某OS

    2024年02月17日
    浏览(41)
  • Android 保存/读取本地SD卡文件(兼容Android 13)

    1.manifeast文件 (1)app权限 (2)application配置 (3)组件配置 注意:Android 12以上,组件创建会自动生成以下属性 表示”是否支持其它应用调用当前组件” 如果不添加改属性,会报错。 2.动态申请文件存储权限 说明,Android的权限根据版本号分为三种 1:Android6.0之前 2:Androi

    2024年02月05日
    浏览(56)
  • python的 read, readlines,readline 有何异同,读取文件的时候用哪个好?怎么选择。

    先看是什么,再看怎么用。着急的话,可以看最后的一节。 开始前,先介绍一个小技巧:内置函数 repr(英文名representation)。开发调试用的,返回一个对象的字符串表示形式,包含对象的类型。 (函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形

    2024年01月24日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包