当前位置: 首页 > news >正文

网站栏目页面广州积分入学网站

网站栏目页面,广州积分入学网站,网络科技有限公司起名大全参考,营销型门户网站建设方案目录 读取联系人 添加联系人 更新联系人 删除联系人 读取短信 读取联系人 安卓可以通过contentResolver来读取联系人表,联系人表的Uri信息是:content://com.android.contacts/data/phones 从而输出联系人信息, 需要相关权限&#xff1a…

目录

读取联系人

添加联系人

更新联系人

删除联系人

读取短信


读取联系人

安卓可以通过contentResolver来读取联系人表,联系人表的Uri信息是:content://com.android.contacts/data/phones 从而输出联系人信息,

需要相关权限:

    <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>

具体代码如下:

    //需要读联系人权限READ_CONTACTS@SuppressLint("Range")private fun getContact() {//查询raw_contacts表获得联系人val resolver = contentResolverval uri = Uri.parse("content://com.android.contacts/data/phones")//查询联系人val cursor = resolver.query(uri, null, null, null, null)while (cursor!!.moveToNext()) {val name =cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME))val number =cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))Log.d(TAG, "联系人:${name}")Log.d(TAG, "电话:${number}")}cursor.close()}

输出结构如下:

//2023-08-06 17:29:50.535 31719-31719 MainActivity2           com.example.myapplication            D  联系人:张三
//2023-08-06 17:29:50.535 31719-31719 MainActivity2           com.example.myapplication            D  电话:1 (883) 22
//2023-08-06 17:29:50.535 31719-31719 MainActivity2           com.example.myapplication            D  联系人:si li
//2023-08-06 17:29:50.535 31719-31719 MainActivity2           com.example.myapplication            D  电话:10020
//2023-08-06 17:29:50.535 31719-31719 MainActivity2           com.example.myapplication            D  联系人:bo xiao
//2023-08-06 17:29:50.535 31719-31719 MainActivity2           com.example.myapplication            D  电话:10086

添加联系人

同理,使用contentResolver。需要写联系人权限

 <uses-permission android:name="android.permission.WRITE_CONTACTS"/>

具体代码如下:

    private fun insertContact() {val resolver = contentResolverval values = ContentValues()//向raw_contacts表插入空数据,拿到urival uri = resolver.insert(ContactsContract.RawContacts.CONTENT_URI,values)//拿到表idval id = uri?.let { ContentUris.parseId(it) }//插入姓名values.clear()//put idvalues.put(ContactsContract.Data.RAW_CONTACT_ID,id)//put typevalues.put(ContactsContract.Data.MIMETYPE,StructuredName.CONTENT_ITEM_TYPE)//put 值values.put(StructuredName.GIVEN_NAME,"xiaohong")resolver.insert(ContactsContract.Data.CONTENT_URI,values)//插入手机号values.clear()//put idvalues.put(ContactsContract.Data.RAW_CONTACT_ID,id)//put typevalues.put(ContactsContract.Data.MIMETYPE,Phone.CONTENT_ITEM_TYPE)//put 值values.put(Phone.NUMBER,"15541383234")values.put(Phone.TYPE,Phone.TYPE_MOBILE)resolver.insert(ContactsContract.Data.CONTENT_URI,values)//插入邮箱values.clear()//put idvalues.put(ContactsContract.Data.RAW_CONTACT_ID,id)//put typevalues.put(ContactsContract.Data.MIMETYPE,Email.CONTENT_ITEM_TYPE)//put 值values.put(Email.DATA,"163@qq.com")values.put(Email.TYPE,Email.TYPE_WORK)resolver.insert(ContactsContract.Data.CONTENT_URI,values)}

运行结果如下:

更新联系人

这里我们是根据手机号码先获取联系人表id,也仅有这种方式,获取id

    @SuppressLint("Range")private fun getContactByPhone(phone: Long): String? {val resolver = contentResolverval uri = Uri.parse("content://com.android.contacts/data/phones/filter/$phone")val cursor= resolver.query(uri, arrayOf(ContactsContract.Data.CONTACT_ID),null,null,null)return if (cursor!!.moveToNext()){val id = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.CONTACT_ID))cursor.close()id}else{null}}

拿到ContactId后,去更新数据

    //根据手机号更新@SuppressLint("SuspiciousIndentation")private fun updateContact() {val id  = getContactByPhone(15541383234)if(id!=null){val values = ContentValues()val resolver = contentResolvervalues.put(ContactsContract.Data.MIMETYPE,CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)values.put(CommonDataKinds.StructuredName.GIVEN_NAME,"xiaohong_update")resolver.update(ContactsContract.Data.CONTENT_URI, values,"${ContactsContract.Data.CONTACT_ID}=?",arrayOf(id))}}

删除联系人

删除联系人,比较简单,我们可以通过联系人名字,删除

    private fun deteleContact() {val resolver = contentResolver//根据联系人删除val ret = resolver.delete(RawContacts.CONTENT_URI, CommonDataKinds.Phone.DISPLAY_NAME+"=?",arrayOf("si li"))if(ret > 0){Toast.makeText(this, "删除成功", Toast.LENGTH_LONG).show()}}

也可以根据联系人手机号删除,具体代码如下:

    private fun deteleContact() {val resolver = contentResolver//根据手机号删除val id = getContactByPhone(10020)val ret = resolver.delete(RawContacts.CONTENT_URI, CommonDataKinds.Phone.CONTACT_ID+"=?",arrayOf(id))if(ret > 0){Toast.makeText(this, "删除成功", Toast.LENGTH_LONG).show()}}

读取短信

除此,我们还可以通过contentResolver读取短信信息,短信表的uri信息content://sms/

用途比如验证码快捷输入,像ios短信验证码快速copy到输入框。

下面看看任何实现

第一,读取短信信息,需要权限:

    <uses-permission android:name="android.permission.READ_SMS"></uses-permission>

具体代码如下;

    private fun getMsgs() {val uri = Uri.parse("content://sms/")val resolver = contentResolverval  cursor =resolver.query(uri, arrayOf("address","date","type","body"),null,null,null)while (cursor!!.moveToNext()){val  address = cursor.getString(0)val  date = cursor.getString(1)val  type = cursor.getString(2)val  body = cursor.getString(3)Log.d(TAG,"address:${address},date:${date},type:${type},body:${body}")}cursor.close()}

下面是一些表的uri信息:

 

http://www.yayakq.cn/news/70402/

相关文章:

  • 江苏首天建设集团网站外包公司是做什么的
  • 中小企业网站制作公司网站建设江西有多少家
  • 浙江公铁建设工程有限公司网站x wordpress theme
  • 织梦网站更改网站的导航做网站什么行业前景好
  • 工具类网站怎么优化seo乡镇网站建设中的问题
  • 企业vi设计的基本要素wordpress优化
  • 无锡网站建设网站方正隶变简体可以做网站用么
  • 做企业网站怎么接活长沙网站制作价
  • 嘉峪关网站建设wordpress 网站变慢
  • 图书销售网站设计怎么做关键词搜索量排名
  • 企业做网站有用吗天涯水果网站设计论文
  • 建论坛网站多少钱在线设计平台帮助手册
  • 网站制作公司制作网站免费建站网站seo
  • 书城网站建设规划书黑龙江跃众品牌策划公司
  • 公司网站建设多少费用哪儿济南兴田德润联系电话随身wifi网站设置
  • 做非法网站会怎样wordpress主题 淘宝客
  • 自己录入数据做问卷的网站太原网站推广怎么做
  • 潜山做网站天津模板网页制作报价
  • 大兴网站开发公司建个网站多少钱
  • 关键词搜索量排名凌哥seo节点
  • 在网站服务器上建立数据库关键词分析网站
  • 企业网站建设方案策划请将uploads里面的所有文件和文件夹上传到你的网站根目录
  • 湖南建设集团网站雨默合肥做网站推广
  • 做淘宝网站买个模版可以吗wordpress主题slcorp破解
  • 如何用wordpress做网站珠海建站网站模板
  • 英文网站seo如何做wordpress 修改文档目录名
  • ajax网站镇江百度开户
  • 织梦网站必须下载织梦仿站建站网站建设实战
  • 江苏住房和城乡建设网站环保部网站官网建设项目限批办法
  • 网站备案大概多久毕业设计微信小程序开发