2013-04-18 5 views
0

Я видел Commonwares LocationPoller демо здесь github.com/commonsguy/cwac-locpoll/Отправить SMS только один раз из BroadcastReceiver

Вот в LocationReceiver я проверяю ли расположение в определенном районе или нет. Если в этой области нет, отправлю текстовое сообщение (SMS) на номер телефона.

Но он непрерывно посылает текстовые сообщения (SMS), поскольку он получает новое местоположение в каждый конкретный интервал. Поэтому я определил класс varible flag = 0 (Initally)

  public class LocationReceiver extends BroadcastReceiver { 
       int flag=0; 
      public void onReceive(Context context, Intent intent) { 

      ............ 


      if(flag==0) //center of campus 
         { 
          checkArea(loc,"500","22.599669","72.820473","5556","Your ward is out of College campus"); 
          Toast.makeText(context, "You Have Moved out",Toast.LENGTH_SHORT); 
          flag=1; 
         } 
       } 
      } 

Но он не работает, он по-прежнему посылает SMS непрерывно. Что мне делать?

ответ

1

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

2

Сохраните временную метку unix, когда вы отправляете сообщение с использованием SharedPreferences, поэтому при следующем запуске трансляции вы проверяете наличие указанной метки времени. Вы отправили бы сообщение только в том случае, если временная метка не существует или она достаточно старая (фактическое время - сохраненная временная метка> = Определяет значение Threshshold), обновление или создание метки времени при отправке сообщения.

+0

В 'MyPreference' extends' PreferenceActivity' как добавить предпочтение без использования XML, например 'addPreferencesFromResource (R.xml.preferences); 'Поскольку это единственное предпочтение – fz8975

+0

SharedPreferences! = PrefenceActivity. http://www.vogella.com/articles/AndroidFileBasedPersistence/article.html – Machinarius

+0

@Machinaruis Спасибо ... Но как мне узнать, существует ли временная метка или нет? – fz8975

Смежные вопросы