2013-04-18 183 views
0

發送短信只有一次,我看到Commonwares LocationPoller演示這裏 github.com/commonsguy/cwac-locpoll/從廣播接收器

在這裏,在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; 
         } 
       } 
      } 

但它不能正常工作,它仍然不斷地發送短信。 我該怎麼辦?

回答

1

如果您需要發送短信,您可以使用持久性存儲來存儲狀態,並且每次您收到存儲器的通知檢查。

2

使用SharedPreferences發送消息時保存unix時間戳,以便在下次廣播被觸發時檢查是否存在所述時間戳。如果時間戳不存在或時間戳足夠長(實際時間 - 保存的時間戳> =您定義的某個Threshshold),則只發送消息,發送消息時更新或創建時間戳。

+0

在'MyPreference'中擴展'PreferenceActivity'如何在不使用XML的情況下添加首選項,如addPreferencesFromResource(R.xml.preferences); '由於其唯一的首選 – fz8975

+0

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

+0

@Machinaruis謝謝......但我怎麼看,如果時間戳存在與否>? – fz8975