【问题标题】:Locating phone using phone number使用电话号码定位电话
【发布时间】:2012-02-07 15:36:43
【问题描述】:

我想使用电话号码定位特定电话。谁能指导我应该怎么做?

【问题讨论】:

  • “定位电话”是什么意思?
  • 我的意思是我想获取特定手机的当前位置
  • 特定电话?哪一个?什么牌子?安卓?苹果手机?请更具体一些,并就您已经尝试或想要做的事情提供一些反馈。
  • 表示我想搜索的数字,例如。如果我想搜索这个号码的位置:+34-689-55-44

标签: android location


【解决方案1】:

位置需要有多准确?如果您想获得相当近似的结果,请查看android geolocation guide

仅通过电话号码获取位置要困难得多/没用。您可以按国家/地区代码缩小国家/地区范围,然后希望该国家/地区使用区号使其更容易一些。当然,这并不意味着手机是当前,即使在上述国家/地区代码中。

【讨论】:

  • 是的,我已经完成了,但我想从我的设备中找到另一个单元格,那么你知道我该如何实现它吗?
  • 我会忘记通过电话号码进行的。那里可能还有一些合法性问题。一个可行的架构可能是让两部手机运行您的应用程序,它们直接或通过服务器进行通信以相互发送它们当前的位置,或足够的信息来确定它们(来自上面的指南)。这甚至不涉及任何安全或隐私考虑。这是一项事业。
【解决方案2】:

你可以得到号码的前缀。例如,在西班牙,数字以 +34 开头。完整的电话号码可以是 +34-689-55-44

【讨论】:

    【解决方案3】:

    嗯,你不能简单地根据电话号码“定位”电话,几乎只有警察有资源这样做。

    但如果您的应用程序同时在两部手机上运行,​​您可能可以维持生计。您需要检索您尝试从中获取位置的手机的电话号码:

    TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
    mPhoneNumber = tMgr.getLine1Number();
    

    如果手机处于活动状态并且您的应用程序正在后台运行(可能是一项服务),您可以使用内置 GPS 或电话网络(不太准确)定位它,并将坐标发送回您需要的地方。这是一个例子:

    LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    double longitude = location.getLongitude();
    double latitude = location.getLatitude();
    

    这将不是最简单的过程,因为您可能希望在每次应用程序获得焦点时存储设备最后一次看到的位置,以便即使手机关机也能提供估计位置或者您的应用程序没有运行。因此,您必须建立一个具有安全性的强大服务器/数据库架构,因为您要处理的信息可能有些微妙。

    您还需要在清单中添加多个权限。

    【讨论】:

    • 用于您设备上的电话服务我想获取另一台设备的位置
    猜你喜欢
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 2018-05-17
    • 2012-01-03
    相关资源
    最近更新 更多