我正在创建一个使用用户位置的应用来确定向用户显示的数据。我正在使用TelephonyManager.getNetworkCountryIso(不是sim版本)来确定位置,它就像魅力一样。无论如何,我可以通过更改模拟器设置中的设置来进一步测试,这样我就可以让它相信手机在美国以外的其他国家/地区(默认)。
目前TelephonyManager.getNetworkCountryIso输出:“us”
注意:我知道getNetworkCountry也有一些缺点,但这是另一个讨论: - )
答案 0 :(得分:2)
您可以使用以下命令更改值:
adb shell
su
setprop gsm.operator.iso-country uk
在某些模拟器上,属性名称可能不同。
您可以按以下方式找到属性名称:
adb shell
getprop
它将为您提供类似于以下内容的数据:
...
[dalvik.vm.lockprof.threshold]: [500]
[dalvik.vm.stack-trace-file]: [/data/anr/traces.txt]
[dalvik.vm.usejit]: [true]
[dalvik.vm.usejitprofiles]: [true]
[debug.atrace.tags.enableflags]: [0]
[debug.force_rtl]: [0]
[dev.bootcomplete]: [1]
[drm.service.enabled]: [true]
[gsm.current.phone-type]: [1]
[gsm.defaultpdpcontext.active]: [true]
[gsm.network.type]: [LTE]
[gsm.nitz.time]: [1524141151210]
[gsm.operator.alpha]: [Android]
[gsm.operator.iso-country]: [us]
[gsm.operator.isroaming]: [false]
[gsm.operator.numeric]: [310260]
[gsm.sim.operator.alpha]: [Android]
[gsm.sim.operator.iso-country]: [us]
[gsm.sim.operator.numeric]: [310260]
[gsm.sim.state]: [READY]
[gsm.version.baseband]: [1.0.0.0]
[gsm.version.ril-impl]: [android reference-ril 1.0]
[hwservicemanager.ready]: [true]
[init.svc.adbd]: [running]
[init.svc.audio-hal-2-0]: [running]
[init.svc.audioserver]: [running]
[init.svc.bootanim]: [stopped]
[init.svc.camera-provider-2-4]: [running]
[init.svc.cameraserver]: [running]
...
通过复制文本文件中的输出来搜索iso-country
。获取属性名称并使用setprop <property name> <new iso>
您还可以使用getProp
来验证值是否已更改。