繁体   English   中英

联系人选择器中的联系人电话号码读取错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM