我目前正在开发一个 cordova 网络应用程序。
我想知道像 Runkeeper 这样的应用程序如何向我显示我的地址簿中的联系人,这些联系人也在使用 Runkeeper。每个联系人上都有一个小电话符号,所以我猜链接是通过电话号码以某种方式建立的。
Runkeeper 从未获得过我或我 friend 的电话号码,而且无法从 SIM 卡中读取。
我能想到的唯一可能的方法是,Runkeeper 从 AccountManager 读取我的其他帐户并使用我的 WhatsApp-ID 建立连接...
有人知道这是怎么发生的吗?我也可以在我的 cordova 应用程序中这样做吗?
最佳答案
Runkeeper 读取您的联系人as per their own website .当您安装该应用程序时,他们会将您的安装与您的号码或源自您号码的内容(例如加密版本)一起存储在他们的数据库中。
当您想知道谁拥有该应用程序时,他们会对您的联系人号码进行相同的加密,并与他们拥有的内容相关联。
例如:
User1 : [Phone 1234]
User2 : [Phone 2341]
User3 : [Phone 3412]
用户 1 安装应用程序,Runkeeper 在他们的数据库中存储他的号码的 sha1,无论是否加盐:
Runkeeper database of installs:
7110eda4d09e062aa5e4a390b0a572ac0d2c0220
用户 2 安装应用程序,Runkeeper 将其号码的 sha1 存储在他们的数据库中:
Runkeeper database of installs:
7110eda4d09e062aa5e4a390b0a572ac0d2c0220 <-user1
52c88b165a3a614a5e3ceac0074bad92d5bb1c0a <-user2
当 User2 加载向他显示他正在使用该应用程序的联系人的 Activity 时,Runkeeper 会读取您的联系人,然后对于每个联系人,他们会联系他们的数据库并进行关联,而无需将您的电话号码或您的联系人发送到外部.
免责声明
这是一个示例方法,我不知道他们是不是这样做的。为了清楚起见,它被过度简化了。
跟进 虽然您从未向应用程序提供电话号码可能是真的,但这并不一定意味着它已经没有。自己测试 this answer 中的代码检查它是否可读
显然 op 的 Settings/About Phone/Status/My phone Number
是空的,谷歌帐户电话号码也是空的,这将是另一种访问方式。
关于android - 应用程序如何获取我的电话号码以查找 friend ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36558881/