你好,我试图从我的应用程序中的Android联系人列表中获取联系人号码是我已经给出一个按钮onclick的代码,我正在调用意图填充联系人,我也在menifest文件中添加了read_contact permision,但我我得到结果代码值-1 .... wat是错误的???任何人都可以帮助我...
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));
}
}
}
}
}
答案 0 :(得分:1)
你看过Contacts Provider Api了吗?似乎他们没有像你那样做。我建议从Uri信息开始。
编辑:似乎该活动使用两种方式来呼叫startactivityforresult()
。也许在阅读Activity guide之后,您将获得更好的洞察力。