Skip to content Skip to sidebar Skip to footer

Android 6.0 Getlastknowlocationpermission

I have a error when I'm trying to get last known location in Android 6.0 Location lastLocation =locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); Error: jav

Solution 1:

You should do get location work if runtime location permissions are given for marshmallow(android api 23 or above), check this:

This line of code

LocationlastLocation= locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

here will show you error in code for security exception and ask to use runtime permission code everywhere for code, no need to worry you can execute the build with this error info.

privatevoidcheckRuntimePermissions(){
        if (ActivityCompat.checkSelfPermission(context,
                Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
                && ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION)
                != PackageManager.PERMISSION_GRANTED) {
            try {
                ActivityCompat.requestPermissions(getActivity(), newString[] {
                                Manifest.permission.ACCESS_FINE_LOCATION,
                                Manifest.permission.ACCESS_COARSE_LOCATION },
                        1);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }else{
            getMyLocation();
        }
    }

    private PointDTO getMyLocation(){
        PointDTOpoint=newPointDTO();
        try {
            LocationManagerlocationManager= (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
            LocationlastLocation= locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
//            addresses = geocoder.getFromLocation(lat, lon, 1);//            //        String cityName = addresses.get(0).getAddressLine(0);//            //        String countryName = addresses.get(0).getAddressLine(2);//            address= addresses.get(0).getAddressLine(0);
            point.setLat(lastLocation.getLatitude());
            point.setLon(lastLocation.getLongitude());

        } catch (NullPointerException | SecurityException e) {
            e.printStackTrace();
        }

        return point;
    }

    @OverridepublicvoidonRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        switch (requestCode) {
            case REQ_ACCESS_COARSE_LOCATION:
            case REQ_ACCESS_FINE_LOCATION: {
                // If request is cancelled, the result arrays are empty.if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    // permission was granted, yay! 
                    checkRuntimePermissions();
                } else {
                    //do other operation because permission not given
                }
                return;
            }
        }
    }

Solution 2:

I alos had the same problem while doing these.You should access location after granting the permission

it should be inside method onRequestPermissionsResult()

refer request permission blog

Post a Comment for "Android 6.0 Getlastknowlocationpermission"