私の携帯電話(Android)が地図上の特定のエリアに入ったかどうかを検出する必要があります-エリアは約300mx300mです。
電話の位置を取得すると、計算を行うことができます(これは簡単な部分のようです!)。電話をフォローして定期的に更新するための最善の戦略がわからないだけです。これは私がこれまでに持っているものです:
AlarmManagerは(現在)1分ごとに起動します...これを約10分以上にします。AlarmManagerは、15分未満の場所が任意のプロバイダー(GPSまたはネットワーク)から利用可能かどうかを確認します。利用可能な場所がない場合、または15分より古い場合は、単一の更新を要求します。
私はこれを持っています:
criteria.setAccuracy(Criteria.ACCURACY_COARSE);
criteria.setPowerRequirement(Criteria.POWER_LOW);
...それはネットワークプロバイダーを取り上げる可能性が高いですね。現時点ではあまり正確ではないようですが、現在、私の電話は途中に置かれています。
これは間違った戦略かもしれません。300m x 300mのエリア内には、WifiアクセスポイントとBluetoothポイントがあります。これらを使用して、電話が近くにあることを検出できますか?