当前位置:首页 » 安卓系统 » android文件路径uri

android文件路径uri

发布时间: 2023-03-06 17:34:04

㈠ android中uri怎么转换成文件路径

方法1、用URLDecode解码就可以了。
String code = "D:/%e5%ad%a6%e6%b5%b7/My%20Course/%e8%ae%a1%e7%ae%97%e4%b8%8e%e8%bd%af%e4%bb%b6%e5%b7%a5%e7%a8%8b/Java%20workspace/my Project/bin/";
try{
String src=URLDecoder.decode(code,"UTF-8");//注意编码和输入时一致
System.out.print(src);
}catch (UnsupportedEncodingException e){
e.printStackTrace();
}
======
显示:
D:/学海/My Course/计算与软件工程/Java workspace/my Project/bin/

方法2:URI有自己的getPath方法,直接返回的就是解码后的路径
比如System.out.print(url.getPath());

㈡ android4.4之后怎么根据sd卡中的图片路径path获取图片对应的Uri地址

直接调用文件管理器选择图片即可。
1、调用系统提供的图片选择器,代码如下:
//注意,在Android4.4系统下建议使用 Intent.ACTION_OPEN_DOCUMENT方式
if (Utility.isKK()) {

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image
public static String getDataColumn(Context context, Uri uri, String selection,
String[] selectionArgs) {

Cursor cursor = null;
final String column = "_data";
final String[] projection = {
column

};
处理返回结果:
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (resultCode == RESULT_OK) {
switch (requestCode) {
case PIC_RESULT://选择图库
case PIC_RESULT_KK:
imageFileUri = intent.getData();//获取选择图片的URI
break;


2、除此自外,系统还提供一种选择器,这个图片选择器可以屏蔽掉那个auto backup的目录.所以就开始打算用这个图片选择器来选图片了.
Intent intent=new Intent(Intent.ACTION_GET_CONTENT);//ACTION_OPEN_DOCUMENT
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/jpeg");
if(android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.KITKAT){
startActivityForResult(intent, SELECT_PIC_KITKAT);
}else{
startActivityForResult(intent, SELECT_PIC);
}
为什么要分开不同版本呢?其实在4.3或以下可以直接用ACTION_GET_CONTENT的,在4.4或以上,官方建议用ACTION_OPEN_DOCUMENT,主要区别是他们返回的Uri.4.3返回的是带文件路径的,而4.4返回的却是content://com.android.providers.media.documents/document/image:3951这样的,没有路径,只有图片编号的uri.可以通过以下方式,处理URI。
参考:Android 4.4从图库选择图片,获取图片路径并裁剪
public static String getPath(final Context context, final Uri uri) {

final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
// DocumentProvider
if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) {
// ExternalStorageProvider
if (isExternalStorageDocument(uri)) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = docId.split(":");
final String type = split[0];

if ("primary".equalsIgnoreCase(type)) {
return Environment.getExternalStorageDirectory() + "/" + split[1];
}

// TODO handle non-primary volumes
}
// DownloadsProvider
else if (isDownloadsDocument(uri)) {

final String id = DocumentsContract.getDocumentId(uri);
final Uri contentUri = ContentUris.withAppendedId(
Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));

return getDataColumn(context, contentUri, null, null);
}
// MediaProvider
else if (isMediaDocument(uri)) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = docId.split(":");
final String type = split[0];

Uri contentUri = null;
if ("image".equals(type)) {
contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
} else if ("video".equals(type)) {
contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
} else if ("audio".equals(type)) {
contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
}

final String selection = "_id=?";
final String[] selectionArgs = new String[] {
split[1]
};

return getDataColumn(context, contentUri, selection, selectionArgs);
}
}
// MediaStore (and general)
else if ("content".equalsIgnoreCase(uri.getScheme())) {

// Return the remote address
if (isGooglePhotosUri(uri))
return uri.getLastPathSegment();

return getDataColumn(context, uri, null, null);
}
// File
else if ("file".equalsIgnoreCase(uri.getScheme())) {
return uri.getPath();
}

return null;
}

public static String getDataColumn(Context context, Uri uri, String selection,
String[] selectionArgs) {

Cursor cursor = null;
final String column = "_data";
final String[] projection = {
column
};

try {
cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs,
null);
if (cursor != null && cursor.moveToFirst()) {
final int index = cursor.getColumnIndexOrThrow(column);
return cursor.getString(index);
}
} finally {
if (cursor != null)
cursor.close();
}
return null;
}

public static boolean isExternalStorageDocument(Uri uri) {
return "com.android.externalstorage.documents".equals(uri.getAuthority());
}

public static boolean isDownloadsDocument(Uri uri) {
return "com.android.providers.downloads.documents".equals(uri.getAuthority());
}

public static boolean isMediaDocument(Uri uri) {
return "com.android.providers.media.documents".equals(uri.getAuthority());
}

public static boolean isGooglePhotosUri(Uri uri) {
return "com.google.android.apps.photos.content".equals(uri.getAuthority());
}

3、使用其它开源组件如PhotoView。

㈢ android中uri由哪三部分组成,简述其意义

通用资源标志符(Universal Resource Identifier, 简称"URI")。
Uri代表要操作的数据,Android上可用的每种资源 - 图像、视频片段等都可以用Uri来表示。
URI一般由三部分组成:
在Android平台,URI主要分三个部分:scheme, authority and path。
其中authority又分为host和port。格式如下:scheme://host:port/path
举个实际的例子:
content://com.example.project:200/folder/subfolder/etc
\---------/ \------------------ -/ \--/ \----------------------/
scheme host port path
\---------------------------/
authority

我们很经常需要解析Uri,并从Uri中获取数据。

㈣ Android获取数据库图片uri路径并用imageView显示

我想问你最后怎么解决的,我也是这个问题,网上也查不到解决方法,很烦!

㈤ android中uri怎么转换成文件路径

首先你获取到路径的字符串,然后分割就行了。
string
a
=
"/test/aaaa/bbb.txt";
string
b
=
a.substring(a.lastindexof("/")
+
1,
a.length());
system.out.println(b);
这样之后,b字符串就是你所需要的。我的实现方法:用绝对路径和mediastore里的mediastore.audio.media.data列进行比较
如果相同
就取出对应的mediastore.audio.media._id,然后uri就是uri.parse("content://media/external/audio/media/"+id),这样就可以设置铃声了

㈥ URI和URL区别以及相对路径和绝对路径的区别

android中的uri即通用资源标识符,universal
resource
identifier,
简称uri。
uri代表要操作的数据,android上可用的每种资源
-包括
图像、视频片段、音频资源等都可以用uri来表示。
1、访问资源的命名机制。
2、资源自身的名称,由路径表示。
3、存放资源的主机名。

热点内容
自己服务器搭建梯子 发布:2025-05-10 03:31:39 浏览:571
华为升级包怎么解压 发布:2025-05-10 03:18:24 浏览:603
c语言以什么结束 发布:2025-05-10 03:18:22 浏览:257
160android 发布:2025-05-10 03:03:30 浏览:178
pythonstorage 发布:2025-05-10 02:58:38 浏览:499
如何查看电脑配置显卡参数 发布:2025-05-10 02:37:00 浏览:106
证券交易密码在哪里修改 发布:2025-05-10 02:31:56 浏览:839
javafor是什么意思 发布:2025-05-10 02:23:09 浏览:842
学生云服务器可以搭建网站吗 发布:2025-05-10 02:10:36 浏览:441
共享的文件怎么访问权限 发布:2025-05-10 02:02:49 浏览:166