0

我正在真实设备上测试我的应用程序,并null在 GPS 开启时获取位置。当我使用虚拟坐标在模拟器上进行测试时,它工作正常。怎么了?

locationManager = (LocationManager) context.getSystemService(context.LOCATION_SERVICE);
listener = new MyLocationListener();
viaGps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
viaNetwork = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!viaGps && !viaNetwork) {
    tracking = false;
} else {
    if (viaGps) {
        Log.d("", "gps is on");
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener);
        location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    }else if (viaNetwork) {
        Log.d("", "network is on");
        locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, listener);
        location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
    }
    if (location == null) {
        Log.d("", "location not fouond");
    }
4

2 回答 2

0

尝试使用它,它解决了我的问题

  double latitude = gps.getLatitude();
  double longitude = gps.getLongitude(); 

还要检查您的许可

  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
  <uses-permission android:name="android.permission.INTERNET"></uses-permission>
于 2013-03-11T15:09:00.337 回答
0

你需要一个 Location 监听器:

遵循文档

更新:

您也可以尝试这种简单的方法:在 Android 中获取用户当前位置的最简单、最可靠的方法是什么?

于 2013-03-11T14:40:28.933 回答