1

mapViewとLocationManagerを使用してほんの少しのAndroidアプリを作成しています。LocationManagerはその場所をリッスンし、ユーザーが定義した許容範囲を超えて場所が変更された場合に通知する必要があります。LocationManagerが場所の変更に気付いた場合、SMSを送信する必要があります。

lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, Float.parseFloat(txtToleranz.getText().toString()), this);

ここで、メソッドrequestLocationUpdatesが常にテキストフィールドの現在の値を取得するのか、指定された開始値のみを取得するのかわかりません...?

また、アプリケーションはmapViewに自分の位置を表示する必要がありますが、位置が完全に間違っています...なぜですか?実際のデバイスでアプリを実行しています。

                double lat = location.getLatitude();
            double lng = location.getLongitude();

            String currentLocation = " Lat: " + lat + " Lng: " + lng + " Tol: " + Toleranz;
            point = new GeoPoint((int) lat * 1000000, (int) lng * 1000000);
            mapController.animateTo(point);
            mapController.setZoom(15);
            System.out.println(currentLocation);

助けてくれてありがとう!よろしくダニエル

4

1 に答える 1

0

this SO postによるとGeoPoint、正しく構築されていない可能性があり、これにより誤った場所が発生する可能性があります。に関してはLocationManagerrequestLocationUpdatesメソッドは 1 回だけ実行EditText'sされます。つまり、メソッドが実行されたときに値が取得され、指示しない限り更新されません。それを行うためのメソッドがLocationManagerクラス内にある場合があります。

編集

GeoPoint に関する部分は無視してください。さらに読むと、経度/緯度に 1000000 を掛けることは正しいです。

于 2012-06-04T15:51:26.780 に答える