Оповещение о близости на 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!");
}
}
Может кто-нибудь, пожалуйста, помогите мне?