如何将联系人列表中保存的号码与来电号码相匹配

时间:2014-04-05 09:36:45

标签: android

朋友们,我正在尝试制作一个项目,其中我将来电号码与不同手机中保存的不同数字格式相匹配。 我能够匹配" + 919045308261" " +91 90 45 308261"但我希望匹配必须也适用于其他格式。我必须做什么,以便它可以工作在另一种格式?? ?? 我使用的代码是..

package com.example.matchnumbers;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Toast;

public class MainActivity extends Activity {

    String incomingcall = "+919045308261";
    String str = "+91 90 45 308261";
    String st1 = "0 90 45 308261";
    String str2 = "90 45 308261";
    String str3="9045308261";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        str = str.replaceAll("\\s+","");
        if(incomingcall.equals(str)){
            Toast.makeText(getApplicationContext(), "Hit occurs", Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

1 个答案:

答案 0 :(得分:2)

这可以帮到你:

Buddy你可以使用ContentProvider(用于比较PhoneNo和联系人)

Uri uri = Uri.withAppendedPath(Phones.CONTENT_FILTER_URL, Uri.encode("PhoneNo"));

String name = null;
Cursor cursor = context.getContentResolver().query(uri, 
                    new String[] { Phones.DISPLAY_NAME }, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
    name = cursor.getString(cursor.getColumnIndex(Phones.DISPLAY_NAME));
    cursor.close();
}

以上代码将与联系人列表中的电话号码相匹配,如果电话号码存储在联系人中,则会返回联系人姓名...

如果您有两个字符串,并且想要比较它们,那么

String phone1;   
String phone2; 

 if (PhoneNumberUtils.compare(phone1, phone2)) {
      // code if both are same
   }