真机测试没有电话卡如何添加联系人?
我用的真机测试,但是没有电话卡,按照老师讲的步骤添加完成以后,当再次点击读取的时候应用停止了。
case R.id.add_contacts:
String contacts_name=name.getText().toString();
String contacts_number=number.getText().toString();
ContentValues values=new ContentValues();
//插入空数据,得到id
Uri uri1=resolver.insert(ContactsContract.RawContacts.CONTENT_URI,values);
long id= ContentUris.parseId(uri1);
//插入姓名
values.put(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,contacts_name);
values.put(ContactsContract.Data.RAW_CONTACT_ID,id);
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
resolver.insert(ContactsContract.Data.CONTENT_URI,values);
//插入号码
values.clear();
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER,contacts_number);
values.put(ContactsContract.Data.RAW_CONTACT_ID,id);
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);
resolver.insert(ContactsContract.Data.CONTENT_URI,values);
Toast.makeText(MainActivity.this,"添加成功",Toast.LENGTH_SHORT).show();
Log.v("insert","新增联系人:"+contacts_name+",号码:"+contacts_number);
break;toast和log都打印出来了,但是如果再读取联系人,就会读取报错。
0
收起
正在回答 回答被采纳积分+1
2回答
D许咚
2019-04-28 10:30:41
问题补充:同时我发现手机里面联系人里面是出现了刚添加的联系人的,重新连接应用点击读取也能读取出来添加的人,但是再执行--》添加-》读取,就会再次报错。
我怀疑是因为添加到的位置的问题,但不敢确定。
另外,读取的代码如下:
case R.id.read_contacts:
Cursor c1=resolver.query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);
while(c1.moveToNext()){
String name;
String id;
name=c1.getString(c1.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
id=c1.getString(c1.getColumnIndex(ContactsContract.Contacts._ID));
//读取联系人名字和id
Log.i("contacts",name+":"+id);
String selections= ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"=?";
Cursor c2=resolver.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,selections,new String[]{id},null);
while (c2.moveToNext()){
String number=c2.getString(c2.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
name+=" 号码:"+number;
}
Log.v("contacts",name);
}
break;
Android网络操作与数据存储2018版
- 参与学习 人
- 提交作业 307 份
- 解答问题 1613 个
本专题是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理。介绍了Android内外部文件存储、轻量级数据库SQLite的使用。利用屏幕适配、状态保持、百度地图解决实际问题。
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星