我远不是 Android 编程方面的专家,所以我不知道这是否可能,所以让我将我的疑问分成三个问题:
1) Android 应用程序是否有可能在先前给定的半径(例如 5 公里)内检测到 map 中安装了相同应用程序的所有其他 Android 设备?
2) 如果是,是否也可以显示他们的电话号码(当然要征得他们的同意)?
3) 一个有经验的 Android 程序员大约需要多少时间来做这件事?
最佳答案
回答你的问题
是的!可能提供
规定半径内的所有用户都应该启用 GPS,并且您应该将所有用户当前坐标的纬度/经度(或者至少应该定期保存最后已知的坐标)保存在数据库中。
要计算 5 公里半径,您可以使用 oracle 查询和函数,该函数会为您提供最接近的人列表。下面的函数为您提供了 2 个以公里为单位的地理坐标之间的距离。
create or replace FUNCTION CALC_DISTANCE (Lat1 IN NUMBER, Lon1 IN NUMBER, Lat2 IN NUMBER, Lon2 IN NUMBER) RETURN NUMBER IS -- Convert degrees to radians DEGTORAD NUMBER := 57.29577951; Radius NUMBER := 6387.7; BEGIN RETURN(NVL(Radius,0) * ACOS((sin(NVL(Lat1,0) / DegToRad) * SIN(NVL(Lat2,0) / DegToRad)) + (COS(NVL(Lat1,0) / DegToRad) * COS(NVL(Lat2,0) / DegToRad) * Cos(Nvl(Lon2,0) / Degtorad - Nvl(Lon1,0)/ Degtorad)))); END;
通过使用类似
SELECT * FROM USER_LIST WHERE CALC_DISTANCE(MY_LAT,MY_LONG, USER_LAT, USER_LONG) <=5 ;
的选择查询您可以细化最接近的用户列表并向请求信息的用户显示。这会耗尽电池电量,因此建议不要动态列出好友。相反,用户可以使用“查找用户”之类的东西,然后您的应用可以列出最近的用户。
通过 Android 应用程序获取电话号码取决于手机运营商和提供商。因此,我们无法保证自动获取手机号码并提供给其他用户。但是,如果您在用户首次登录时手动获取所有用户的手机号码,则这是可能的。然而,代码 fragment 可在此处获得 Programmatically obtain the phone number of the Android phone .但请注意,我们观察到,在大多数印度数字中,这是行不通的。
这取决于其他因素,我不是发表评论的合适人选!
关于android - 在 map 中检测电话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24181006/