2013-09-12 1 views
1

Я использую приложение, которое использует функцию gps (используя AVD на Eclipse). Это приложение отлично работает, когда я помещаю координаты в DDMS, но если я вставляю точку, которая очень близка к предыдущей точке (20-30 м), событие onLocationChanged(Location loc) не вызывается (но приложение не падает. Если я вставьте новую точку, которая не так близка, четна правильно называется). Это проблема эмулятора? Или это проблема, вызванная методом requestLocationUpdates(...)? Мой код таков:GPS не работает на короткие расстояния

public class myActivity extends Activity 
{ 

    private TextView mytext; 
    private LocationManager locmgr = null; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     GPSListener gpsListener=newGPSListener(); 
     mytext = (TextView) findViewById(R.id.mytext); 

     //grab the location manager service 
     locmgr = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     locmgr.requestLocationUpdates(locmgr.GPS_PROVIDER, 10, 10, gpsListener); 

     mytext.setText("waiting for location"); 
    } 

    //Start a location listener 
    private class GPSListener implements LocationListener 
    { 
     public void onLocationChanged(Location loc) 
     { 
      //sets and displays the lat/long when a location is provided 
      String latlong = "Lat: " + loc.getLatitude() + " Long: " + loc.getLongitude(); 
      mytext.setText(latlong); 
     } 

    public void onProviderDisabled(String provider) 
    { 

    } 

    public void onProviderEnabled(String provider) 
    { 

    } 

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

    } 
} 
} 

ответ

1

Вы можете изменить минимальное расстояние при вызове метода requestLocationUpdates.

locmgr.requestLocationUpdates(locmgr.GPS_PROVIDER, 10, 2, gpsListener); 

Here - объяснение.

+0

Я уже пробовал это, но есть такая же проблема (может быть, потому, что я использую эмулятор) –

+0

Да, может быть. У меня нет другого мнения. – eluleci

+0

Считаете ли вы, что если я попробую приложение на реальном телефоне, оно может работать? Проблема в том, что мой телефон сломан, и сейчас я использую старый телефон. –

0

Я думаю, что это правильное поведение благодаря точности GPS. Другими словами, 20-30 м от текущей точки является той же позицией с точки зрения GPS

+0

I thouth это тоже. Разве нет способа изменить точность на эмуляторе? –