Недавно я начал работать над приложением для оповещений о сближении. Это в основном изменяет профиль мелодии звонка (просто вибрация или мелодия звонка изначально) в зависимости от местоположения пользователя по GPS. Я завершил кодирование. При "входе" и "выходе" срабатывают предупреждения о сближении, и выполняется код в зарегистрированном BroadcastReceiver. До этого момента все в порядке. Актуальная проблема заключается в следующем (с моими примерами строк кода)
Я зарегистрировал один широковещательный приемник для двух действий Intent. Эти действия намерения объявлены следующим образом: public static final String INTENT_ACTION1 = "org.droidmania.action. PROXIMITYALERT"; общедоступная статическая финальная строка INTENT_ACTION2 = "org.droidmania.action. PROXIMITYALERT2";
И часть PendingIntent выглядит так:
private void setProximityAlerts (String intentAction) {намерение намерения = новое намерение (); intent.setAction (намерение); // в случае вызова из HomeActivity intentAction будет INTENT_ACTION1 иначе INTENT_ACTION2
PendingIntent pIntent = PendingIntent.getBroascast (контекст, 0, намерение, PendingIntent.FLAG_CANCEL_CURRENT);
locationManager.addProximityAlert (широта, долгота, vRadius, -1, pIntent); }
Теперь код BroadcastReceiver,
класс ProxyReceiver расширяет BroadcastReceiver {@Override public void onReceive (контекст контекста, намерение намерения) {
логическое 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
}
} else {// если пользователь находится вне дома
if (intent.getAction (). equals (INTENT_ACTION1)) {
уведомляет о том, что пользователь находится вне дома} // если пользователь находится вне офиса if (intent.getAction (). equals (INTENT_ACTION2)) {уведомляет о том, что пользователя нет в офисе}}}
Вот так я тестировал это на своем мобильном устройстве,
Дома я установил местоположение gps с радиусом 10 м. Он дал мне уведомление, что "пользователь находится в домашней зоне"
Он показывал сообщение «пользователь покинул домашнюю зону», когда я находился вне этого радиуса действия.
Теперь, когда я нахожусь в офисе, я устанавливаю местоположение gps с радиусом 5 м. Так что он дал мне уведомление, что «пользователь находится в офисе». Но здесь я столкнулся с реальной проблемой, так как на каждые 2 сообщения отображаются сообщения и «вход в домашнюю зону», и «вход в офисную зону», и «выход из домашней зоны» и «выход из офисной зоны». или перерыв в 1 минуту (ы). Я не понимаю, почему это происходит. (Даже я не двигаюсь после того, как установил GPS местоположения офиса ... просто остаюсь там в той же точке ... Сидя на своем рабочем месте в офисе ... .)
Я что-то упускаю или даю здесь что-то лишнее? Почему появляются предупреждения о приближении к дому, если я давно не выходил из дома?
Ребята, помогите, пожалуйста (я потратил уже 2 недели :-(). Ваша помощь очень ценится.
Спасибо.