使用 Cell Tower 的 Android 位置
Posted
技术标签:
【中文标题】使用 Cell Tower 的 Android 位置【英文标题】:Android location using Cell Tower 【发布时间】:2014-05-17 10:08:56 【问题描述】:如何使用手机信号塔检索我的位置?当 GPS 和 Wifi 关闭时。
我知道我可以检索塔的 cellID,但是如何映射它以获取我当前位置的纬度和经度?
我不在乎位置是否准确。
我找到了一些 sn-ps,但似乎在使用 wifi。
【问题讨论】:
您只能从信号塔中找到 CellId 和 Location Area Code(LAC)。通过使用该值,您可以在互联网的帮助下找到纬度和经度。 【参考方案1】: TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
GsmCellLocation cellLocation = (GsmCellLocation)telephonyManager.getCellLocation();
int cellid= cellLocation.getCid();
int celllac = cellLocation.getLac();
Log.d("CellLocation", cellLocation.toString());
Log.d("GSM CELL ID", String.valueOf(cellid));
Log.d("GSM Location Code", String.valueOf(celllac));
确保您在清单中拥有这些权限。
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
如果您真的想要实际位置,请使用 httpclient 或使用您的 cellid 和 lac 查询 http://www.google.com/glm/mmap。示例在此处列出。 http://www.anddev.org/poor_mans_gps_-celltowerid-_location_area_code_-lookup-t257.html
【讨论】:
@Mohammad Ali,感谢您更新变量名称。没看出他们错了。getCellLocation() is deprecated as of API 26: Android 8.0 (Oreo)
以上是关于使用 Cell Tower 的 Android 位置的主要内容,如果未能解决你的问题,请参考以下文章
Ansible Tower系列 四(使用tower执行一个命令)