9

双卡手机getLine1Number()的退货方式是怎样的?TelephonyManagerLG Optimus Net Dual

4

3 回答 3

11

你只会得到一个号码......也许吧!

首先,您返回的数字取决于设备。

但同样重要的是,您是否会得到一个号码,以及这个号码是否会成为电话号码,完全无法预测。这取决于 SIM 和运营商。

在我的一个应用程序中,我开始尝试使用电话号码作为唯一 ID,因为我可以预期用户很容易回忆起这个号码。对于亚洲、澳大利亚和欧洲的大多数运营商来说,电话号码 (line1number()) 根本不存储在 SIM 卡上!对于其他人,您可能会得到一串零。或者以一种在本地可能有意义但可能会弄乱您的应用程序逻辑的方式格式化的数字。

于 2012-07-08T02:45:47.767 回答
2

Android 不支持双卡设备。请参阅:检测双 SIM 卡 Android 手机中两张 SIM 卡的状态

正如其他人所说,您可能会得到设备制造商的支持。

此外,不保证 getLine1Number() 返回电话号码。它只是返回运营商存储在卡中的内容,有些运营商不会费心填写该数字。因此,对于一些 sim 卡,这只会返回 null。

如果您提供您想要实现的目标的详细信息,我们可能会提供更好的解决方案。

于 2012-07-11T10:54:18.577 回答
0

默认 SDK 不支持处理双 SIM 手机。该函数将只返回一个数字,很可能来自第一张活动的 SIM 卡。

但是,制造商有时会提供用于处理这些事情的 SDK,您可能想看看这个。

于 2012-07-07T11:02:33.490 回答