我试图允许用户使用联系人选择器从联系人中选择一个电话号码.然而,现在我在网上看到的所有例子都显示了如何选择一个联系人,但是我希望有一个第二个屏幕然后弹出如果该联系人有多个电话号码,以便您可以指定要选择哪一个(方式当您选择联系人时,该文本消息可以让您这样做).
我的问题是,你必须收集所有的数字,然后要求用户选择一个数字,还是这个功能已经内置到Android中?我希望我只是忘了一个国旗或东西.
解决方法
或者,您可以在联系人选择器中最初显示与每个联系人相关联的电话号码,然后选择一个.以这种方式启动联系人选择器(注意不同的URI比我的其他答案):
Intent intent = new Intent(Intent.ACTION_PICK,ContactsContract.CommonDataKinds.Phone.CONTENT_URI); startActivityForResult(intent,REQUEST_PICK_CONTACT);
然后,在onActivityResult()中:
Uri result = data.getData(); Log.v(TAG,"Got a result: " + result.toString()); // get the phone number id from the Uri String id = result.getLastPathSegment(); // query the phone numbers for the selected phone number id Cursor c = getContentResolver().query( Phone.CONTENT_URI,null,Phone._ID + "=?",new String[]{id},null); int phoneIdx = c.getColumnIndex(Phone.NUMBER); if(c.getCount() == 1) { // contact has a single phone number // get the only phone number if(c.moveToFirst()) { phone = c.getString(phoneIdx); Log.v(TAG,"Got phone number: " + phone); loadContactInfo(phone); // do something with the phone number } else { Log.w(TAG,"No results"); } }