Android 短信联系人姓名

标签 android cursor sms contacts

我已经搜索了好几天了,为什么这不起作用。我试图获取短信的发件人号码和姓名,但它总是返回为零,或者无论谁给我发短信,它总是返回相同的数字。并且名称始终为空。

Cursor cur = mContext.getContentResolver().query(uriReceive, null, null, null,null);

while (cur.moveToNext()) 
{
                   int index_Address = cur.getColumnIndex("address");
                   int index_Person = cur.getColumnIndex("person");

                   strAddress = cur.getString(index_Address);  
                   intPerson = cur.getString(index_Person); 
}

最佳答案

如果您正在阅读现有的短信(不仅仅是收到的新短信)

    String columns[] = new String[] { "_id", "date", "address", "subject", "body" };

    Cursor cursor = ctx.getContentResolver().query(Uri.parse("content://sms/inbox"), columns, whereClause, bindVars, "date desc");
    //Only want newest, so only handle first item in cursor
    if(cursor.moveToFirst()){
                do{
        int id = cursor.getInt(0);
        long date = cursor.getLong(1);
        String address = cursor.getString(2);
        String subject = cursor.getString(3);
        String body = cursor.getString(4);
                    //Handle message here
            }while(cursor.moveToNext())
    }
    cursor.close();

然后,要将地址转换为名称,您需要将地址与联系人数据库进行交叉引用。

关于Android 短信联系人姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23976926/

相关文章:

JUnit 测试期间的 Android 2.3.x 静态字段问题

java - Android DefaultSharedPreferences 字符串而不是整数

python - 为什么pygame窗口动画只在我移动光标时起作用

Android:打开指定多个收件人的短信 Activity

java - Twilio短信发送给出错误,使用java

java - 在 textView 内显示可点击的链接

android - 在 AudioRecord Android 中查找峰值频率

javascript - 如何全局更改光标图像

java - 为什么我需要将鼠标悬停在按钮上才能显示?

c - Arduino 中的 SMS 发送/接收循环