2013-03-06 95 views
0

我开发了一个基于GPS的android应用程序。 尽管该应用程序对所有其他设备都能正常工作,但位置监听器在Galaxy Note 2设备中失败。Android GPS LocationListener没有响应Galaxy Note 2

启用GPS:

 if (locationManager == null) { 

     locationManager = (LocationManager) this 
       .getSystemService(Context.LOCATION_SERVICE); 
    } 
    if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) 
      && !locationManager 
        .isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { 
     _objSLM.isGPSEnable = false; 
    } 

    startService(new Intent(this, SLGPSService.class)); 

附加监听器:

 if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { 

     locationManager.requestLocationUpdates(
       LocationManager.NETWORK_PROVIDER, 0, 100, locationListener); 

    } 

    if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { 

     locationManager.requestLocationUpdates(
       LocationManager.GPS_PROVIDER, 0, 100, locationListener); 

    } 
    if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) 
      && !locationManager 
        .isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { 

     try { 

      locationManager.requestLocationUpdates(
        LocationManager.NETWORK_PROVIDER, 0, 100, 
        locationListener); 

     } catch (Exception e) { 

     } 

     try { 
      locationManager.requestLocationUpdates(
        LocationManager.GPS_PROVIDER, 0, 100, locationListener); 

     } catch (Exception e) { 

     } 
    } 

位置监听器:

  LocationListener locationListener = new LocationListener() { 

    public void onStatusChanged(String provider, int status, Bundle extras) { 

     Log.v(TAG, "**********=======Status=" + status); 

    } 

    public void onProviderEnabled(String provider) { 

     // _objSLM.isGPSEnable = true; 

     if (locationManager.isProviderEnabled(provider)) { 

      if (locationManager.getLastKnownLocation(provider) != null) { 

       _objSLM.curLocation = locationManager 
         .getLastKnownLocation(provider); 

       _objSLM.isGPSEnable = true; 

       if (_objSLM.prevLocation == null) { 

        _objSLM.prevLocation = _objSLM.curLocation; 
       } 
      } 
     } 
     if (locationManager.isProviderEnabled(provider)) { 

      if (locationManager.getLastKnownLocation(provider) != null) { 

       _objSLM.curLocation = locationManager.getLastKnownLocation(provider); 

       _objSLM.isGPSEnable = true; 

       if (_objSLM.prevLocation == null) { 

        _objSLM.prevLocation = _objSLM.curLocation; 

       } 
      } 
     } 

    } 

    public void onProviderDisabled(String provider) { 

     _objSLM.isGPSEnable = false; 
    } 

    public void onLocationChanged(Location location) { 

     Log.v(TAG, location.getLatitude() + "==" + location.getLongitude()+=================onLocationChanged()"); 

     if(location.getProvider().equals(LocationManager.GPS_PROVIDER)){ 

      _objSLM.curLocation = location; 
      _objSLM.isGPSEnable = true; 
     } 


     if (_objSLM.prevLocation == null) { 

      _objSLM.prevLocation = _objSLM.curLocation; 

     } 
    } 
}; 

权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

<uses-permission android:name="android.permission.INTERNET" /> 

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

回答

0

可能这不是你的问题,这是设备特定的问题。

你必须检查安卓版本并更新你的manifest.xml文件。

+0

这是设备问题。无法获取GPS卫星数据。 – 2013-03-12 07:06:03