Оповещение о близости на Android с помощью addProximityAlert

Я хочу предупредить в моем приложении, когда пользователь приближается к определенному месту.

Поэтому я установил место, чтобы предупредить

    // 100 meter radius
    float radius = 100f;

    // Expiration is 10 Minutes (10mins * 60secs * 1000milliSecs)
    long expiration = 600000;

    Intent intent = new Intent(PROXIMITY_INTENT_ACTION);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), requestCode, intent, PendingIntent.FLAG_CANCEL_CURRENT);

    locationManager.addProximityAlert(lat, lon, radius, expiration, pendingIntent);

Всякий раз, когда устройство перемещается, метод называется обновлением местоположения.

public static final String PROXIMITY_INTENT_ACTION = "com.mycompanie.receivers.ProximityAlert";
@Override
public void onLocationChanged(Location location) {
    Log.d(TAG, "Location Device: " + location.getLatitude() + "," + location.getLongitude());
    Intent intent = new Intent(PROXIMITY_INTENT_ACTION);
    sendBroadcast(intent);
}

и вызывается метод onReceiver, однако переменная getting_closer всегда становится ложной, даже если поместить одно и то же место с помощью эмулятора или некоторого fakeGPS

public class ProximityAlert extends BroadcastReceiver {

public static final String EVENT_ID_INTENT_EXTRA = LocationManager.KEY_PROXIMITY_ENTERING;

   @Override
   public void onReceive(Context context, Intent intent) {
       Boolean getting_closer = intent.getBooleanExtra(EVENT_ID_INTENT_EXTRA, false);
       if (getting_closer)
        Log.d("Radius", "Hey, I just entered your radius!");
       else
        Log.d("Radius", "I just exited your radius!");
   }
}

Может кто-нибудь, пожалуйста, помогите мне?

0 ответов

Другие вопросы по тегам