您的位置:首页 > 移动开发

如何绕开Google Play地区限制,自由切换手机App所属国家

2015-05-07 16:21 507 查看
工作原因,个人经常要看个各个国家的数据,而目前国家的区分在安卓中主要是通过MMC区分,就是国家代码,下面放出维基百科的各国家的MMC+MNC的代码吧:

点我,点我

上面说到的MNC其实就是这个国家的运营商ID,软件中使用是MMC代码,但设置中要求设置成MMC+MNC,也就是维基百科中组合出来的5位数。

其中看到一牛人写的


破解 Android Market 的区域限制-运营商伪装/Market Faker v1.1.2

不过是11年了,但提供一个大概思路,就是修改prop中的对应的属性,再重启android市场(实际不重启也能生效),清空app的数据,再启动app,app获取到的数据就是修改后的数据了。
下面说下修改的方法吧:
要求手机必须root
D:\xxxx\i>adb shell    #进入手机shell命令行
shell@android:/ $ su    #切换用户权限
shell@android:/ # setprop gsm.sim.operator.numeric 46001
shell@android:/ # setprop gsm.operator.numeric 46001

其实就是修改两个属性值:gsm.sim.operator.numeric和gsm.operator.numeric,必须是root的权限才能生效,设置完了可以用adb shell getprop |findstr gsm.*.numeric查看值

D:\xxxx\i>adb shell getprop |findstr gsm.*.numeric
[gsm.operator.numeric]: [46001]
[gsm.sim.operator.numeric]: [46001]


修改完了清空你的App,启动App就可以切国家数据了

下面是读取正常的MMC的安卓代码:

private string sMCC;
#下面是具体的获取代码
if (sMCC == null) {
            TelephonyManager telManager = (TelephonyManager) sApplicationContext
                    .getSystemService(Context.TELEPHONY_SERVICE);
            try {
                sMCC = "";
                String networkOperator = telManager.getNetworkOperator();
                if(!TextUtils.isEmpty(networkOperator)) {
                    sMCC = networkOperator.substring(0, 3);
                }
            } catch (SecurityException securityException) {
                securityException.printStackTrace();
            }
        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: