You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Android模拟器中修改TelephonyManager.getNetworkCountryIso输出?

如何在Android模拟器中修改地区以测试TelephonyManager.getNetworkCountryIso

嘿,很高兴听到你的位置判定功能运行得不错!针对你的问题,完全可以通过调整Android模拟器的设置来模拟美国以外的其他国家,进而测试TelephonyManager.getNetworkCountryIso()的输出。下面是几种实用的方法,你可以根据自己的场景选择:

  • 修改模拟器移动网络设置
    打开模拟器的「设置」,依次进入「网络和互联网」→「移动网络」(部分版本叫「蜂窝网络」)。找到「网络运营商」选项,切换到「手动选择网络」,这里会列出模拟器内置的虚拟运营商,选择对应国家的运营商(比如测试日本选带JP标识的,测试德国选DE相关的)。选完后重启模拟器,再调用TelephonyManager.getNetworkCountryIso()就能得到对应的国家代码了。

  • 用ADB命令强制设置
    确保你的电脑已经配置好ADB环境,且模拟器处于运行状态。打开终端/命令提示符,输入以下命令(以设置法国为例,国家代码为fr):

    adb shell settings put global network_country_code fr
    

    执行完命令后,要么重启模拟器的移动网络服务,要么直接重启模拟器,之后获取getNetworkCountryIso()的结果就会变成fr。注意:部分Android版本可能需要模拟器开启root权限才能生效,你可以在创建模拟器时勾选「启用root访问」,或者选择带Google APIs的镜像。

  • 创建新模拟器时指定地区
    打开Android Studio的AVD Manager,点击「Create Virtual Device」。在选择系统镜像步骤,挑选对应地区的镜像(比如选巴西的镜像,默认网络国家代码就是br)。完成创建后启动模拟器,默认的网络国家代码就会匹配所选地区,这种方式适合长期测试特定地区的场景。

小提示:有些Android版本会缓存网络国家代码,修改后建议先清除你的应用数据,再重启应用,确保能获取到最新的代码。

内容的提问来源于stack exchange,提问作者fayyaz

火山引擎 最新活动