普通数据库读取不可行,小米vivo管理允许读取通讯录后依旧不可行,其他品牌手机可以读取,求助可行读取办法,在线等。
人生最曼妙的风景,竟是内心的淡定与从容!
借助ContentResolver与ContentProvider提供的Uri 可以获取系统的中的通讯录管理联系人Uri:ContactsContract.Conacts.CONTENT_URI电话的Uri:ContactsContract.CommonDataKinds.Phone.CONTENT_URI
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null); //遍历结果 if (cursor.moveToNext()){ //联系人ID String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); //联系人名字 String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); .... }
最后注意添加权限。
楼上的回答正确,最后别忘记关cursor
如果是使用ContentProvider的话每个平台都是一样的,手机厂商不好自己随便改的,因为手机在上市前会走CTS流程。所以你这边不行估计是没有代码写的有问题。
小米和vivo不是一个品牌吧。我们读取小米的通讯录是可以的,手上没有vivo测试机。你指的小米vivo不能读取是?
借助ContentResolver与ContentProvider提供的Uri 可以获取系统的中的通讯录
管理联系人Uri:ContactsContract.Conacts.CONTENT_URI
电话的Uri:ContactsContract.CommonDataKinds.Phone.CONTENT_URI
最后注意添加权限。
楼上的回答正确,最后别忘记关cursor
如果是使用ContentProvider的话每个平台都是一样的,手机厂商不好自己随便改的,因为手机在上市前会走CTS流程。所以你这边不行估计是没有代码写的有问题。
小米和vivo不是一个品牌吧。我们读取小米的通讯录是可以的,手上没有vivo测试机。你指的小米vivo不能读取是?