发布网友 发布时间:2022-04-25 00:04
共2个回答
热心网友 时间:2023-10-16 17:16
发短信的时候再fw层用到了一个类叫SmsDispatch.javagsm实现的是gsmSmsDispatch,而cdma实现的是cdmaSmsDispatch这俩类主要的区别是对p的封装/解析手段,因为每条短信发给ril前都是封装成byte数组的形式(p) HEAD 文本内容 时间 服务类型 等元素构成p,而gsm和cdma在协议上是不同的,所以对pud的封装和解析 他俩用了不同的方法。 如果你硬是将gsm的p用cdma的dispatch发,未必会失败,但是就算对方真能收到 出现乱码的几率也比较大。而且我记得gsm和cdma其中有一个是根本不需要头的,会空少8位。这个其实不需要你改什么 只要你按照拿gsmSmsDispatch实例的方法去拿cdmaSmsDispatch就行了, 发短信之前判断一下卡的类别(c还是g) 这个从getprop里应该可以拿到运营商的id 通过这个判断是一种方法,但是我觉得应该还有更好的方法去获得卡的类别。热心网友 时间:2023-10-16 17:16
这个……我觉得CDMA和GSM发短信的区别应该被驱动封装掉了。这两个东西对于应用层的软件应该是透明的。