1. GPS を使用して電話の位置を追跡し、それをファイルに保存する Android アプリケーションを構築しています。
コモンズウェアを使用して最初のものを実装しましLocationpoller
たが、2番目のものを実装する方法を知りたいです。
マップで特定のエリアを選択するにはどうすればよいですか? 電話がそのエリアの外にあるときにアラーム (またはイベント) を作成する方法は?
1. GPS を使用して電話の位置を追跡し、それをファイルに保存する Android アプリケーションを構築しています。
コモンズウェアを使用して最初のものを実装しましLocationpoller
たが、2番目のものを実装する方法を知りたいです。
マップで特定のエリアを選択するにはどうすればよいですか? 電話がそのエリアの外にあるときにアラーム (またはイベント) を作成する方法は?
実装する
It sends a SMS to a number when the phone goes out of a specified area.
たとえば、マップ上の現在の場所から 5 km の半径を決定できます。これで、現在の場所が共有設定に保存されました。サービスを実装します。ロケーション リスナーを使用します。そのため、onLocationChanged()が呼び出されると、新しい場所と共有設定に保存されている場所の間の距離を計算できます。決められたエリアを超える場合は、SMS を送信します。
うまくいきますように。
編集:あなたの男はコードの投稿を拒否しているので、いくつか見つけました。Android 2.2 以降で、プログラムでテキスト メッセージを送信する方法は次のとおりです。ユーザーがどこにいるかわからない場合は、次の情報も参考にしてください。
import android.app.Activity;
import android.os.Bundle;
import android.app.PendingIntent;
import android.content.Intent;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
Button btnSendSMS;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnSendSMS = (Button) findViewById(R.id.btnSendSMS);
btnSendSMS.setOnClickListener(new
View.OnClickListener() {
public void onClick(View v) {
sendSMS(System.getProperty("numberToSendTo"), “Hello my friends!”);
}
});
}
//---sends an SMS message to another device---
private void sendSMS(String phoneNumber, String message) {
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, null, null);
}
}
地理的エリアを指定するには、さまざまな方法があります。
いくつかの一般的なシナリオ:
1) 最も単純なもの: 中心と半径を持つ円。
2) 軸に平行な長方形
3) (閉じた) 多角形
それらすべてについて
、緯度/経度の座標ペアとして座標を保存します。
Gps fix から fix までisIside(area)
状態をチェックします。外側から内側に変化する場合は「EnterArea」、内側から外側に変化する場合は LeaveArea です。
LeaveArea を検出したら、SMS を送信します。
残っているのは、次の計算方法isInside(area)
です。
円の場合: 内側 =if (distanceMeters(currentPoint, circleCenter) <= radiusMeters)
長方形の場合: 各モバイル プラットフォームには、長方形内のポイント メソッドがあります。
多角形の場合: インターネットから pointInPolygon() を使用します。
内側の長方形と多角形の場合: 元の GPS (WGS84) 座標で計算できます。
内側の円の場合: distanceMeters
. 各プラットフォームは、2 つの緯度/経度座標間の距離を計算する方法を提供します。