真机测试没有电话卡如何添加联系人?
我用的真机测试,但是没有电话卡,按照老师讲的步骤添加完成以后,当再次点击读取的时候应用停止了。
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 星