[英]Contact Phone Number Reading Error From Contact Picker
我正在尝试联系屏幕,当用户从那里选择联系人时,其名称和电话号码将显示在onActivityResult
屏幕的Toast消息中。 问题是当我尝试显示发生号码错误时,当我选择联系人时,其名称会显示在吐司中:
java.lang.illegalStateException:Couldn't read row 0,col -1 from CursorWindow.Make sure the Cursor is initialized correctly before accessing data from it.
这是我的onActivityResult
代码
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode==Activity.RESULT_OK){
switch(requestCode){
case 1:
Cursor c=managedQuery(data.getData(), null, null, null, null);
if(c.moveToFirst()){
try{
String name=c.getString(c.getColumnIndex(People.NAME));
String no=c.getString(c.getColumnIndex(People.NUMBER));
Toast.makeText(getApplicationContext(), no, 1).show();
}
catch(Exception e){
Log.v("error", e.toString());
}
}
break;
}
}
}
请尝试下面提到的代码,这将帮助您...
`Uri contactdate = data.getData();
Cursor cursor = managedQuery(contactdate, null, null, null,null);
if(cursor.moveToFirst()){
String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if(hasPhone.equalsIgnoreCase("1")){
Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + id, null,null);
phones.moveToFirst();
String phoneNumebr = phones.getString(phones.getColumnIndex("data1"));
String mFormatedPhoneNumber = phoneNumebr.replace("-", "").replace(" ", "").replace("(","").replace(")", "");
Log.i(TAG, "Phone Number :"+mFormatedPhoneNumber);
}else{
Log.i(TAG, "Phone Number Not available");
}
Log.i(TAG, "Name :"+cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)));
}`
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.