3

私はこの投稿を使用しています : Android でユーザーの現在の場所を取得する最も簡単で堅牢な方法は何ですか? デバイスの現在の場所を取得します。そして私のコードは次のとおりです。

locationResult = new LocationResult() {

        @Override
        public void gotLocation(Location location) {
            if (location != null) {
                latitude = location.getLatitude();
                longitude = location.getLongitude();
            }

        }
    };

    myLocation = new MyLocation();
    myLocation.getLocation(this, locationResult);
    mapController = mapView.getController();
    point = new GeoPoint((int) (latitude * 1E6), (int) (longitude * 1E6));
    mapController.animateTo(point);
    Toast.makeText(getApplicationContext(), ("Latitude = "+latitude+" Longitude = "+longitude), Toast.LENGTH_SHORT).show();
    mapController.setZoom(17);
    mapView.invalidate();

緯度と経度は、グローバル double 型変数として宣言されます。しかし、アプリケーションを実行した後、ブルー スクリーンが表示されます。問題は、私のコードが緯度と経度の値を取得できないことだと思います。誰でも私を助けてもらえますか?ありがとう 。

4

1 に答える 1

4

あなたの問題は、あなたのコードの実際の問題を私に感じさせませんが、デバイスの現在の場所を取得することが本当に必要な場合は、ヒントを与えることができます.

ヒント:デバイスの位置が変更された場合に緯度と経度の値を取得できる位置リスナーを使用してみてください。

コード:

あなたの活動

  LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
  LocationListener mlocListener = new MyLocationListener();
  mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);

あなたのリスナークラス

@Override
      public void onLocationChanged(Location loc){
       //you are getting values
        loc.getLatitude();
        loc.getLongitude();
      }

マニフェスト許可

    <uses-permission android:name="android.permission.ACCESS_GPS"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
于 2012-09-12T07:11:13.347 に答える