2016-12-01 72 views
1

我看到了很多关于此问题的问题。所有答案都说这是不可能的。 Apple不允许这样做。如何阅读iOS 10.1.1中的电话号码 - 目标C/Swift

我使用iPhone 6siOS 10.1.1

昨天我跑我插入新的SIM当我打开WhatsApp之后购买新的SIM Card.Just。我得到一个屏幕,其中说:

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

whatsapp如何能够做到这一点?

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

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

苹果是否在iOS 10中增加了新的方法,或者他们正在使用其他逻辑来执行此操作。

回答

0

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

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

+0

如何导致得到的电话号码联系应用程序获得的数量。由于那里我只能得到其他联系方式 – Dalvik

+0

我认为@Rajat是正确的。他们使用'subscriberCellularProviderDidUpdateNotifier'来获取您的电话号码并与现有的WhatsApp数据库匹配。 – Poles

+0

@Poles我从没有提到'subscriberCellularProviderDidUpdateNotifier'你可以获得电话号码,这只是一个观察者,当你改变你的手机供应商 – Rajat

1

有一个观察者subscriberCellularProviderDidUpdateNotifier

按照该文档here

是在默认优先级全局 调度队列调度块对象当用户的手机供应商信息的变化。 例如,如果用户在应用程序运行时用另一个提供商提供的 卡交换设备的SIM卡,则会发生这种情况。

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

这只是通知你,你的SIM卡已被更改。

关于你提到的第二个问题,你可以使用Contacts.framework