【发布时间】:2014-05-26 10:22:51
【问题描述】:
我目前正在为摩洛哥的特定网络运营商开发一个需要不同资源的应用。该运营商的 MNC 为“00”。因此,根据文档,我使用了资源限定符,例如:
- drawable-mcc604-mnc00
- drawable-mcc604-mnc00-hdpi
- 等
但是,当我在这个网络运营商的设备上尝试这个应用程序时,资源限定符不起作用:资源仍然是“默认”资源。
所以我进一步挖掘并发现了一种行为,据我所知,这似乎是不可思议的。据我所知,SDK 提供了两种获取 MNC 的方法:通过 Configuration API 或通过 TelephonyManager API。
- 通过配置 API:字段 mnc 为 0(而不是所谓的 MNC_ZERO),根据文档,它本身不是“0”,而是未定义(尽管字段 mcc 是 604,这是正确的)李>
- 通过 TelephonyManager API:getSimOperator() 方法返回 100% 正确的“60400”
所以它提出了几个问题:
- 为什么那些 API(看起来语义相同)会产生不同的结果?
- 为什么字段 Configuration.mnc 是 int 而不是 String?因为我不确定如何在 int 字段中表示“00”……或者如何区分“00”和“000”,甚至“01”和“001”,它们都是有效的并且不同的跨国公司价值观。
-
最重要的是,在决定使用默认资源还是合格资源时,Android 依赖于这些 API 中的哪一个(如果不是第三个)?
- 注意 1:我在另一个特定的运营商网络上测试了同样的东西,它运行良好,所以似乎 MNC“00”是这里的主要关注点
- 注意 2:我正在法国进行测试,因此我处于漫游状态
提前感谢您的提醒。
【问题讨论】:
标签: android networking configuration operator-keyword sim-card