最近做项目要通过的绝对路径找到的URI,然后删除,小小总结一下获取URI的方法,亲自试验在
android 413的系统上都是可用的。
1将所有的路径取出,遍历比较找到需要的路径,取出URI,效率较低
其中 MediaStoreMediaColumnsDATA 字段存的就是的绝对路径,
最后mImageUri得到的就是的URI
1 Uri mUri = Uriparse("content://media/external/images/media");
2 Uri mImageUri = null;
3 Cursor cursor = managedQuery(
4 MediaStoreImagesMediaEXTERNAL_CONTENT_URI, null, null, null,
5 MediaStoreImagesMediaDEFAULT_SORT_ORDER);
6 cursormoveToFirst();
7
8 while (!cursorisAfterLast()) {
9 String data = cursorgetString(cursor
10 getColumnIndex(MediaStoreMediaColumnsDATA));
11 if (picPathequals(data)) {
12 int ringtoneID = cursorgetInt(cursor
13 getColumnIndex(MediaStoreMediaColumns_ID));
14 mImageUri = UriwithAppendedPath(mUri, "" + ringtoneID);
15 break;
16 }
17 cursormoveToNext();
18 }
2直接从媒体数据库根据字段取出相应的记录,效率较高
1 //TYLT: add by duanyf 20121027 start
2 String type = UtilsensureNotNull(intentgetType());
3 Logd(TAG, "uri is " + uri);
4 if (urigetScheme()equals("file") && (typecontains("image/")))
{
5 String path = urigetEncodedPath();
6 Logd(TAG, "path1 is " + path);
7 if (path != null) {
8 path = Uridecode(path);
9 Logd(TAG, "path2 is " + path);
10 ContentResolver cr = thisgetContentResolver();
11 StringBuffer buff = new StringBuffer();
12 buffappend("(")
13 append(ImagesImageColumnsDATA)
14 append("=")
15 append("'" + path + "'")
16 append(")");
17 Cursor cur = crquery(
18 ImagesMediaEXTERNAL_CONTENT_URI,
19 new String[] { ImagesImageColumns_ID },
20 bufftoString(), null, null);
21 int index = 0;
22 for (curmoveToFirst(); !curisAfterLast(); cur
23 moveToNext()) {
24 index = curgetColumnIndex(ImagesImageColumns_ID);
25 // set _id value
26 index = curgetInt(index);
27 }
28 if (index == 0) {
29 //do nothing
30 } else {
31 Uri uri_temp = Uri
32 parse("content://media/external/images/media/"
33 + index);
34 Logd(TAG, "uri_temp is " + uri_temp);
35 if (uri_temp != null) {
36 uri = uri_temp;
37 }
38 }
39 }
40 }
41 //TYLT: add by duanyf 20121027 end
3直接根据路径通过 ContentProvider 的 delete() 方法删除,两行代码搞定,效率最高
1 String params[] = new String[]{filepath};
2
ctxgetContentResolver()delete(MediaStoreImagesMediaEXTERNAL_CONTENT_URI,
MediaStoreImagesMediaDATA + " LIKE ", params);
db文件一般是软件用于存放数据的一个文件,相当于数据库,每种软件都有它自己的存放格式,就是数据的排列方式。一些软件数据文件后缀名均为DB。
如Win7系统下的Thumbsdb就是缩略图数据文件。所以db文件并不是特定的文件格式。
db文件能用记事本、办公软件Microsoft Office Access打开,也能导入到UltraEdit、foxbase、SQL Server、powerbuilder等数据库软件。
扩展资料:
db文件如果用记事本或者Notepad++打开,会显示乱码,改变编码不能解决问题,如果用UltraEdit打开,可以看到进制数据,但是无意义的。
正确的方法有两种:
1、用sqlitespy打开,sqlitespy是一款类似Navicat的工具,轻巧易用,可以查看扩展名为sqlite3/sqlite/db3/db的数据库文件,也可以新建New Database/Database URI/New SQL数据库。
2、用SqliteStudio打开,菜单栏选择数据库,点击添加数据库,类型选择Sqlite3,文件选择db文件即可。双击表后有结构、数据、约束、索引、触发器、DDL。
以上就是关于android如何通过path得到uri全部的内容,包括:android如何通过path得到uri、gsdb是什么文件、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)