【问题标题】:Have user pick a contact and get the contact's mobile number让用户选择联系人并获取联系人的手机号码
【发布时间】:2011-08-20 23:57:06
【问题描述】:

我正在尝试让用户从他的联系人列表中选择一个联系人,以便我可以对该号码进行一些处理。我启动列表选择活动的代码是

    Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,  
            Contacts.Phones.CONTENT_URI);  
    startActivityForResult(contactPickerIntent, PICK_CONTACT);

我的接收代码是

@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
    super.onActivityResult(reqCode, resultCode, data);

    switch (reqCode) {
    case (PICK_CONTACT) :
        if (resultCode == Activity.RESULT_OK) {

            Bundle extras = data.getExtras();  
            Set<String> keys = extras.keySet();  
            Iterator<String> iterate = keys.iterator();  
            while (iterate.hasNext()) {  
                String key = iterate.next();  
                Log.v(TAG, key + "[" + extras.get(key) + "]");  
            }  
            Uri result = data.getData();  
            Log.v(TAG, "Got a result: "  
                + result.toString());  
        }
    break;
    }
}

但附加包中没有任何姓名或电话号码。如何获取用户选择的结果?

【问题讨论】:

    标签: android contacts


    【解决方案1】:

    getData() 调用包含可以打开光标的 Uri。请尝试以下操作:

       Uri resultUri = data.getData();
       Cursor cursor =  managedQuery(resultUri, null, null, null, null);
       if (cursor.moveToFirst()) {
           // Found results process cursor
       }
    

    【讨论】:

    • 酷!有没有办法获取光标中包含的数据列表?
    • 谢谢!这适用于以下添加: String name = cursor.getString(cursor.getColumnIndexOrThrow(People.NUMBER));
    猜你喜欢
    • 2011-10-30
    • 2015-01-23
    • 2016-12-15
    • 2014-03-30
    • 2017-06-22
    • 2011-09-03
    • 1970-01-01
    • 2019-06-15
    相关资源
    最近更新 更多