`
vicky517
  • 浏览: 11330 次
  • 性别: 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和Path之间的转换的示例代码

    Android 中 Uri 和 Path 之间的转换示例代码分析 Android 中 Uri 和 Path 之间的转换是 Android 开发中非常重要的一部分,特别是在拍照、图片处理和文件存储等方面。本篇文章主要介绍了 Android 中 Uri 和 Path ...

    android 根据uri获取真实路径

    在Android开发过程中,处理文件路径时经常需要将一个`Uri`转换成真实的文件路径。尤其是在处理用户通过文件选择器选取的图片或文件时,通常会得到一个`Uri`,而这个`Uri`并不直接对应我们熟悉的文件系统路径。本文将...

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

    Android 开发中常遇到的问题之一是图片文件的路径地址与 Uri 之间的相互转换。这个问题可能会让许多开发者感到困惑和不知所措。下面我们将详细介绍如何将图片文件的路径地址转换为 Uri,並且从 Uri 中获得图片文件的...

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

    "Android Uri和文件路径互相转换的实例代码" Android Uri和文件路径互相转换是 Android 开发中常见的一种需求,而在 Android 4.4 及其后的版本中,将 Uri 转换为绝对路径变得更加复杂。本文将为大家分享 Android ...

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

    在Android开发中,有时我们需要从Uri获取到真实的文件路径,并将其转换为File对象,以便进行文件操作,如读取、写入或删除等。这里我们将深入探讨如何在Android中实现这个过程。 首先,Uri(Uniform Resource ...

    WSDL URI 代码解析

    - 通过对关键方法的注释和调试,我们可以理解WSDL URI如何被转换为实际的运行时服务。 总之,`ServerCreator.java`文件是实现WSDL URI解析和Web服务部署的关键组件。它涉及了XML解析、WSDL模型的构建、服务接口的...

    Android解析音乐URI的后台服务

    当涉及到播放音乐或者与音乐相关的功能时,URI(Uniform Resource Identifier)是连接应用程序与系统媒体库的关键。本篇将深入探讨如何在Android中解析音乐URI,以及如何在后台服务中进行相关操作。 首先,音乐URI...

    .net 图片base64编码 Data URI scheme

    .NET 图片Base64编码与Data URI方案是网络开发中常用的一种技术,它允许我们将图片数据直接嵌入到HTML或CSS代码中,从而减少HTTP请求,提高页面加载速度。下面将详细阐述这两个概念以及在.NET环境中如何实现它们。 ...

    Android识别TextView的Uri并在自己的应用程序中打开

    综上所述,Android识别TextView的Uri并在自己的应用程序中打开是通过Linkify转换链接、自定义Intent Filter以及在Activity中处理Intent来实现的。这个过程使得开发者能够更好地控制用户与应用内的链接交互,提升用户...

    URI-exercises:URI练习解析

    例如,你可以使用`new URI(String uriString)`构造函数创建一个URI对象,或者用`decode()`和`encode()`方法来处理特殊字符的编码与解码。URI主要由三部分组成:scheme(协议)、authority(授权)和path(路径)。除...

    WPF Image Base64String 互转 Demo

    逆向操作,将Base64String转换回Image则涉及以下步骤: 1. 解码Base64String:使用Convert类的FromBase64String方法将Base64String还原为byte数组。 ```csharp byte[] imageBytes = Convert.FromBase64String(base...

    c#中 base64字符串与普通字符串互转

    在C#中,我们可以轻松地实现Base64字符串与普通字符串之间的转换。下面将详细解释这个过程。 一、Base64编码 1. 将普通字符串转换为Base64字符串 在C#中,我们可以使用`System.Convert`类的`ToBase64String`方法将...

    uri-problems:URI故障排除存储库

    - `new Uri(string uriString)`:通过字符串构造一个Uri对象。 - `new Uri(Uri baseUri, string relativeUri)`:根据基Uri和相对Uri构建一个新的Uri。 2. **属性解析**: - `.AbsoluteUri`:返回完整的URI字符串...

    perl-URI-Escape-Any :(无描述)

    my $escaped_uri = escape_uri($uri_string); print "编码后的URI: $escaped_uri\n"; my $decoded_uri = unescape_uri($escaped_uri); print "解码后的URI: $decoded_uri\n"; ``` 在这个例子中,`escape_uri`函数...

    01.0-URI_CSharp

    当你有一个相对URI并想将其转换为绝对URI时,可以使用`Resolve`或`Combine`方法。例如: ```csharp Uri baseUri = new Uri("http://example.com"); Uri relativeUri = new Uri("/subpage", UriKind.Relative); Uri ...

    winform上传下载.doc

    这两个方法是文件与数据库之间转换的关键步骤: ```csharp // 将文件转换为字节数组 public static byte[] FileToByteAarray(string fileName) { try { using (FileStream fs = new FileStream(fileName, File...

Global site tag (gtag.js) - Google Analytics