2014-04-05 34 views
-2

嗨,朋友,我正在嘗試做一個項目,我將匹配來電號碼與保存在不同電話號碼中的不同格式。 我可以匹配「+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; 
    } 

} 
+2

使用[PhoneNumberUtils.compare()] (http://developer.android.com/reference/android/telephony/PhoneNumberUtils.html#compare%28android.content.Context,%20java.lang.String,%20java.lang.String%29)... –

+0

@ GopalRao你好久以後認識了,你好嗎? n謝謝你的回答,你總是幫我很多 –

+0

看來你很忙很好,只要你得到免費請親切地看看這個東西,請.... boolean a = PhoneNumberUtils.compare(number,phoneNumber); \t \t如果(a){ \t \t \t \t \t \t \t \t \t \t字符串contname = phoneCursor.getString(phoneCursor \t \t \t \t \t \t \t \t \t .getColumnIndex(DISPLAY_NAME)); \t \t \t \t \t \t \t如果{ \t \t \t \t \t \t \t \t Toast.makeText(getApplicationContext(),contname,Toast.LENGTH_SHORT).show()(contname.equals(空)!); \t \t \t \t \t \t \t \t tts.speak(contname + 「呼叫」,文字轉語音。QUEUE_FLUSH,null); \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t} \t \t \t \t \t \t} \t \t \t \t \t \t 我收到CONTACTNAME tosat但問題是它沒有講話接觸名稱 –

回答

1

願這可以幫助您:

哥們你可以利用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 
    } 
相關問題