您好,匿名用户
随意问技术百科期待您的加入

安卓应用获取联系人信息的问题

0 投票
@Override
public void onActivityResult(int requestCode,int resultCode,Intent data){
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode==1&&resultCode==Activity.RESULT_OK){
        Uri contactData=data.getData();
        Cursor cursor=managedQuery(contactData,null,null,null,null);
        String phoneNumber="no number";
        String name="no name";
        String contactId="no ID";   
        if(cursor.moveToFirst()){            
            contactId=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
            name=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
            Cursor phones=getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID+" = "+contactId, null, null);
            if(phones.moveToFirst()){
                phoneNumber="No Number";
                phoneNumber=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
            }
            phones.close();
        }
        TextView textView=(TextView)this.findViewById(R.id.text);
        textView.setText(name+" "+phoneNumber+contactId+"");
        cursor.close();
    }
}

上面代码中phones能正常返回一个Cursor吗?最后的输出结果,name和contactId是正常的,就phoneNumber输出的是"no number",如何能让phoneNumber输出正常的结果(就是号码)。(个人思考后觉得有可能是phones没有正确返回,而且下面的phones.moveToFirst()返回的值是false)本人新手,对于安卓还很生疏,望解答。

用户头像 提问 2013年 9月11日 @ Aatrox 上等兵 (118 威望)
分享到:

你的回答

隐私保护: 您的邮箱仅用于发送系统通知。
请输入验证码:
    图片验证码看不清?
登录注册后不会被要求输入验证码。

提一个问题:

相关问题

+1 投票
0 回复 27 阅读
用户头像 提问 2013年 9月17日 @ Karma 上等兵 (229 威望)
0 投票
1 回复 56 阅读
0 投票
1 回复 40 阅读
用户头像 提问 2012年 12月1日 @ Sagittarius 上等兵 (289 威望)
0 投票
1 回复 48 阅读
0 投票
1 回复 37 阅读
用户头像 提问 2012年 12月1日 @ Teemo 上等兵 (318 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...