2016-11-12 7 views
0

はコードです:コール連絡先番号

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(n)); 
startActivity(intent); 

私はあなたがこのメソッドに連絡先の名前を渡すと、以下のように番号を取得することができ、接触

答えて

0

の名前でnを交換したいと思います。

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(getNumber("ContacteName", this))); 
    startActivity(intent); 

getNumberはメソッドです。パラメータは、ContactName、Contextです。作るために意図することを渡すよりも

public String getNumber(String name,Context context) 
{ 
    String number=""; 
    Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; 
    String[] projection = new String[] {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER}; 

Cursor people = context.getContentResolver().query(uri, projection, null, null, null); 

int indexName = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME); 
int indexNumber = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); 

people.moveToFirst(); 
do { 
    String Name = people.getString(indexName); 
    String Number = people.getString(indexNumber); 
    if(Name.equalsIgnoreCase(name)){return Number.replace("-", "");} 
    // Do work... 
} while (people.moveToNext()); 


if(!number.equalsIgnoreCase("")){return number.replace("-", "");} 
else return number; 
} 

もう一つの方法は、あなたは...そして、どの電話番号が(複数ある場合)を呼び出すこと、連絡先を選択するようにユーザーに促すために、このようなものを使用することができます電話:

Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI); 
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); 
startActivityForResult(intent, 1); 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK) { 
    Uri contactData = data.getData();     
    String theID = contactData.toString()); 

    //MAKE YOUR CALL .. do whatever... example: 
    ContentResolver contentResolver = getContentResolver(); 
    Uri contactData = Uri.parse(theID); 
    Cursor cur = contentResolver.query(contactData, null, null, null, null); 
    String theNumber = cur.getString(cur.getColumnIndex("data4")); 
    cur.close(); 

    Intent my_callIntent = new Intent(Intent.ACTION_CALL); 
    my_callIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    my_callIntent.setData(Uri.parse("tel:" + theNumber)); 
    startActivity(my_callIntent); 


    }     

} 
+0

ありがとうございます。私はテスト、私はあなたに戻ってくる – prince47

+0

申し訳ありませんが、それは動作しません。エミュレータはエラー – prince47

+0

を返します。ありがとうございました – prince47

関連する問題