モバイル デバイスで GPS の緯度と経度を取得しようとしています。以下のコードは機能します。つまり、デバイスの「ワイヤレスネットワークを使用する」設定が選択されている場合、すべての情報を目的の方法で提供しますが、「GPS 衛星を使用する」が選択されている場合は機能しません。情報。
コードは次のとおりです。
void getLatitudeAndLongitude() {
    boolean gpsEnabled = false;
    LocationManager mLocMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    Log.e("mLocation#####", "" + mLocMan);
    try {
        gpsEnabled = mLocMan
                .isProviderEnabled(LocationManager.GPS_PROVIDER);
    } catch (Exception ex) {
    }
    boolean networkEnabled = false;
    try {
        networkEnabled = mLocMan
                .isProviderEnabled(LocationManager.NETWORK_PROVIDER);
    } catch (Exception ex) {
    }
    Location mCurrentLocation = null;
    // network*****************
    if (networkEnabled)
        mCurrentLocation = mLocMan
                .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
    // gps********************
    if (gpsEnabled)
        mCurrentLocation = mLocMan
                .getLastKnownLocation(LocationManager.GPS_PROVIDER);
    Log.d("current location", "" + mCurrentLocation);
    LocationProvider mGpsProv = null;
    if (mGpsProv == null && mLocMan != null) {
        mGpsProv = mLocMan.getProvider(LocationManager.GPS_PROVIDER);
    }
    if (mLocMan != null) {
        mylocationlistener mGpsLocListener = new mylocationlistener();
        mLocMan.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
                0 /* minTime ms */, 0 /* minDistance in meters */,
                mGpsLocListener);
        Log.d("Provoider1", "NETWORK_PROVIDER");
    }
    if (mLocMan != null && mGpsProv != null) {
        mylocationlistener mGpsLocListener = new mylocationlistener();
        mLocMan.requestLocationUpdates(LocationManager.GPS_PROVIDER,
                0 /* minTime ms /, 0 / minDistance in meters */, 0,
                mGpsLocListener);
        Log.d("Provoider2", "GPS_PROVIDER");
    }
}
class mylocationlistener implements LocationListener {
    @Override
    public void onLocationChanged(Location location) {
        if (location != null) {
            latitude = String.valueOf(location.getLatitude());
            longitude = String.valueOf(location.getLongitude());
            Log.e("location==", "" + location);
            Log.e("getLatitude", location.getLatitude() + "");
            Log.e("getLongitude", location.getLongitude() + "");
            if (GlobalConfig.DEBUG)
                Log.d("setUpIndividualWork", "location==" + location);
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                }
            }, 1000);
            onGPSUpdate(location);
            Geocoder gcd = new Geocoder(setUpIndividualWorkOut.this,
                    Locale.getDefault());
            List<Address> addresses = null;
            try {
                addresses = gcd.getFromLocation(location.getLatitude(),
                        location.getLongitude(), 1);
            } catch (IOException e) {
                e.printStackTrace();
            }
            if (addresses != null && addresses.size() > 0) {
                userCurrentLocation = addresses.get(0).getLocality();
                Log.e("current location by GPS ", ""
                        + addresses.get(0).getLocality());
            }
        }
    }
    @Override
    public void onProviderDisabled(String provider) {
    }
    @Override
    public void onProviderEnabled(String provider) {
    }
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
    }
}
私はあなたの応答に非常に感謝します。