PhoneNumberUtils.compare()没有给出正确的结果

时间:2015-03-03 11:51:46

标签: android android-cursor

我正在制作短信应用程序并使用PhoneNumberUtils.compare()正确处理电话号码格式。

public void GetMessages(String PhoneNumber)
{
    Uri message = Uri.parse("content://sms/");
    ContentResolver cr = this.getContentResolver();
    Cursor c = cr.query(message, null, null, null, null);
    if (c.getCount() > 0)
    {
        while (c.moveToNext())
        {
            String ContactNumber = c.getString(c.getColumnIndexOrThrow("address"));
            if(PhoneNumberUtils.compare(ContactNumber, PhoneNumber))
            {
                //Match
            }
        }
    }
}

上面的代码工作正常,我收到特定电话号码的消息。但是,在另一个地方(从我自己的数据库中检索消息)compare()函数给出了奇怪的结果。以下是代码。

public void GetMessages(String Number)
{
    String Query = "Select * FROM PhoneNumber";
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor c = db.rawQuery(Query, null);
    if (c.getCount() > 0)
    {
        while (c.moveToNext())
        {
            String DBNumber = c.getString(c.getColumnIndexOrThrow("PhoneNumber"));
            if (PhoneNumberUtils.compare(Number, DBNumber));
            {
                //Match - Breakpoint set here
            }
        }
    }
}

这是我在断点处得到的

DBNumber and Number are different but compare() gives true

DBNumberNumber不同,但compare()给出了真实。请帮助!

这是我的logcat的一部分:

D/~~~﹕ DBNumber=0333357xxxx;PhoneNumber=+92332465xxxx;match=‌​false
D/~~~﹕ DBNumber=0333357xxxx;PhoneNumber=+92332465xxxx;match=‌​false
D/~~~﹕ DBNumber=0333357xxxx;PhoneNumber=+92332465xxxx;match=‌​false
D/~~~﹕ DBNumber=0333357xxxx;PhoneNumber=+92332465xxxx;match=‌​false
D/~~~﹕ DBNumber=0333357xxxx;PhoneNumber=+92332465xxxx;match=‌​false
D/~~~﹕ DBNumber=0333357xxxx;PhoneNumber=+92332465xxxx;match=‌​false
D/~~~﹕ DBNumber=0333357xxxx;PhoneNumber=+92332465xxxx;match=‌​false
D/~~~﹕ DBNumber=0333357xxxx;PhoneNumber=+92332465xxxx;match=‌​false
D/~~~﹕ DBNumber=0333357xxxx;PhoneNumber=+92332465xxxx;match=‌​false
D/~~~﹕ DBNumber=0333357xxxx;PhoneNumber=+92332465xxxx;match=‌​false
D/~~~﹕ DBNumber=0333357xxxx;PhoneNumber=+92332465xxxx;match=‌​false

0 个答案:

没有答案