关闭数据时,为什么有点卡能发送彩信,有的不能?

问题描述:

今天有一个项目遇到"有点卡能发送彩信,有的不能"问题,查看MTK FAQ,发现原生android竟然有一个判断,判断运营商是否会对彩信的流量收费,然后决定是否能在关闭数据流量时发送彩信.,可见谷歌针对这个问题还是研究过,但是客户给的APN他们自己的不能保证完全正确,使得谷歌的这个判断经常是错的,于是出现 有的彩信流量免费关闭流量不能发送,反而收费就能发送.于是在不能要到运行商正确的APN的情况下,我们只有针对运营商强行配置,

判断的代码如下:
framework/opt/telephony/src/java/com/android/internal/telephony/dataconnection/DcTracker.java

boolean isDataAllowed(ApnContext apnContext, DataConnectionReasons dataConnectionReasons) {
        boolean isMeteredApnType = apnContext == null
                || ApnSetting.isMeteredApnType(apnContext.getApnType(), mPhone);

        isMeteredApnType = true;//强制认为彩信是流量收费,这样后面他就不会在流量关闭下发送彩信了。
}

isMeteredApnType 这个判断
true :彩信流量收费,关闭流量不发彩信
false:彩信流量不收费,按彩信数收费(如国内运营商),关闭流量发彩信
如果我们确定运行商是否收费,那么我们就把这个isMeteredApnType固定死,

当然上述的改法实际上是不规范的,
正确的做法是:
(1)找到具体源码是如何判断APN收费
(2)配置正确APN

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值