`
vicky517
  • 浏览: 11160 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Uri与String之间的转换

 
阅读更多
今天碰到一个问题:
mRingtoneManager.setType(RingtoneManager.TYPE_ALARM);
Cursor mCursor = mRingtoneManager.getCursor();
if(mCursor != null){
			if(mCursor.moveToFirst()){
				do{
					Log.d("mCursor11111", mCursor.getString(0));
					Log.d("mCursor22222", mCursor.getString(1));
					Log.d("mCursor33333", mCursor.getString(2));
					Log.d("mCursor44444", mCursor.getString(3));
				}while(mCursor.moveToNext());
			}
		}

因为不知道数据库的字段值,我把它们都打印了,
发现第二个值是content://media/internal/audio/media
第三个值是Rooster Alarm
所以想当然的把两个值拼接得到content://media/internal/audio/media/Rooster Alarm
于是进行如下转换
Uri u = Uri.parse("content://media/internal/audio/media/Rooster Alarm");
mMediaPlayer.setDataSource(Context,u);


最后报如下错误:
java.lang.NumberFormatException: unable to parse 'content://media/internal/audio/media/Rooster Alarm' as integer
百思不得其解
另外对Uri这个东西也是一头雾水,暂时没找到好的资料
最重要的一个问题是:Uri可否转换成具体的一个本地文件地址?比如content://media/internal/audio/media/Rooster Alarm能否转换成/mnt/sdcard/Rooster Alarm.mp3.
这块问题很多,先标记一下

----------------------------------------
以上问题已解决:
这是我的理解:Uri是一个访问地址,
1.以“content://”打头的是ContentProvider应用,可以表示数据库中的一张表,或者一条 数据。当表示具体的一条数据时,往往是以数据表的ID为结尾的:content://com.test.tab/1。
2.以"file://"打头的表示引用的是一个文件的路径地址
3.当然还有其他的格式:“http://”,"ftp://"等等

所以我在上面的代码应该改为:
//Uri u = Uri.parse("content://media/internal/audio/media/Rooster Alarm");
Uri u = Uri.parse("content://media/internal/audio/media/81");//“81”是数据表中的"_id"字段
mMediaPlayer.setDataSource(Context,u);
分享到:
评论

相关推荐

    Android中Bitmap、File与Uri之间的简单记录

    Bitmap、File与Uri 1、将一个文件路径path转换成File String path ; File file = new File(path) 2、讲一个Uri转换成一个path 以选择一张图片为例: String path = FileTools.getRealPathFromUri(content...

    android图片文件的路径地址与Uri的相互转换方法

    下面小编就为大家带来一篇android图片文件的路径地址与Uri的相互转换方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    android实现Uri获取真实路径转换成File的方法

    本文实例讲述了android实现Uri获取真实路径转换成File的方法。分享给大家供大家参考。具体实现方法如下: Uri uri = data.getData(); String[] proj = { MediaStore.Images.Media.DATA }; Cursor actualimagecursor...

    Android Uri和文件路径互相转换的实例代码

    在项目中需要用到将Uri转换为绝对路径,在网上找到一个方法,做个笔记 ... public static String getPath(final Context context, final Uri uri) { final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION

    极小的 javascript gbk支持类

    编码表是经过简单压缩的,最后打包出的min版只有不到30k...GBK.URI.encodeURI({String}) 转换规则和 encodeURI 函数一至 GBK.URI.encodeURI('https://abc.com/?kk=abv&bb;=火车头#top') > https://abc.com/?kk=abv&bb;=

    Android静默安装常用工具类

    图片工具类,可用于Bitmap, byte array, Drawable之间进行转换以及图片缩放,目前功能薄弱,后面会进行增强。如: bitmapToDrawable(Bitmap b) bimap转换为drawable drawableToBitmap(Drawable d) drawable转换为...

    Java文件处理工具类--FileUtil

    * Convert a given file name to a URL(URI) string. * * @param fileName - * the file to parse * @return - URL string */ public static String filePathToURL(String fileName) { String ...

    jsp内置对象的用法

    6 String toString() 把此Object对象转换成String类的对象 7 void notify() 唤醒一个等待的线程 8 void notifyAll() 唤醒所有等待的线程 9 void wait(int timeout) 使一个线程处于等待直到timeout结束或被...

    在android开发中尽量不要使用中文路径的问题详解

    在开发过程中发现,有些软件对中文路径支持不大好,如果使用Uri.fromFile转换中文路径为uri的时候,有些软件可能会识别不出来导致功能异常,已知的有两个应用:1、腾讯微博的分享功能;2、酷派D530下调用系统摄像头...

    babel-plugin-transform-assets-import-to-string:Babel插件,用于转换图像资产的导入并要求将其发送到url cdn

    这个插件使您可以将资产文件转换为字符串uri,从而使您可以将资产指向CDN或其他主机,而无需通过模块捆绑程序运行代码。 这在处理同构/服务器渲染的应用程序时会有所帮助。 import image from '../path/assets/...

    Android BufferedReader 测试网站是否连接.rar

    Android 测试网站是否连接,这里使用有BufferedReader、HttpPost(uri)、HttpResponse、InputStreamReader等相关方法: ...//将缓冲中的数据转换成字符串  tvxs.setText("网络连接成功!" "\n" result); //显示回应字串

    QueryStringEncrypter:使用 Base64String 加密查询字符串

    使用 Base64String 加密查询字符串 通过卡梅尔施瓦茨曼 #####当前的 MVC C# 代码是以下教程的配套: : 这是一个简单的查询字符串混淆器,而不是复杂的安全工具。 本实用程序转换如下查询字符串:“$ $MySubject$...

    Silverlight2.0功能展示Demo源码

    Silverlight 2.0 使用c#开发可脚本化的代码,Silverlight与宿主页面的DOM之间的交互,Silverlight与宿主页面的JavaScript之间的交互。 ScriptableMemberAttribute - 需要脚本化的属性、方法、事件要标记为此 ...

    javascript文档

    getTimezoneOffset 方法 返回主机的时间和全球标准时间(UTC)之间的差(以分钟为单位)。 getUTCDate 方法 使用全球标准时间(UTC)返回 Date 对象的日期值。 getUTCDay 方法 使用全球标准时间(UTC)返回 Date ...

    JScript 语言参考

    getTimezoneOffset 方法 返回主机的时间和全球标准时间(UTC)之间的差(以分钟为单位)。 getUTCDate 方法 使用全球标准时间(UTC)返回 Date 对象的日期值。 getUTCDay 方法 使用全球标准时间(UTC)返回 Date ...

    微软JavaScript手册

    getTimezoneOffset 方法 返回主机的时间和全球标准时间(UTC)之间的差(以分钟为单位)。 getUTCDate 方法 使用全球标准时间(UTC)返回 Date 对象的日期值。 getUTCDay 方法 使用全球标准时间(UTC)返回 Date ...

    staticwp:将您的 WordPress 博客转换为静态站点

    静态WP 将您的博客转换为静态站点。描述有性能问题吗? StaticWP 将您的博客转换为静态站点,因此您不必担心。安装将 StaticWP 插件上传到您的站点,并激活它!... 参数: $_SERVER['REQUEST_URI'] - string|null

    node-html2enml:用于 Node.js 的 HTML 到 ENML 转换器

    与其他实现不同,html2enml 解析 HTML 文档的 DOM 树并将其转换为有效的 ENML,从而实现稳健可靠的转换 用法 通过 npm 安装 html2enml: npm install html2enml 从 node.js 脚本调用 html2enml 如下: var ...

    IO输入输出留

    public static void main(String[] args) throws IOException { test4(); } //创建临时文件 文件名称不能太短 private static void test4() throws IOException { File f = File.createTempFile("abc", "....

Global site tag (gtag.js) - Google Analytics