0

さて、私のアプリは GPS トラッカー アプリのようなものです。

ユーザーがソースから目的地に移動している場合、ユーザーが目的地に到達するまで5〜7分後にGPSの位置を取得し、その位置のテキストメッセージを指定された番号に送信し続けたい.

私の質問は、ユーザーがアプリケーションを閉じた後にユーザーの場所を取得してメッセージを送信するにはどうすればよいですか?

ユーザーはアクティビティに送信元と送信先を入力し、ボタンをクリックしてテキスト メッセージを送信すると、アプリケーションが閉じます。

これはandroidのサービスクラスを使えば解決できると思いますが…どうやって使えばいいのかよくわかりませんでした。

4

1 に答える 1

1

特定の時間間隔で GPS 位置を取得するためrequestLocationUpdates()のクラスの使用。LocationManager参考までに調べてみてください

1 分ごとに緯度と経度でユーザーの現在の位置を取得する次のコード スニペットを参照してください。

public Location getLocation() {
    Location location = null;
    try {
        LocationManager locationManager = (LocationManager) mContext.getSystemService(LOCATION_SERVICE); 
        // Getting GPS status
        boolean isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
        // If GPS Enabled get lat/long using GPS Services

        if (isGPSEnabled) {
            if (location == null) {
                locationManager.requestLocationUpdates( 
                    LocationManager.GPS_PROVIDER, 
                    MIN_TIME_BW_UPDATES, 
                    MIN_DISTANCE_CHANGE_FOR_UPDATES,
                    this
                );

                if (locationManager != null) {
                    location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
                    if (location != null) {
                        latitude = location.getLatitude(); 
                        longitude = location.getLongitude(); 
                    }
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return location;
} 

を取得した後、詳細なアドレスを取得するためLatitudeLongitude使用します。Geocoder

public List<Address> getCurrentAddress() {
    List<Address> addresses = new ArrayList<Address>();
    Geocoder gcd = new Geocoder(mContext,Locale.getDefault());
    try {
        addresses = gcd.getFromLocation(latitude, longitude, 1);
    } catch (IOException e) {
        e.printStackTrace();
    }
    return addresses;
}

編集:

上記のすべての機能をクラスでextends Service実行して、appln が閉じていてもユーザーの位置を追跡できるようにします。サンプルについては以下を参照してください

public final class LocationTracker extends Service implements LocationListener {
    // Your code here
}
于 2013-08-03T08:25:51.907 に答える