博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何判断手机是否处于漫游状态?
阅读量:4045 次
发布时间:2019-05-24

本文共 878 字,大约阅读时间需要 2 分钟。

手机专业术语中的漫游与我们日常生活中的“省内漫游”,“全国漫游”不是一回事。
这里的漫游,是指手机使用一个运营商的SIM卡,注册上另一个运营商的网络。
判定是否漫游,是通过比较sim卡的PLMN与注册上网络的PLMN,不会去check是本地卡还是异地卡。
代码中更新手机漫游状态,是在srv_nw_info_update_roaming_state()中。
        cntx->is_roaming =
            !is_on_hplmn_by_spec_criteria &&
            !t_mobile_sim_in_t_mobile_network &&
            !same_pnn_by_phone_table;
    is_on_hplmn_by_spec_criteria,t_mobile_sim_in_t_mobile_network,same_pnn_by_phone_table。当这个3个条件都不满足即是漫游状态,界面上会显示Roaming icon。
 (1)plmn_match_by_spec_criteria()是实现spec(3GPP TS 23.122 --Annex A:HPLMN Matching Criteria)。
(2)t_mobile_sim_in_t_mobile_network,是对使用T-mobile sim卡的特殊处理。
(3)same_pnn_by_phone_table,是针对一些有多个plmn的运营商所做特殊处理。
例如China Mobile有“46000,46002,46007”3个plmn,当sim plmn是46000,注册上网络plmn是46002时,虽然sim PLMN与注册上网络plmn不相同,但是都是属于同一运营商China Mobile,不处于roaming状态。
在log(filter设为MOD_MMI_COMMON_APP(Trace_Group_3))中,可以看到以上3个条件的值,以及是否处于漫游状态。
 
代码中,可以通过srv_nw_info_is_roaming()接口来获取手机是否处于漫游状态。

转载地址:http://uvgdi.baihongyu.com/

你可能感兴趣的文章
Android自定义apk名称、版本号自增
查看>>
adb command not found
查看>>
Xcode 启动页面禁用和显示
查看>>
【剑指offer】q50:树中结点的最近祖先
查看>>
二叉树的非递归遍历
查看>>
【leetcode】Reorder List (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Candy(python)
查看>>
【leetcode】Clone Graph(python)
查看>>
【leetcode】Sum Root to leaf Numbers
查看>>
【leetcode】Pascal's Triangle II (python)
查看>>
java自定义容器排序的两种方法
查看>>
如何成为编程高手
查看>>
本科生的编程水平到底有多高
查看>>
AngularJS2中最基本的文件说明
查看>>
从头开始学习jsp(2)——jsp的基本语法
查看>>
使用与或运算完成两个整数的相加
查看>>
备忘:java中的递归
查看>>
DIV/CSS:一个贴在左上角的标签
查看>>