0

重複の可能性:
Android 連絡先ピッカーから連絡先情報を取得する

こんにちは、以下のアプリで Android の連絡先リストから連絡先番号を取得しようとしているのは、連絡先をパックする意図を呼び出しているボタン onclick を 1 つ指定したコードです。また、menifest ファイルに read_contact 権限を追加しましたが、結果を取得していますコード値 -1 ....間違っていますか??? 誰でも私を助けてくれませんか...

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.friendinvite);

    Button btnFriend=(Button)findViewById(R.id.btnFriend);
    btnFriend.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent contact = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
            startActivityForResult(contact, 1);        


        }
    });

}
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (data != null) {


                ContentResolver cr = getContentResolver();

                Uri contactData = data.getData();

                Cursor c = managedQuery(contactData,null,null,null,null);
                String id=null;
                String name=null;
                String phone=null;

                if(c.moveToFirst()){
                        id = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
                        name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

                    if (Integer.parseInt(c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
                            Cursor pCur = cr.query(Phone.CONTENT_URI,null,Phone.CONTACT_ID +" = ?", new String[]{id}, null);

                      while(pCur.moveToNext()){
                          phone = c.getString(c.getColumnIndex(Phone.NUMBER));

                      }
                  }


                }
        }
    }
4

1 に答える 1

1

Contacts Provider Apiを見たことがありますか? 彼らはあなたのようにそれをしないようです. Uri 情報から始めることをお勧めします。

編集:アクティビティは を呼び出すために 2 つの方法を使用しているようstartactivityforresult()です。アクティビティ ガイドを読んだ後、より良い洞察が得られるかもしれません。

于 2012-12-11T17:34:07.400 に答える