【问题标题】:How to get phone number for each SMS on the device?如何获取设备上每条短信的电话号码?
【发布时间】:2023-03-10 22:10:02
【问题描述】:

我正在使用此 URI - Telephony.Sms.Inbox.CONTENT_URI 接收所有手机的短信

TextBasedSmsColumns 包含投影的所有列。

光标是这样构建的:

cursor = getContentResolver().query(Telephony.Sms.Inbox.CONTENT_URI,
                        new String[] { BaseColumns._ID, TextBasedSmsColumns.ADDRESS },
                        null, null, null);

有一个 TextBasedSmsColumns.ADDRESS 列,其中包含电话号码或联系人姓名。那么我如何始终获取 SMS 的电话号码?我应该使用其他方法来获取所有短信吗?

【问题讨论】:

    标签: android sms


    【解决方案1】:

    这就是我得到的。

    Uri uriSMSURI = Uri.parse("content://sms/inbox");
    Cursor cur = getContentResolver().query(uriSMSURI, null, null, null, null);
    if (cur != null) {
            while (cur.moveToNext()) {
                String body = cur.getString(cur.getColumnIndexOrThrow("body"));
                //Here you will get all PhoneNumbers
                String phoneNumber = cur.getString(cur.getColumnIndexOrThrow("address"));
            }
            cur.close();
    }
    

    【讨论】:

    • 这正是我所做的,如果您在手机上重命名联系人,那么“地址”将返回姓名而不是电话号码。此外,您不应使用硬编码字符串,例如使用 Telephony.Sms.Inbox.CONTENT_URI 而不是“content://sms/inbox”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多