我目前正在开发一个cordova网络应用程序.
我想知道像Runkeeper这样的应用程序如何向我显示我的地址簿的联系人,这些联系人也在使用Runkeeper.每个联系人都有一个小电话符号,所以我猜这个链接是通过电话号码建立的.
Runkeeper从来没有得到我或我朋友的电话号码,但是SIM卡无法读取.
我能想到的唯一可能的方法是,Runkeeper从AccountManager读取我的其他帐户并使用我的WhatsApp-ID建立连接...
有人知道这是怎么回事吗?我可以在我的cordova应用程序中做到吗?
Runkeeper根据他们自己的网站读取您的联系人信息。当您安装应用程序时,他们会将您的安装信息以及您的号码或源自您号码的内容(例如加密版本)存储在数据库中。
当您想知道谁拥有该应用程序时,他们会对您的联系人号码进行相同的加密,并与他们拥有的内容相关联。
例如:
User1 : [Phone 1234]
User2 : [Phone 2341]
User3 : [Phone 3412]
Run Code Online (Sandbox Code Playgroud)
User1 安装应用程序,Runkeeper 将其号码的 sha1(加盐或未加盐)存储在他们的数据库中:
Runkeeper database of installs:
7110eda4d09e062aa5e4a390b0a572ac0d2c0220
Run Code Online (Sandbox Code Playgroud)
User2 安装应用程序,Runkeeper 将其号码的 sha1 存储在数据库中:
Runkeeper database of installs:
7110eda4d09e062aa5e4a390b0a572ac0d2c0220 <-user1
52c88b165a3a614a5e3ceac0074bad92d5bb1c0a <-user2
Run Code Online (Sandbox Code Playgroud)
当 User2 加载显示他正在使用该应用程序的联系人的活动时,Runkeeper 会读取您的联系人,然后对于每个联系人,他们都会联系其数据库并进行关联,而无需将您的电话号码或联系人发送到外部。
免责声明
这是一个示例方法,我不知道他们是否这样做。为了清楚起见,它过于简化了。
后续行动 虽然您可能从未向应用程序提供过电话号码,但这并不一定意味着它还没有。自己测试一下这个答案中的代码,检查它是否可读
显然 opSettings / About Phone / Status / My phone Number是空的,谷歌帐户电话号码也是空的,这将是访问它的另一种方式。
| 归档时间: |
|
| 查看次数: |
1013 次 |
| 最近记录: |