0

LocationListener を実装する FragmentActivity で LocationListener を使用して (ユーザー SupportMapFragment のために) ユーザーの現在の場所を取得しようとしています。

これは私のコードです:

private void setLocationManager() {
        if (lm == null)
            lm = (LocationManager) this
                    .getSystemService(Context.LOCATION_SERVICE);

        // exceptions will be thrown if provider is not permitted.
        try {
            gps_enabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
        } catch (Exception ex) {
        }
        try {
            network_enabled = lm
                    .isProviderEnabled(LocationManager.NETWORK_PROVIDER);
        } catch (Exception ex) {
        }

        if (gps_enabled) {
            lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
            Toast.makeText(HomeActivity.this, "Refresh GPS", Toast.LENGTH_SHORT)
                    .show();
        } else {
            lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0,
                    this);
            Toast.makeText(HomeActivity.this, "Refresh NET", Toast.LENGTH_SHORT)
                    .show();
        }
    }

    @Override
    public void onLocationChanged(Location location) {
        MyCurrentLocation = location;
        Toast.makeText(
                HomeActivity.this,
                "Refresh == my lat : " + MyCurrentLocation.getLatitude()
                        + " my long : " + MyCurrentLocation.getLongitude(),
                Toast.LENGTH_SHORT).show();

    }

    @Override
    public void onProviderDisabled(String provider) {
        Toast.makeText(HomeActivity.this, provider, Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onProviderEnabled(String provider) {
        Toast.makeText(HomeActivity.this, provider, Toast.LENGTH_SHORT).show();

    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub

    }

私が抱えている問題は次のとおりです。

  • オーバーライドされたメソッド: onLocationChanged は Network Provider を使用して呼び出されることはありません
  • オーバーライドされたメソッド: onProviderDisabled は毎回呼び出されることはありません..

そして、私は決して使用しません:lm.removeUpdateメソッド

4

1 に答える 1