Comparing phone numbers in Android

Roshnal picture Roshnal · Sep 5, 2012 · Viewed 7.7k times · Source

I need to compare two phone numbers to determine if they're from the same sender/receiver. The user may send a message to a contact, and that contact may reply.

The reply usually comes in +[country-code][area-code-if-any][and-then-the-actual-number] format. For example, +94 71 2593276 for a Sri Lankan phone number.

And when the user sends a message, he will usually enter in the format (for the above example) 0712593276 (assume he's also in Sri Lanka).

So what I need is, I need to check if these two numbers are the same. This app will be used internationally. So I can't just replace the first 2 digits with a 0 (then it will be a problem for countries like the US). Is there any way to do this in Java or Android-specifically?

Thanks.

Answer

Nimrod007 picture Nimrod007 · Feb 3, 2013

Android has nice PhoneNumberUtils, and i guess your looking for :

    public static boolean compare (String a, String b)

look in : http://developer.android.com/reference/android/telephony/PhoneNumberUtils.html

using it should look like this :

String phone1   
String phone2 

 if (PhoneNumberUtils.compare(phone1, phone2)) {
    //they are the same do whatever you want!
   }