Android: APN: 3UK APN roaming客制,如何让APN随网络漫游而切换(EUinternet)?

本文介绍了3UK如何在Android设备上实现APN漫游切换,详细阐述了在本地和漫游状态下APN的动态调整策略,包括静态切换和动态切换的实现方式,以及关键源代码的解释。
摘要由CSDN通过智能技术生成

By:GentlemanTsao

背景:

3UK 希望在漫游的时候,APN 能够从 local 切换到 common,也就是从自己的 APN 切换到 一个通用的 APN。这项被称为 LBO 的 feature ,即欧洲的运营商都要支持该通用 APN。

要求

行为:

  • 在本地网络,要使用 3UK 本地 APN;
  • 处于漫游时,使用 EUInternet APN,不再从 3UK 接入.

菜单设定:

有两个选项:3UK 和 EU Roaming.

  • 设为本地,APN 一直是 3UK;
  • 设为 EU roaming,APN 随网络的漫游而切换。

在这里插入图片描述

实现方案:

根据网络漫游状态,动态更新 APN database。
分为:

静态切换:

当菜单设定变动时;

动态切换:

当网络漫游状态变化时;

关键源代码

静态切换APN,当菜单设定变动时

对应场景是,网络没有改变,APN roaming 设定有更改。若当前网络处于本地,APN 将不会变化;若网络 处于漫游,APN 将切换到 EU Internet。

实现方法是直接修改 APN DB 参数,使对应的 APN 类 型改变、enable 属性改变,从而控制显示或隐藏。

private void doApnSwitch(int value){
   
        boolean roaming = "true".equals(
                    SystemProperties.get(TelephonyProperties.PROPERTY_OPERATOR_ISROAMING));
        String CARRIERS_URI_STRING = "content://telephony/carriers";
        Uri APN_URI = Uri.parse(CARRIERS_URI_STRING);
        ContentResolver resolver = getActivity().getContentResolver();
        Xlog.d(TAG, "doApnSwitch value =" + value);
        // if value == 0, then no EUinternet, switch to 3UK APN anyway;
        //if value == 1, should use EUinternet when roaming,use 3UK APN when in Home
        if( value == 0 || value == 1 && !roaming){
   
            Xlog.d(TAG, "enable home APN" );            
            /*disable Roaming APN*/
                    ContentValues value3 = new ContentValues(1);
                    value3.put(Telephony.Carriers.CARRIER_ENABLED, 0);    
                    resolver.update(APN_URI, value3, "numeric"+"=?"+ " AND "+"name"+"=?", new String[]{
   "23420","EUInternet"});         

            /*enable home APN*/
                    ContentValues value1 = new ContentValues(1);
                    value1.put(Telephony.Carriers.TYPE, "default,mms,supl"); 
                    resolver.update(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GentlemanTsao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值