我在Rockchip RK3288上安装了运行Android 5.1.1的Android IoT设备,顾名思义可以连接到WiFi网络,但没有GPS或蜂窝模块。每当我尝试访问位置并找到最佳位置提供商时,它总是将我作为“被动”来回复。提供者,因此我无法获得我当前的位置。
Criteria criteria = new Criteria();
provider = locationManager.getBestProvider(criteria, false);
我有点困惑的是,该设备具有有效的网络连接,但NETWORK_PROVIDER
不可用。
答案 0 :(得分:1)
试用Google Geolocation API。
Google Geolocation API也使用 wifiAccessPoints 和 cellTowers 。正如您所说设备没有GPS和蜂窝模块,您需要使用WifiAccessPoints。
对于WifiAccessPoints,您需要传递所有最近的WiFi连接数据。对于E.g在android中点击WIFI时它会显示你附近的wifi列表。因此,您需要将所有wifi列表传递给WifiAccessPoints,以便返回设备的位置。
您可以传递参数“ConsideIp”:“true”,因此使用您的IP地址可获取设备的当前位置。
对于我的意见,请使用通过IP地址获取当前位置,该位置返回当前位置的最高准确率。Google Maps Geolocation API文档也说明了这一点。
有关详细信息,请参阅Google Geolocation API,其中还提供了示例数据,以便您可以从此处查看结果。
我希望这会给你一些提示或者想要实现你想要实现的目标。