如何读取特定联系人的短信?

时间:2019-04-05 00:26:34

标签: android message contacts

我正在编写一个应用程序,该应用程序可以读取本人和特定联系人之间的任意数量的短信。我已经能够从ContactsContract.Contacts.CONTENT_URI获取Lookup_key,但是目前尚不清楚如何以类似的方式获取短信。

我尝试使用ContactsContract.CommonDataKinds.Phone将Lookup_key与电话号码进行匹配,然后使用该电话号码来挑选短信。但是,任何联系人的电话号码始终返回“ 5”。这是我的下面查询。

这是电话查询的样子:

@SuppressLint("InlinedApi")
    private static final String[] PHONE_PROJECTION = {
            ContactsContract.CommonDataKinds.Phone._ID,
            ContactsContract.CommonDataKinds.Phone.NUMBER,
            ContactsContract.CommonDataKinds.Phone.LOOKUP_KEY,
            ContactsContract.CommonDataKinds.Phone.NORMALIZED_NUMBER
    };

    @SuppressLint("InlinedApi")
    private static final String PHONE_SELECTION = ContactsContract.Data.LOOKUP_KEY + " = ?";

然后我通过游标加载器执行查询:

return new CursorLoader(
                        getApplicationContext(),
                        ContactsContract.Data.CONTENT_URI,
                        PHONE_PROJECTION,
                        PHONE_SELECTION,
                        phoneSelectionArgs,
                        null
                );

最后,我拉号码:

phoneNumber = cursor.getString(cursor
                            .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

但是始终为5。它从不返回实际的电话号码。这是查询电话号码的正确方法吗?有没有更好的方法来读取来自特定联系人的消息?

0 个答案:

没有答案