Android Contacts(二)—— SMS 短信 与 Contacts 联系人关联

Android 的SMS读取短信,可以获取发信人/收信人的手机号码(address),Contacts的联系人,可以过滤手机号码(address),因此SMS可以通过手机号码(address)关联到Contacts联系人


SMS - Contacts 关联代码

// 通过address手机号关联Contacts联系人的显示名字private String getPeopleNameFromPerson(String address){if(address == null || address == ""){return "( no address )\n";}String strPerson = "null";String[] projection = new String[] {Phone.DISPLAY_NAME, Phone.NUMBER};Uri uri_Person = Uri.withAppendedPath(ContactsContract.CommonDataKinds.Phone.CONTENT_FILTER_URI, address);	// address 手机号过滤Cursor cursor = getContentResolver().query(uri_Person, projection, null, null, null);if(cursor.moveToFirst()){int index_PeopleName = cursor.getColumnIndex(Phone.DISPLAY_NAME);String strPeopleName = cursor.getString(index_PeopleName);strPerson = strPeopleName;}cursor.close();return strPerson;}


SMS - Contacts 关联示例代码:

package com.homer.phone;import java.sql.Date;
import java.text.SimpleDateFormat;import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteException;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.util.Log;
import android.widget.ScrollView;
import android.widget.TextView;public class phoneRead2 extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);TextView tv = new TextView(this);tv.setText(getSmsInPhone());ScrollView sv = new ScrollView(this);sv.addView(tv);setContentView(sv);}public String getSmsInPhone() {final String SMS_URI_ALL = "content://sms/";final String SMS_URI_INBOX = "content://sms/inbox";final String SMS_URI_SEND = "content://sms/sent";final String SMS_URI_DRAFT = "content://sms/draft";final String SMS_URI_OUTBOX = "content://sms/outbox";final String SMS_URI_FAILED = "content://sms/failed";final String SMS_URI_QUEUED = "content://sms/queued";StringBuilder smsBuilder = new StringBuilder();try {Uri uri = Uri.parse(SMS_URI_ALL);String[] projection = new String[] { "_id", "address", "person", "body", "date", "type" };Cursor cur = getContentResolver().query(uri, projection, null, null, "date desc");		// 获取手机内部短信if (cur.moveToFirst()) {int index_Address = cur.getColumnIndex("address");int index_Person = cur.getColumnIndex("person");int index_Body = cur.getColumnIndex("body");int index_Date = cur.getColumnIndex("date");int index_Type = cur.getColumnIndex("type");do {String strAddress = cur.getString(index_Address);int intPerson = cur.getInt(index_Person);String strbody = cur.getString(index_Body);long longDate = cur.getLong(index_Date);int intType = cur.getInt(index_Type);SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");Date d = new Date(longDate);String strDate = dateFormat.format(d);String strType = "";if (intType == 1) {strType = "接收";} else if (intType == 2) {strType = "发送";} else {strType = "null";}String strAddress2 = getPeopleNameFromPerson(strAddress);smsBuilder.append("[ ");
//					smsBuilder.append(strAddress + ", ");smsBuilder.append(strAddress + " : " + strAddress2 + ", ");smsBuilder.append(intPerson + ", ");smsBuilder.append(strbody + ", ");smsBuilder.append(strDate + ", ");smsBuilder.append(strType);smsBuilder.append(" ]\n\n");} while (cur.moveToNext());if (!cur.isClosed()) {cur.close();cur = null;}} else {smsBuilder.append("no result!");} // end ifsmsBuilder.append("getSmsInPhone has executed!");} catch (SQLiteException ex) {Log.d("SQLiteException in getSmsInPhone", ex.getMessage());}return smsBuilder.toString();}// 通过address手机号关联Contacts联系人的显示名字private String getPeopleNameFromPerson(String address){if(address == null || address == ""){return "( no address )\n";}String strPerson = "null";String[] projection = new String[] {Phone.DISPLAY_NAME, Phone.NUMBER};Uri uri_Person = Uri.withAppendedPath(ContactsContract.CommonDataKinds.Phone.CONTENT_FILTER_URI, address);	// address 手机号过滤Cursor cursor = getContentResolver().query(uri_Person, projection, null, null, null);if(cursor.moveToFirst()){int index_PeopleName = cursor.getColumnIndex(Phone.DISPLAY_NAME);String strPeopleName = cursor.getString(index_PeopleName);strPerson = strPeopleName;}cursor.close();return strPerson;}}

AndroidManifest.xml 权限

 记得在AndroidManifest.xml中加入android.permission.READ_SMSandroid.permission.READ_CONTACTS这两个permission

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


运行结果:



示例代码



参考推荐:

Android 之 Contacts 联系人读取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10388.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在 Linux 终端上使用 ChatGPT, 轻松提高生产力

随着NFT和元宇宙的流行逐渐消退&#xff0c;人工智能已成为技术领域的新热词。ChatGPT及其替代品在互联网上蓬勃发展&#xff0c;帮助用户轻松完成日常任务。很多文章都介绍了如何开始制作类似ChatGPT的聊天机器人以及如何在任何浏览器中使用Bing AI等指南。但是&#xff0c;如…

大家查找医疗英文文献都去哪个网?

文献阅读是每一个医学科研人都逃脱不了且贯穿整个科研生涯的需求&#xff0c;尤其是英文文献的检索与阅读&#xff0c;我们不得不承认医疗类国际前沿与热点的文章都普遍为英文文献。那么拥有一个使用起来得心应手的文献检索网站就是非常必要的&#xff0c;毕竟巧妇难为无米之炊…

哪些平台可以查看医学类文献?

世上文献检索千千万&#xff0c;医学文献检索选哪站&#xff1f;下面我就为大家总结了8个检索医学类期刊的文献检索网站&#xff01; 目录 1. 中国知网全文数据库(CNKI) 2. 掌桥科研 3. SinoMed中国生物医学文献数据库(CBM) 4. 中华医学期刊全文数据库 5. JAMA Netw…

如何着手写一篇医学综述?

各位医学研究生&#xff0c;研0的时候是不是导师都已经把综述布置下来作为你的第一份作业呀&#xff1f;对于医学生们来说&#xff0c;不管你是本科就已经开始接触科研还是研究生开始才接触科研&#xff0c;反正在你开始阅读文献的时候开始一篇综述总是逃不过的。鉴于有综述任务…

【学习】ChatGPT对问答社区产生了哪些影响?

引用 StackExchange 社区 CEO Prashanth Chandrasekar 的一篇博客标题 “Community is the future of AI”&#xff0c;引出本文的观点&#xff0c;即ChatGPT对问答社区产生了颠覆性影响&#xff0c;问答社区必须釜底抽薪、涅槃重生&#xff0c;但我们必须坚信“社区才是AI的未…

你想要的宏基因组-微生物组知识全在这(2023.5)

欢迎点击上方蓝色”宏基因组”关注我们&#xff01; 宏基因组/微生物组是当今世界科研最热门的研究领域之一&#xff0c;为加强宏基因组学技术和成果交流传播&#xff0c;推动全球华人微生物组领域发展&#xff0c;中科院青年科研人员创立“宏基因组”公众号&#xff0c;联合海…

2023年第二十届ChinaJoy新闻发布会 十大亮点解读

5月29日&#xff0c;2023年第二十届中国国际数码互动娱乐展览会&#xff08;ChinaJoy&#xff09;新闻发布会&#xff0c;在上海浦东嘉里大酒店召开&#xff0c;宣布本届ChinaJoy将于7月28日至7月31日&#xff0c;在上海新国际博览中心举办。 中国音像与数字出版协会第一副理事…

BFT 最前线 | 王小川:2033机器智慧将超人类;扎克伯格财富暴涨;哈工大:能跳跃的昆虫机器人;北京支持“1+4”机器人领域

原创 | 文 BFT机器人 名人动态 CELEBRITY NEWS 01 王小川&#xff1a;10年后机器智慧将超过人类 年底将推出对标GPT-3.5的模型 科技预言大师雷库兹韦尔说人工智能的奇点&#xff0c;机器智慧超过人类会发生在2045年&#xff0c;王小川的判断比这更激进&#xff0c;他认为这一…

开启单细胞及空间组学行业发展黄金时代!首届国际单细胞及空间组学大会在穗闭幕

2023年4月16日&#xff0c;首届TICSSO国际单细胞及空间组学大会圆满闭幕&#xff0c;本次大会吸引了2000余位来自产、学、研、资、医、政、媒等业界人士齐聚羊城&#xff0c;注册总人数5398人&#xff0c;网络播放总量达548245人次&#xff0c;网络观看覆盖美国、德国、日本、澳…

聚集十二罗汉,探索宇宙本质,马斯克神秘的xAI

作者 | 德新编辑 | 王博 马斯克组团入局通用人工智能。 7月12日&#xff0c;马斯克发推官宣成立新的公司xAI。据官网介绍&#xff0c;这是一家试图「探索理解宇宙本质」的公司。 新公司公布了12名首批成员&#xff0c;除了马斯克外&#xff0c;他们曾经在「AlphaStar、AlphaCod…

Transformer作者:指令型智能体的构建之法

来源 | The Robot Brains PodcastOneFlow编译翻译&#xff5c;徐佳渝、贾川、杨婷2017年&#xff0c;Google发布的《Attention Is All You Need》论文提出了Transformer架构&#xff0c;这成为过去十年神经网络领域最具影响力的技术创新之一&#xff0c;并被广泛应用于NLP、计算…

华为版AIGC或于7月7日发布;350名行业大佬警告AI可能给人类带来灭绝风险;钉钉斜杠“/” 面向企业用户定向邀测丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 欧盟官员将于6月会见OpenAI CEO&#xff1a;讨论人工智能法规 5月30日&#xff0c;欧盟官员表示&#xff0c;欧盟产业主管埃里布雷顿将于下月在旧金山与美国人工智能研究公司OpenAI首席执行官山姆阿尔特曼会面&…

大湾区年度盛会上线!院士领衔,20+重磅嘉宾,相信边缘的力量!

边缘计算&#xff0c;作为一种革命性的计算范式&#xff0c;已经引起了全球各行各业的广泛关注。在云计算、大数据、人工智能等技术的驱动下&#xff0c;边缘计算能够将计算能力下沉到数据源头&#xff0c;实现更快的响应、更高的效率、更低的成本和更强的隐私保护。据市场研究…

ACL 2023|大模型时代,自然语言领域还有什么学术增长点?

省时查报告-专业、及时、全面的行研报告库 省时查方案-专业、及时、全面的营销策划方案库 【免费下载】2023年5月份全网热门报告合集 普通人如何利用ChatGPT变现赚钱&#xff1f; 无需翻墙&#xff0c;无需注册&#xff0c;ChatGPT4直接使用 ChatGPT提词手册&#xff0c;学完工…

为AIGC敲响警钟!千亿级赛道为何成了作恶温床?

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 随着人工智能通用大模型的问世&#xff0c;全球对AIGC技术的强大潜力有了更加深刻的认识。然而&#xff0c;这也引发了诸多关于AIGC技术可信度、隐私保护以及知识产权等问题的争议&#xff0c;引起了广泛关注。 5月9日&…

Milvus应用开发实战【语义搜索】

美国总统竞选活动即将到来。 现在是回顾拜登政府上任头两年的一些演讲的好时机。 搜索一些演讲记录以了解更多关于白宫迄今为止关于某些主题的信息不是很好吗&#xff1f; 假设我们要搜索演讲的内容。 我们该怎么做&#xff1f; 我们可以使用语义搜索。 语义搜索是目前人工智能…

YC最新投资值得细琢磨!亲测爽飞的ChatGPT联网工具;阿里云大模型开启邀测;SD绘画新手入门手册 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 『ChatGPT 恢复 Plus 订阅服务』实测&#xff0c;昨天确实巨卡 实测发现&#xff0c;OpenAI ChatGPT 已经恢复了 Plus 订阅服务&…

chatgpt赋能Python-python_theano

简介 什么是Python? Python是一种高层次、动态、解释型编程语言。它是一个易于学习且功能强大的语言&#xff0c;拥有广泛的应用领域。Python是由Guido van Rossum于1989年发明和开发的。它的设计哲学强调代码的可读性和简洁性&#xff0c;在保持语言的清晰和简洁性时&#…

chatgpt赋能python:Python编程:如何赚取高薪?

Python编程&#xff1a;如何赚取高薪&#xff1f; Python语言是一门被广泛使用的编程语言&#xff0c;因其简单易学&#xff0c;而在软件开发、数据分析、机器学习及人工智能等领域中得到了广泛应用。随着这些领域的不断发展&#xff0c;对Python开发人才的需求也越来越高涨。…

谷歌推Bard百度推文心一言:挑战ChatGPT 竞争白热化

雷递网 雷建平 2月7日 在ChatGPT大获成功的推动下&#xff0c;百度宣布将推出类ChatGPT项目&#xff0c;该项目名字确定为文心一言&#xff0c;英文名ERNIE Bot&#xff0c;三月份完成内测&#xff0c;面向公众开放。 目前&#xff0c;文心一言在做上线前的冲刺。 2022年9月&am…