2 clcurie 11 clcurie_11 于 2013.05.21 11:07 提问

从“canonical_addresses”表中获取地址

在android程序中,我从下面的 uri 中获取 recipient_id 。

content://mms-sms/conversations?simple=true

现在我想使用 recipient id 从“canonical_addresses”表中获取地址。但是如何查询“canonical_addresses”表呢?

3个回答

xiaoyan_12
xiaoyan_12   2013.05.22 11:37
已采纳

Canonical 表中有两列,_id 和 number(或者 address)。当你获取 recipient id 时,要查找那个 id 是否在canonical addresses 表中。对于多个 recipients, ids 被一个 space 分隔开,所以要把结果分隔开:recipient_ids.split(" ")
再查找每个id

getContentResolver().query(Uri.parse("content://mms-sms/canonical-addresses"), null, "_id = " + recipientId, null, null);

或者:

getContentResolver().query(Uri.parse("content://mms-sms/canonical-addresses/" + recipientId), null, null, null, null);
coolboy133
coolboy133   2013.05.21 13:43

从我的电脑领取D:\Program Files\Corel

baimy1985
baimy1985   2013.05.21 20:39

在源码路径有这样的查询语句

/packages/providers/TelephonyProvider/src/com/android/providers/telephony/
MmsSmsProvider.java的508行
 SQLiteDatabase db = mOpenHelper.getReadableDatabase();
           cursor = db.query(
                    "canonical_addresses", ID_PROJECTION,
                    selection, selectionArgs, null, null, null);

同样的文件里private static final String TABLE_CANONICAL_ADDRESSES = "canonical_addresses";
虽然没定义好的URL,还是可以查的

Csdn user default icon
上传中...
上传图片
插入图片