如何更改Android模拟器中的移动国家/地区代码(MCC)?

neu*_*242 15 android mcc mobile-country-code android-emulator

我的Android应用程序需要对不同的移动国家代码做出不同的反应

它似乎是硬编码到mcc310(美国).我可以TelephonyManager.getSimCountryIso()通过使用资源文件夹来读取此值,res/values-mcc123/但是如何在模拟器中设置此值?

Esp*_*dal 14

要更改TelephonyManager.getSimCountryIso()返回的内容,只需执行即可

adb shell setprop gsm.sim.operator.iso-country no
Run Code Online (Sandbox Code Playgroud)

它现在返回否(挪威).

如果要更改TelephonyManager.getSimOperator()返回的内容(MCC + MNC),请执行

adb shell setprop gsm.sim.operator.numeric 24201
Run Code Online (Sandbox Code Playgroud)

并且您已将MCC更改为242(挪威),将MNC更改为01(Telenor).

要查看您可以更改的其他属性,请执行

adb shell getprop
Run Code Online (Sandbox Code Playgroud)

经验证,这可用于AVD和Genymotion.但是,这不会持久地更改这些属性.

  • 这可能需要使用更高的权限,即:使用`ADB shell`,`su`启动外壳,然后尝试什么@EspenRiskedal在他的职位提出.然后它对我有用 - 没有超级用户权限它没有. (2认同)

Sam*_*muh 0

在模拟器上:转到“设置”->“无线和网络”->“移动网络”->“接入点名称”。尝试更改设置的 APN 中的 MCC 值,然后尝试您的代码。