0

ここで Commonwares LocationPoller のデモを見ました github.com/commonsguy/cwac-locpoll/

ここでは、LocationReceiverその場所が指定されたエリア内にあるかどうかを確認しています。その地域にない場合は、電話番号にテキスト メッセージ (SMS) を送信します。

ただし、特定の間隔ごとに新しい場所を受信するため、テキストメッセージ (SMS) を継続的に送信しています。だから私はクラス変数flag=0 を定義しました(最初に)

            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 を継続的に送信しています。私は何をすべきか ?

4

2 に答える 2

2

SharedPreferences を使用してメッセージを送信するときに UNIX タイムスタンプを保存して、次にブロードキャストが開始されたときに、そのタイムスタンプの存在を確認します。タイムスタンプが存在しないか、十分に古い場合にのみメッセージを送信し (実際の時間 - 保存されたタイムスタンプ >= 定義したしきい値)、メッセージを送信するときにタイムスタンプを更新または作成します。

于 2013-04-18T19:18:43.317 に答える