设为首页 加入收藏

TOP

Android 4.2.1短信SMS常用接口整理
2014-11-24 07:23:47 来源: 作者: 【 】 浏览:1
Tags:Android 4.2.1 短信 SMS 常用 接口 整理

先说说SmsManager这个类:


sendTextMessage()根据后面的调用,可以知道这个是协议上发送一条短信的方法。协议上的一条短信是指一条短信不能超过140个字节,即70个汉字。这个方法在原生短信中没有调用,尽在该类的另外一个方法中有用到。


divideMessage()将一个字符串根据协议分成若干个短信段。这个方法会在SmsSingleRecipientSender.java,原生短信模块中最终发送短信的类中用到。稍微注意下这个方法就能发现一条长短信中,从第二个分断短信开始,由于增加了一些字段可供存储内容空间变小了。


sendMultipartTextMessage()android原生代码中,应用层调用的发短信方法。从这里开始就和应用没有关系了。


sendDataMessage()从字面意思可以理解到其意思,但是没有见在哪里用过,先知道有这个方法存在。


copyMessageToIcc()也没有看到在哪里用到,同样先知道。


deleteMessageFromIcc()这个在短信数据库里面有用到,删除sim卡上短信。


updateMessageOnSim()也很少用到。


getAllMessagesFromIcc()还是在短信数据库中用到。


后面的方法基本都和短信功能关系不大,就不一一说明。我们可以看出,在这里我们只要记住并且熟悉sendMultipartTextMessage()和divideMessage()两个接口就差不多了,如果真有必要写发送短信功能代码,这两个接口就足够了。


再说说SmsMessage。这个类里的方法可以说是根据协议一个个实现的。注释里面也说明了其参考了TS 23.038协议。


createFromPdu()根据注释可以知道是在收到短信的情况下,将下面发上来广播中的内容解析成短信。原生短信中用的是该方法的重载方法。


createFromPdu()这个方法的重载方法,参数列表中多了一个短信类型。因为GSM和CDMA短信解码方式不一样。下层在往上层发送广播的时候会提供当前短信类型,根据这个类型就可以知道是用GSM还是CDMA去解析短信。


newFromCMT(),newFromParcel(),createFromEfRecord(),getTPLayerLengthForPDU()这几个方法一般不常用,大概有个印象就行。


calculateLength()计算当前短信按照协议打包之后的信息,包括短信需要打包成几段,最后一段还剩多少空间等内容。在ComposeMessageActivity.java这个编辑短信界面显示剩余字数的updateCounter方法里面就有用到。


fragmentText()这个在SmsManager中和divideMessage用到,就不多说了。这之后的方法都是get方法,返回短信类型中的一些标记。


最后补充一句,有些方法和作用域前面有@hide字段,表示不对外公开api,但是系统内部是可以使用的。不过使用反射貌似也能用。:)短信中常用到的接口就整理到这里,方便自己以后记忆。希望自己能带着这些去看看3GPP协议。:)


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇标准C中strtok函数分割字符串 下一篇获取Android各类系统相关信息的接..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Java 学习线路图是怎 (2025-12-25 15:19:15)
·关于 Java 学习,有 (2025-12-25 15:19:12)
·有没有Java swing教 (2025-12-25 15:19:09)
·Start, Stop, and Di (2025-12-25 14:50:57)
·C语言入门教程:零基 (2025-12-25 14:50:54)