【发布时间】:2015-05-18 05:14:24
【问题描述】:
我需要向用户询问联系号码才能拨打电话。 On Button Click 用户应该被直接重定向到通讯录并且用户可以选择一个电话号码。以下是我现在使用的源代码。
Button buttonReadContact;
TextView textPhone;
final int RQS_PICKCONTACT = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonReadContact = (Button)findViewById(R.id.readcontact);
textPhone = (TextView)findViewById(R.id.phone);
buttonReadContact.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View arg0) {
//Start activity to get contact
final Uri uriContact = ContactsContract.Contacts.CONTENT_URI;
Intent intentPickContact = new Intent(Intent.ACTION_PICK, uriContact);
startActivityForResult(intentPickContact, RQS_PICKCONTACT);
}});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if(resultCode == RESULT_OK){
if(requestCode == RQS_PICKCONTACT){
Uri returnUri = data.getData();
Cursor cursor = getContentResolver().query(returnUri, null, null, null, null);
if(cursor.moveToNext()){
int columnIndex_ID = cursor.getColumnIndex(ContactsContract.Contacts._ID);
String contactID = cursor.getString(columnIndex_ID);
int columnIndex_HASPHONENUMBER = cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);
String stringHasPhoneNumber = cursor.getString(columnIndex_HASPHONENUMBER);
if(stringHasPhoneNumber.equalsIgnoreCase("1")){
Cursor cursorNum = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactID,
null,
null);
//Get the first phone number
if(cursorNum.moveToNext()){
int columnIndex_number = cursorNum.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
String stringNumber = cursorNum.getString(columnIndex_number);
textPhone.setText(stringNumber);
}
}else{
textPhone.setText("NO Phone Number");
}
}else{
Toast.makeText(getApplicationContext(), "NO data!", Toast.LENGTH_LONG).show();
}
}
}
}
但现在的问题是我只能从保存了多个电话号码的联系人中选择一个号码。
我需要在 Skype 应用程序中执行此操作。当用户选择一个有多个联系人的联系人时,它应该从联系人簿本身要求用户选择号码。请帮我做。
【问题讨论】:
-
抱歉,没有收到您的问题,从多个电话号码中选择一个号码有什么问题?你能详细说明一下吗?
-
现在,当我选择保存多个号码的联系人时,它不会询问我需要选择哪个电话号码。是直接取第一个电话号码
-
在 Skype 应用程序中,我看到,当我们从通讯录中选择一个联系人时,它会显示一个包含多个号码的联系人的弹出窗口。从该弹出窗口中,我们可以选择我们需要的号码。弹出窗口不是从应用程序加载的。但从通讯录本身