Android contentprovider怎么调试

2025-03-13 14:35:56
推荐回答(1个)
回答1:

不需要跳,你只需要提供一个可以让别的程序访问的url接口就可以了。
//定义URI

public static final String AUTHORITY = "com.abc.xxx.provider";
public static final Uri URI = Uri.parse("content://" + AUTHORITY);

//匹配uri

private static final UriMatcher uriMatcher;
static {
uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);

uriMatcher.addURI(AUTHORITY, "value_a", 1);
uriMatcher.addURI(AUTHORITY, "value_b", 2);
}
//在你的provider程序里实现query查询。
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
SQLiteDatabase db = dbService.getReadableDatabase();
Cursor cursor = null;
switch (uriMatcher.match(uri)) {
case 1 :
cursor = db.query("table", projection, selection, selectionArgs, null, null, sortOrder);
break;
case 2:
String sql = "select sum(gprs) as gprs from tablewhere id=?";
cursor = db.rawQuery(sql, selectionArgs);
break;
default :
break;
}
return cursor;
}
别人用的时候一般是uri="content://com.abc.xxx.provider/1",表示进入case 1查询。

别人用这个uri查询就可以获取一个cursor对象,就可以访问你的数据库的内容了