我有一台运行Android 5.1.1的Android IoT设备,运行在Rockchip RK3288上,顾名思义,它可以连接到WiFi网络,但没有全球定位系统或蜂窝模块。每当我试图访问位置并找到最好的位置提供商时,它总是将我作为一个“被动”提供商返回,因此我无法获得我的当前位置。
Criteria criteria = new Criteria();
provider = locationManager.getBestProvider(criteria, false);我有点困惑的是,这台设备有活动的网络连接,但NETWORK_PROVIDER不可用。
发布于 2017-06-07 15:45:58
试试谷歌地理定位API。
Google Geolocation API也使用wifiAccessPoints和cellTowers。正如你所说,设备没有全球定位系统和蜂窝模块,你需要使用WifiAccessPoints。
对于WifiAccessPoints,你需要传递所有离你最近的wifi连接数据。例如,在android中,当点击WIFI时,它会在你附近显示wifi列表。所以,你只需要将所有的wifi列表传递给WifiAccessPoints,这样它就会返回你的设备的位置。
您可以传递参数"considerIp":"true",以便使用您的Ip地址获取设备的当前位置。
就我的观点而言,Google Maps Geolocation API文档中也提到了通过IP地址获取当前位置,这会返回当前location.This的最高准确率。
有关更多信息,您可以参考Google Geolocation API,它还提供了示例数据,以便您可以在此处检查结果。
我希望这能给你一些提示,或者得到一些你真正想要实现的想法。
https://stackoverflow.com/questions/44405801
复制相似问题