在没有SMS数据库的国家代码的情况下访问电话号码

时间:2014-08-17 08:54:08

标签: android

我编写了一个代码,用于从SMS数据库中提取唯一地址,然后是与该数字对应的第一条消息。

提取的代码如下:

    Uri uri = Uri.parse("content://sms/");      
    String[] projection = new String[]{"DISTINCT address","thread_id","date","body"}; 
    String grop ="address IS NOT NULL) GROUP BY (address";      
    Cursor c = getContentResolver().query(uri, projection, grop, null, null);       
     if(c.moveToFirst()) {
            for(int i=0; i < c.getCount(); i++) {
                SMSData sms = new SMSData();
               sms.setThreadId(c.getString(c.getColumnIndexOrThrow("thread_id")).toString());


                sms.setNumber(c.getString(c.getColumnIndexOrThrow("address")).toString());
                sms.setBody(c.getString(c.getColumnIndexOrThrow("body")).toString());
                sms.setDate((new Date(Long.parseLong(c.getString(c.getColumnIndexOrThrow("date")).toString()))).toString());
                smsList.add(sms);
                c.moveToNext();
            }
        }
        c.close();

然而,相同的数字表示XXX只是从收件箱邮件中检索为XXX,而发件箱中的相同数字XXX被检索,其中国家/地区代码附加为+ 91XXX,因此在检索后我看到相同的两个条目数字XXX,其中一个用于XXX,另一个用于+ 91XXX。

即使附加了国家/地区代码,我也想要相同的数字,但只会检索行条目。

请帮助我继续使用此功能。 在此先感谢。

1 个答案:

答案 0 :(得分:0)

我认为这应该有效。使用循环将要添加的数字与列表中已有的数字进行比较:

PhoneNumberUtils.compare(number1, number2);