我想知道我是否可以依赖Android上的国家/地区,MCC等电话值来为我的应用。我可以使用setprop在运行中更改它们吗?我尝试使用setprop进行更改,但似乎无法正常工作。根据我的理解,电话管理器是一个类/接口,代表GSM或CDMA的硬件配置。在GSM的情况下,这可以是SIM,并且在CDMA的情况下,它可以是硬件。我的问题是:
我无意更改任何这些值,但想了解它的工作原理!如果有人能帮助我,我将不胜感激。
答案 0 :(得分:2)
根据android文档
提供对有关电话服务的信息的访问权限 设备。应用程序可以使用此类中的方法来确定 电话服务和状态,以及访问某些类型的 订户信息。应用程序也可以注册一个监听器 接收电话状态变化的通知。
TelephonyManager用于阅读电话信息。关于您关于MCC& MNC代码:是的,当手机在其他国家/地区时,他们将更改。您可以订阅接收这些事件,并确定该用户现在位于不同的国家/地区。
答案 1 :(得分:1)
@Bo CDMA的工作方式与GSM不同。 CDMA总是有一个家庭基地和许多游客基地位置。并且您可以随时了解使用TelephonyManager方法的访客操作员,这被认为对CDMA来说是不可靠的。
答案 2 :(得分:0)
我决定将它添加为答案......
我找到了解决CDMA手机问题的方法..如果是CDMA手机,那么手机的ICC硬件总是与GSM中的SIM卡相当。您所要做的就是使用与硬件相关的系统属性。以编程方式,您可以使用Java反射来获取此信息。即使系统与GSM设备不同,这也是不可改变的。类c = Class.forName(“android.os.SystemProperties”);方法get = c.getMethod(“get”,String.class); String homeOperator =((String)get.invoke(c,“ro.cdma.home.operator.numeric”));