2012-05-24 30 views
1

我有一個程序,每2分鐘使用GPS本地化一個人。爲此,代碼:GPS連續本地化在版本2.3.5(不在2.2)

private boolean flagLocalizacion = false; 
private LocationListener locationListener; 
private Location ultimaLocalizacion; 
private LocationManager locationManager; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    locationListener = new LocationListener() { 
     public void onLocationChanged(Location location) { 
      if (location!=null) { 
       if(ultimaLocalizacion == null && flagLocalizacion) { 
        ultimaLocalizacion = location; 
        Toast.makeText(getApplicationContext(), "Longitude: " + location.getLongitude() + "Latitude: " + location.getLatitude(), Toast.LENGTH_SHORT).show(); 
       } else if ((ultimaLocalizacion.getLatitude() != location.getLatitude() 
          || ultimaLocalizacion.getLongitude() != location.getLongitude()) && flagLocalizacion) { 
        ultimaLocalizacion = location; 
        Toast.makeText(getApplicationContext(), "Longitude: " + location.getLongitude() + "Latitude: " + location.getLatitude(), Toast.LENGTH_SHORT).show(); 
       }     
      } 
     } 
     public void onStatusChanged(String provider, int status, Bundle extras) {} 
     public void onProviderEnabled(String provider) { 
      System.out.println("gps"); 
     } 
     public void onProviderDisabled(String provider) { 
      System.out.println("No gps"); 
     } 
    };                 Button botonComenzar = (Button) findViewById(R.id.bComenzar); 
    botonComenzar.setOnClickListener(new OnClickListener() { 
     @SuppressWarnings("static-access") 
     public void onClick(View v) { 
      LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
      locationManager.requestLocationUpdates(locationManager.GPS_PROVIDER, 12000, 30, locationListener); 
      Toast.makeText(getApplicationContext(), "Activada Localizacion", Toast.LENGTH_SHORT).show(); 
      flagLocalizacion = true;  
     } 
    }); 

我的問題是:

這applicaction正常工作在2.2版本。但是,當我將它安裝在2.3.5的電話中時,軟件失敗,失敗的原因是持續不斷,而不是每2分鐘一次。你有想過爲什麼會發生這種情況嗎?

謝謝你。

+0

首先,不是2分= 120000ms而不是12000ms? 12000ms = 12s如果我的數學是正確的。 – praneetloke

回答

0

不管請求的minTime如何,連續的GPS刷新(即,具有1秒的GPS更新之間的間隔)是許多Android手機在JellyBean之前的已知問題。

就此問題與Android團隊的充分討論是在這裏:

https://android-review.googlesource.com/#/c/34230/

新CTSVerifier測試已經在Android中增加了4.1豆形軟糖應該避免這種情況發生在豆形軟糖及更高版本。

對於受此影響的設備預果凍豆,您唯一的解決方法是在您希望刷新GPS的任何時間間隔內手動取消註冊並重新註冊LocationListener。