2010-07-04 2 views
2

У меня есть приложение для измерения скорости и будет определять, когда пользователь идет выше или ниже определенной скорости. Должен ли я постоянно следить за скоростью или я могу создать событие?Есть ли там Android-листер для скорости?

ответ

0

Нет никакого события для скорости, вам нужно было бы рассчитать его и прозвучать «сигнал тревоги» всякий раз, когда скорость превысит порог.

2

Вам необходимо отслеживать изменения местоположения, и когда вы получаете сигнал тревоги его, вам нужно проверить, если текущее местоположение hasSpeed()

/** 
* 
*/ 
private void requestUpdates() { 
    locMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 

    // loop through all providers, and register them to send updates 
    List<String> providers = locMan.getProviders(false); 
    for (String provider : providers) { 
     Log.e("birthdroid", "registering provider " + provider); 
     long minTimeMs = 5 * 60 * 1000;// 5 minute interval 
     float minDistance = Application.LOCATION_HOT_RADIUS_IN_METERS; 
     locMan.requestLocationUpdates(provider, minTimeMs, minDistance, 
       getIntent()); 
    } 

} 

/** 
* convenient method to get pending intent 
* @return 
*/ 
private PendingIntent getIntent() { 
    Intent intent = new Intent(this, LocationReceiver.class); 
    return PendingIntent.getBroadcast(
      getApplicationContext(), 0, intent, 0); 
} 

и приемник может быть

public class LocationReceiver extends BroadcastReceiver { 

    /* 
    * (non-Javadoc) 
    * 
    * @see android.content.BroadcastReceiver#onReceive(android.content.Context, 
    * android.content.Intent) 
    */ 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     try { 
      Bundle b = intent.getExtras(); 
      Location loc = (Location) b 
        .get(android.location.LocationManager.KEY_LOCATION_CHANGED); 
      if (loc != null) { 


      } 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
}