我有一部双卡安卓手机。使用此解决方案,我检索了两个模拟人生的 IMEI 号码。
给定 IMEI 号码,我怎样才能找到每个 SIM 卡的电话号码?
有一些方法getDeviceIdGemini(int slotId)
,getSimStateGemini(int slotId)
可以找出每个 sims 的 IMEI 号码和状态。
我正在寻找一种类似的方法来读取 sim 的电话号码。
你不能。电话号码不是存储在 SIM 卡上,而是存储在运营商的服务器上。寻找TelephonyManager.getSubscriberId()
,这将为每个 SIM 提供唯一的 ID。
基本答案 - 无法获取您当前的电话号码。有些事情有时会奏效,但并非总是如此,也并非在所有运营商上都有效。
不,
Android 不支持双卡设备。
请参阅:检测双 SIM 卡 Android 手机中两张 SIM 卡的状态
因为 Android 不支持多个 SIM 卡,至少来自 SDK。
您可以联系您的设备制造商,看看他们是否有 SDK 插件或允许您访问第二张 SIM 卡的东西。可能是一个 API,可以帮助您获得所需的结果。
虽然您可以通过使用此链接了解设备的状态是否为双卡Android : 检查手机是否为双卡
使用反射,我查看了方法,TelephonyManager
发现了这个方法:int getLine1NumberGemini(int)
.
我试图调用它(getLine1NumberGemini(0)
对于第一个 sim 和getLine1NumberGemini(1)
第二个)。在这两种情况下,我都收到了一个空字符串。
但原因似乎是手机无法获取我的模拟市民的电话号码:
TelephonyManager.getLine1Number()
也返回空字符串。