【问题标题】:Android MNC API differences : Configuration.mnc / TelephonyManager.getSimOperator()Android MNC API 差异:Configuration.mnc / TelephonyManager.getSimOperator()
【发布时间】: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”

所以它提出了几个问题:

  1. 为什么那些 API(看起来语义相同)会产生不同的结果?
  2. 为什么字段 Configuration.mnc 是 int 而不是 String?因为我不确定如何在 int 字段中表示“00”……或者如何区分“00”和“000”,甚至“01”和“001”,它们都是有效的并且不同的跨国公司价值观。
  3. 最重要的是,在决定使用默认资源还是合格资源时,Android 依赖于这些 API 中的哪一个(如果不是第三个)?

    • 注意 1:我在另一个特定的运营商网络上测试了同样的东西,它运行良好,所以似乎 MNC“00”是这里的主要关注点
    • 注意 2:我正在法国进行测试,因此我处于漫游状态

提前感谢您的提醒。

【问题讨论】:

    标签: android networking configuration operator-keyword sim-card


    【解决方案1】:

    【讨论】:

    • 嗯,这并没有回答任何问题......或者是吗? “尝试 MNC_ZERO”到底是什么意思?无论如何,我很清楚这种特殊性,尽管我在最初的帖子中没有提到它。
    • 这是答案蚂蚁它是工作。也许我可以为您找到示例代码,但稍后。
    猜你喜欢
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 2020-08-24
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多