Я недавно начал работать над приложением оповещений о близости. Это в основном меняет профиль мелодии звонка (просто вибрировать или мелодию изначально) в зависимости от местоположения пользователя GPS. Я закончил часть кодирования. При «входе» и «выходе» срабатывают оповещения о сближении, и выполняется код в зарегистрированном BroadcastReceiver. До этого момента все нормально. Фактическая проблема заключается в следующем (с моими примерами строк кода)
Я зарегистрировал один вещательный приемник для двух намеренных действий. Эти намеренные действия объявлены, как показано ниже,
public static final String INTENT_ACTION1 = "org.droidmania.action. PROXIMITYALERT ";
public static final String INTENT_ACTION2 = "org.droidmania.action. PROXIMITYALERT2 ";
И часть PendingIntent - как,
private void setProximityAlerts (String intentAction) {
Намерение намерение = новое намерение ();
intent.setAction (intentAction);
// в случае вызова из HomeActivity intentAction будет INTENT_ACTION1, иначе INTENT_ACTION2
PendingIntent pIntent = PendingIntent.getBroascast (context, 0, intent,
PendingIntent.FLAG_CANCEL_CURRENT);
locationManager.addProximityAlert (широта, долгота, vRadius, -1, pIntent);
}
Теперь код BroadcastReceiver,
класс ProxyReceiver расширяет BroadcastReceiver {
@Override
public void onReceive (контекстный контекст, намерение намерения) {
boolean isEnter = intent.getBooleanExtra (KEY_PROXIMITY_ENTERING, false);
if(isEnter){
**//if user is in Home location**
if(intent.getAction().equals(INTENT_ACTION1)){
give the notification that user is in home area
}
**//if user is in Office location**
if(intent.getAction().equals(INTENT_ACTION2)){
give the notification that user is in office area
}
}
еще {
// если пользователя нет дома
если (intent.getAction (). равно (INTENT_ACTION1)) {
дать уведомление, что пользователь находится вне дома
}
// если пользователя нет в офисе
если (intent.getAction (). (равно INTENT_ACTION2)) {
дать уведомление, что пользователь находится вне офиса
}
}
}
Я тестировал это на своем мобильном устройстве,
В доме я установил местоположение GPS с радиусом 10м. Он дал мне уведомление, что «пользователь находится в домашней зоне»
Оно показывало сообщение "пользователь вышел из домашней зоны", когда я был вне этого радиуса.
Теперь, когда я нахожусь в офисе, я устанавливаю местоположение GPS с радиусом 5 метров. Таким образом, он дал мне уведомление, что «пользователь находится в офисе». Но здесь я сталкиваюсь с фактической проблемой , так как она показывает и сообщения «Вход в домашнюю зону» и «Вход в офис» и «Выход из домашней зоны» и «Выход из офиса» для каждых 2 1 минута перерыва. Я не понимаю, почему это происходит. (Даже я не двигаюсь вокруг после того, как я установил местоположение офиса GPS ... просто оставаясь там в той же точке ...... сидя на своем рабочем месте в офисе ... )
Я что-то упускаю или даю здесь что-то еще? Почему оповещения происходят из-за близости дома, так как я давно не выходил из дома?
Ребята, пожалуйста, помогите мне (я уже потратил 2 недели времени :-(). Спасибо за помощь.
Спасибо.