1

我编写了一个应用程序来发送关联短信,我需要您的帮助...我想通过联系人选择器从联系人中检索手机号码。我无法检索用户选择的结果...

我的代码:

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(){


    }


}

非常感谢你... !

4

1 回答 1

3

使用权限:

<uses-permission android:name="android.permission.READ_CONTACTS" />

onClick 调用:

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);
}

您可以使用上面的光标来检索针对所选联系人存储的任何号码。

于 2013-01-26T19:28:28.070 回答