Я хотел бы использовать Android Proximity Alert для моего приложения для гаражных ворот.У меня есть кнопка настройки, которая при нажатии добавляет предупреждение о близости и начинает отслеживать местоположение.Я хочу, чтобы он отслеживался бесконечно, пока я не войду или не выйду из близости.При входе в него откроется дверь гаража, при выходе из него закроется дверь гаража, после чего я удаляю оповещение о близости и GPS отключается.У меня он работает почти идеально.
Проблема в том, что, когда я нажимаю кнопку, находясь на подъездной дорожке, а значит, в непосредственной близости, цель всегда срабатывает немедленно, когда для дополнительного KEY_PROXIMITY_ENTERING установлено значение "вход".Если я начинаю трекинг за пределами близости, он работает как положено, срабатывает только после того, как я вхожу в близость.Как я могу выйти из близости, если начать работать в ней таким же образом?Заранее спасибо, вот мой код.
В моей деятельности:
float radius = 100f;
double lat = 37.422;
double lon = -122.084;
// Expiration is 10 Minutes
long expiration = 600000;
LocationManager locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Intent intent = new Intent(proximityIntentAction);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 1, intent, PendingIntent.FLAG_CANCEL_CURRENT);
locManager.addProximityAlert(lat, lon, radius, expiration, pendingIntent);
А вот мой BroadcastReceiver:
public void onReceive(Context context, Intent intent)
{
Log.v("SomeTag","Proximity Alert Intent Received");
String direction = LocationManager.KEY_PROXIMITY_ENTERING;
CharSequence text = direction;
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, "going: "+text, duration);
toast.show();
LocationManager locManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 1, intent, PendingIntent.FLAG_NO_CREATE);
locManager.removeProximityAlert(pendingIntent);
}