简体   繁体   English

NETWORK_PROVIDER和GPS_PROVIDER在片段中返回null

[英]NETWORK_PROVIDER and GPS_PROVIDER returns null in fragments

Issue i am facing 我面临的问题

nwLocation & gpsLocation are null at onStart() nwLocationgpsLocationonStart()为null

Manifest i have 我有清单

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

FrgAddNewJobsLocation.java (class extends Fragment) FrgAddNewJobsLocation.java (类扩展Fragment)

@Override
public void onStart() {

    super.onStart();

    initilizeMap();
    appLocationService = new AppLocationService(getActivity());
    nwLocation = appLocationService.getLocation(LocationManager.NETWORK_PROVIDER);
    gpsLocation = appLocationService.getLocation(LocationManager.GPS_PROVIDER);
}

AppLocationService.java AppLocationService.java

public class AppLocationService extends Service implements LocationListener {

    protected LocationManager locationManager;
    Location location;

    private static final long MIN_DISTANCE_FOR_UPDATE = 10;
    private static final long MIN_TIME_FOR_UPDATE = 1000 * 60 * 2;

    public AppLocationService(Context context) {

        locationManager = (LocationManager) context.getSystemService(LOCATION_SERVICE);
    }

    public Location getLocation(String provider) {

        if (locationManager.isProviderEnabled(provider)) {

            locationManager.requestLocationUpdates(provider, MIN_TIME_FOR_UPDATE, MIN_DISTANCE_FOR_UPDATE, this);
            if (locationManager != null) {

                location = locationManager.getLastKnownLocation(provider);
                return location;
            }
        }
        return null;
    }

    @Override
    public void onLocationChanged(Location location) {}

    @Override
    public void onProviderDisabled(String provider) {}

    @Override
    public void onProviderEnabled(String provider) {}

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {}

    @Override
    public IBinder onBind(Intent arg0) {

        return null;
    }
}

Instead of appLocationService = new AppLocationService(getActivity()); 代替appLocationService = new AppLocationService(getActivity());

use: 采用:

Context mcontext;      
appLocationService = new AppLocationService(mContext);

Also check if you have provided internet permission in manifest file 还要检查清单文件中是否提供了互联网许可

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 getLastKnownLocation使用GPS_PROVIDER和NETWORK_PROVIDER返回NULL - getLastKnownLocation return NULL using GPS_PROVIDER and NETWORK_PROVIDER 如何提示用户启用GPS_PROVIDER和/或NETWORK_PROVIDER? - How to prompt user to enable GPS_PROVIDER and/or NETWORK_PROVIDER? 无法使用GPS_PROVIDER / NETWORK_PROVIDER获取用户位置 - Not getting user location using GPS_PROVIDER / NETWORK_PROVIDER 使用OnStatusChanged从GPS_PROVIDER切换到NETWORK_PROVIDER? - Using OnStatusChanged to switch to NETWORK_PROVIDER from GPS_PROVIDER? 来自Android中GPS_PROVIDER或NETWORK_PROVIDER的位置不一致 - Location from GPS_PROVIDER or NETWORK_PROVIDER in android is not consistent 使用GPS_PROVIDER和NETWORK_PROVIDER获取当前位置的问题 - Issue in getting Current Location with GPS_PROVIDER and NETWORK_PROVIDER 在android中,GPS_PROVIDER有效,但NETWORK_PROVIDER不起作用 - in android, GPS_PROVIDER works, but NETWORK_PROVIDER does not Android:locationManager GPS_provider VS Network_provider - Android: locationManager GPS_provider VS Network_provider 如何从GPS_PROVIDER自动更改为NETWORK_PROVIDER - How to change automatically from GPS_PROVIDER to NETWORK_PROVIDER 如何检查Xamarin表单中的network_provider和gps_provider? - How to check for network_provider and gps_provider in Xamarin forms?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM