我编写了一个应用程序,为一个协会发送短信,我需要你的帮助...... 我想通过联系人选择器从联系人中检索手机号码。我无法检索用户选择的结果...
我的代码:
public class MainActivity extends Activity {
private static final int CONTACT_PICKER_RESULT = 0;
private Button contacts = null;
private Button envoyer = null;
private TextView mobile = null;
private int PICK_CONTACT;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Elements of th activity
contacts = (Button) findViewById(R.id.contacts);
envoyer = (Button) findViewById(R.id.envoyer);
mobile = (TextView) findViewById(R.id.mobile);
contacts.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, Phone.CONTENT_URI);
startActivityForResult(contactPickerIntent, 1001);
}
});
envoyer.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// How to retrieve the mobile and the name of the contact selected ?
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void open_contacts(){
}
}
非常感谢你......!
答案 0 :(得分:2)
使用权限:
<uses-permission android:name="android.permission.READ_CONTACTS" />
点击通话:
doLaunchContactPicker(new View(mContext));
public void doLaunchContactPicker(View view)
{
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);
}
onActivityResult:
Uri result = data.getData();
String id = result.getLastPathSegment();
cursor = getContentResolver().query(Phone.CONTENT_URI, null,
Phone.CONTACT_ID + " = ? AND " + Phone.TYPE + " = ? ",
new String[] { id, String.valueOf(Phone.TYPE_WORK) }, null);
phoneIdx = cursor.getColumnIndex(Phone.NUMBER);
if (cursor.moveToFirst())
{
phone = cursor.getString(phoneIdx);
}
您可以使用上方光标检索针对所选联系人存储的任何号码。