1

我在 SO 上看到了很多关于此的问题。所有的答案都说不可能。Apple不允许这样做。

我正在使用iPhone 6s运行iOS 10.1.1

昨天我购买了新的 SIM 卡。打开时插入我的新 SIM 卡后WhatsApp。我得到一个屏幕,上面写着:

   `Your number has been changed. Do you want to use new number`

whatsapp 是如何做到的?

其次我安装了AirtelApp。当我打开应用程序时。它会自动获取我的电话号码并显示给我。

这些应用程序如何读取电话号码。

苹果是否添加了新方法iOS 10或者他们正在使用其他一些逻辑来这样做。

4

2 回答 2

1

有观察者subscriberCellularProviderDidUpdateNotifier

根据这里的文档

当用户的蜂窝提供商信息发生更改时,在默认优先级全局调度队列上调度的块对象。例如,如果用户在您的应用程序运行时将设备的 SIM 卡与其他提供商的 SIM 卡交换,就会发生这种情况。

要处理蜂窝服务提供商信息的更改,请在您的应用程序中定义一个块并将其分配给此属性。必须实现该块以支持从任何上下文调用。

这只是通知您您的 SIM 卡已更改。

关于您的第二个问题,您可以使用联系人应用程序获取号码Contacts.framework

于 2016-12-01T09:20:53.850 回答
0

ios 10 中的隐私发生了一些变化。如果您想访问应用程序中的联系人数据库,则必须将新密钥添加到 plist 文件中。

<key>NSContactsUsageDescription</key> <string>$(PRODUCT_NAME) want use you contacts</string>

于 2016-12-01T09:14:15.917 回答