私のアプリでは、電話から連絡先にアクセスし、連絡先から取得したデータをフォームに入力したいと考えています。インテントを実行しようとすると、携帯電話で連絡先のリストが表示されますが、データが返されず、onActivityResult が呼び出されません。私はAndroidプログラミングの初心者なので、誰かが私を助けてくれませんか。
ここに私のコードの一部があります:
「連絡先」というボタンのクリックイベント
btn_contacts.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@SuppressWarnings("deprecation")
Intent intent = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_TYPE);
startActivityForResult(intent, PICK_CONTACT);
}
});
同じアクティビティの onActivityResult で。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
Log.e("REcAddress","in activity result");
super.onActivityResult(requestCode, resultCode, data);
if(data!=null){
Log.e("REcAddress","hey");
}
if(requestCode == PICK_CONTACT && resultCode == RESULT_OK){
Uri contactData = data.getData();
Log.e("REcAddress",contactData.toString());
Cursor c = getContentResolver().query(contactData, null, null, null, null);
if(c.moveToFirst()){
String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
Log.e("REcAddress",name);
edt_rec_name.setText(name);
}
}
}
アクティビティのレイアウトを示す画像も添付しました。フォームの連絡先からできるだけ多くの詳細を入力したい。Logcat にもエラーはありません。どうか、私を導いてください。
ありがとう。