0

我正在开发一个简单的应用程序来监控 GPS 速度。今天早上我安装了几个 GPS 定位器来测试我的应用程序,但似乎没有一个运行良好。卸载所有这些并且(我不知道这是否相关)现在当我使用 ADB 在 N4 上调试我的应用程序时,当我调用 .requestLocationUpdates 时 GPS 不会打开。gps 图标未显示在通知栏中,也未检索到任何数据,永远不会调用 onLicationChanged 并且启用的函数 .isProvider 返回 false..

我将我的应用程序完全重构为最简单的形式。我直接在 onCreate 覆盖上调用从 android.developper 文档复制的代码。

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
setContentView(R.layout.activity_speed_monitoring);
// Acquire a reference to the system Location Manager
LocationManager locationManager = (LocationManager) this .getSystemService(Context.LOCATION_SERVICE);
// Define a listener that responds to location updates
LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {

        location.getLatitude();
        Toast.makeText(getApplicationContext(), "Current speed:" + location.getSpeed(), Toast.LENGTH_SHORT).show();
    }
    public void onStatusChanged(String provider, int status, Bundle extras) { }
    public void onProviderEnabled(String provider) { }
    public void onProviderDisabled(String provider) { }
};
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 1000, locationListener); 
}

现在我想知道这是否与我的代码或我的 android 设备有关,或两者兼而有之。测试了谷歌地图,它触发了 GPS 图标并毫无问题地找到我的位置,我现在正在 android 模拟器上测试它,会不断更新。

哦,还有,我正在取消安卓工作室。

谢谢你。

编辑: GPS 图标在模拟器上被触发,可能是我手机中的设置,但什么会导致这种情况?为什么其他 GPS 应用程序可以工作?

编辑 2:我的应用程序在模拟器上运行良好,通过 telnet geo fix 更新位置,一切都像魅力一样工作。

4

2 回答 2

0

这可能无法完全回答您的问题,但可能会有所帮助:

  1. 对于测试 GPS 相关代码,我建议您尝试http://www.genymotion.com/,它是目前最快的 Android 模拟器,它有一个很酷的 GPS 测试小部件,完全值得(有免费版本)。
  2. 确保您拥有正确的 Android 权限ACCESS_COARSE_LOCATION,即ACCESS_FINE_LOCATION
  3. 请注意,您LocationListener将仅在活动运行时存在。这可能不是您想要的,您可能应该考虑在其他地方注册位置更改。
  4. 还可以尝试从onStatusChanged、记录结果onProviderEnabledonProviderDisabled并查看那里是否有任何相关信息。
  5. 最后,看看这个问题LocationListener of NETWORK_PROVIDER is enabled but , onLocationChanged is never called
于 2014-06-19T14:09:43.223 回答
0

可能有一个非常简单的解决方案,很抱歉您已经考虑过这个问题,但重启手机有时对我来说很神奇。

一点解释:我在位置感知服务上工作了几个月,我也偶然发现了这些错误。似乎谷歌在某些时候会在后台更新它的库,只有重新启动才能让它再次工作。我有 6 部 Nexus5 手机出现完全相同的错误,重新启动后所有这些手机都完成了这项工作。

于 2014-06-19T14:21:41.257 回答