当前位置:  编程技术>移动开发

获取Android手机中所有短信的实现代码

    来源: 互联网  发布时间:2014-10-26

    本文导语:  Java核心代码: 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"; StringBuilder smsBuilder = new...

Java核心代码:

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"; 

StringBuilder smsBuilder = new StringBuilder(); 

try{ 
ContentResolver cr = getContentResolver(); 
String[] projection = new String[]{"_id", "address", "person", 
"body", "date", "type"}; 
Uri uri = Uri.parse(SMS_URI_ALL); 
Cursor cur = cr.query(uri, projection, null, null, "date desc"); 

if (cur.moveToFirst()) { 
String name; 
String phoneNumber; 
String smsbody; 
String date; 
String type; 

int nameColumn = cur.getColumnIndex("person"); 
int phoneNumberColumn = cur.getColumnIndex("address"); 
int smsbodyColumn = cur.getColumnIndex("body"); 
int dateColumn = cur.getColumnIndex("date"); 
int typeColumn = cur.getColumnIndex("type"); 

do{ 
name = cur.getString(nameColumn); 
phoneNumber = cur.getString(phoneNumberColumn); 
smsbody = cur.getString(smsbodyColumn); 

SimpleDateFormat dateFormat = new SimpleDateFormat( 
"yyyy-MM-dd hh:mm:ss"); 
Date d = new Date(Long.parseLong(cur.getString(dateColumn))); 
date = dateFormat.format(d); 

int typeId = cur.getInt(typeColumn); 
if(typeId == 1){ 
type = "接收"; 
} else if(typeId == 2){ 
type = "发送"; 
} else { 
type = ""; 
} 

smsBuilder.append("["); 
smsBuilder.append(name+","); 
smsBuilder.append(phoneNumber+","); 
smsBuilder.append(smsbody+","); 
smsBuilder.append(date+","); 
smsBuilder.append(type); 
smsBuilder.append("] "); 

if(smsbody == null) smsbody = ""; 
}while(cur.moveToNext()); 
} else { 
smsBuilder.append("no result!"); 
} 

smsBuilder.append("getSmsInPhone has executed!"); 
} catch(SQLiteException ex) { 
Log.d("SQLiteException in getSmsInPhone", ex.getMessage()); 
} 
return smsBuilder.toString(); 
}

注释:
1、本函数用于获取手机中所有的短信,包括收件箱、发件箱、草稿箱等。
2、本函数可以运行在Service子类中,因为未使用Activity类的相关函数。
3、获取的短信包括:收发短信人名、手机号码、短信内容、短信发送接收的时间、短信的类型。
sms主要结构:
_id:短信序号,如100
thread_id:对话的序号,如100,与同一个手机号互发的短信,其序号是相同的
address:发件人地址,即手机号,如+8613811810000
person:发件人,如果发件人在通讯录中则为具体姓名,陌生人为null
date:日期,long型,如1256539465022,可以对日期显示格式进行设置
protocol:协议0SMS_RPOTO短信,1MMS_PROTO彩信
read:是否阅读0未读,1已读
status:短信状态-1接收,0complete,64pending,128failed
type:短信类型1是接收到的,2是已发出
body:短信具体内容
service_center:短信服务中心号码编号,如+8613800755500
4、为了获取短信,需要在AndroidManifest.xml文件中添加权限使用说明,如下:

5、本函数在真机上测试通过。


    
 
 

您可能感兴趣的文章:

  • Android获取本机电话号码的简单方法
  • android获取手机唯一标识的方法
  • android 如何获取MCC/MNC控制小区广播的开启
  • android当前apn的状态以及获取方法
  • Android手机获取root权限并实现关机重启功能的方法
  • Android获取手机SIM卡运营商信息的方法
  • 用Android Location获取当前地理位置的方法
  • Android取消EditText自动获取焦点默认行为
  • Android中Root权限获取的简单代码 iis7站长之家
  • android开发中获取手机分辨率大小的方法
  • android获取当前手机号示例程序
  • android开发教程之获取使用当前api的应用程序名称
  • 在Android中 获取正在运行的Service 实例
  • android连接wifi时获取广播地址代码
  • Android获取apk程序签名信息代码示例
  • Android开发之获取网络链接状态
  • android 获取屏幕像素大小的正确方法
  • Android获取应用程序名称(ApplicationName)示例
  • Android中Root权限获取的简单代码
  • android获取屏幕像素思路及代码
  • Python获取网页编码的方法及示例代码
  • 请问现在哪里可以获取Fedora的源代码?
  • java Servlet获取和设置cookie实例代码
  • asp.net 获取目录中图片的代码
  • php获取访客ip地址原理及提供七段代码供参考
  • PHP获取php,mysql,apche的版本信息示例代码
  • 在RowCommand事件中获取索引值示例代码
  • Jquery获取元素的父容器对象示例代码
  • php获取字段名的代码
  • jquery获取一个元素下面相同子元素的个数代码
  • Linux下关于shell程序的源代码如何获取?50分求救!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法
  • linux不用命令方式读文件获取网络流量,如何使用C函数调用获取网络流量信息?
  • 关于获取在jsp上获取客户端时间的问题
  • 关于Ganglia中的gmond组件收集到的资源信息如何获取(如何获取telnet后返回的信息)
  • java获取系统路径字体、得到某个目录下的所有文件名、获取当前路径
  • 利用sender的Parent获取GridView中的当前行(获取gridview的值)
  • php获取本机ip地址 php获取远程IP地址
  • linux获取主机名后用gethostbyname() 不能获取主机ip
  • javascript 获取url参数的正则表达式(用来获取某个参数值)
  • 在gtk下,怎样获取系统时间??怎样获取当前的目录路径???
  • C++获取文件哈希值(hash)和获取torrent(bt种子)磁力链接哈希值
  • linux根据pid获取进程名和获取进程pid(c语言获取pid)
  • Shell获取系统时间问题
  • 新手问题:Linux下如何获取进程占用的系统资源
  • c++如何获取当前进程名
  • 怎么通过snmp获取远程主机指定进程信息?
  • C#获取路径的多种方法
  • 怎样获取终端的所有打印消息
  • linux 内核空间如何获取当前时间(常用格式)
  • java获取时间的方法总结
  • 听说Java有获取硬件信息的类,那位知道是什么?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3