Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Missing permissions required by LocationManager

Android Studio 3.4.

A device on android 6.0

in manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.myproject">


    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_GPS"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.CALL_PHONE"/>
    <uses-permission android:name="android.permission.GET_TASKS"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="md.qsystems.android.tango.permission.MAPS_RECEIVE"/>
    <!-- MAP -->
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>

In my simple class (no activity/fragment) I have:

public class LocationHelper {

if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
                locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locListener);
            }

I have compile error:

Missing permissions required by LocationManager.requestLocationUpdates: android.permission.ACCESS_COARSE_LOCATION or android.permission.ACCESS_FINE_LOCATION 

}
like image 474
Alexei Avatar asked Apr 07 '26 21:04

Alexei


1 Answers

Call this checkAndRequestPermissions() Method whenevr you want permission

public boolean checkAndRequestPermissions() {
    int internet = ContextCompat.checkSelfPermission(mContext, 
    Manifest.permission.INTERNET);
    int loc = ContextCompat.checkSelfPermission(mContext, 
    Manifest.permission.ACCESS_COARSE_LOCATION);
    int loc2 = ContextCompat.checkSelfPermission(mContext, 
    Manifest.permission.ACCESS_FINE_LOCATION);
    List<String> listPermissionsNeeded = new ArrayList<>();

    if (internet != PackageManager.PERMISSION_GRANTED) {
        listPermissionsNeeded.add(Manifest.permission.INTERNET);
    }
    if (loc != PackageManager.PERMISSION_GRANTED) {
        listPermissionsNeeded.add(Manifest.permission.ACCESS_COARSE_LOCATION);
    }
    if (loc2 != PackageManager.PERMISSION_GRANTED) {
        listPermissionsNeeded.add(Manifest.permission.ACCESS_FINE_LOCATION);
    }
    if (!listPermissionsNeeded.isEmpty()) {
        ActivityCompat.requestPermissions((Activity) mContext, listPermissionsNeeded.toArray
                (new String[listPermissionsNeeded.size()]), 1);
        return false;
    }
    return true;
}
like image 146
Priya Vasoya Avatar answered Apr 16 '26 10:04

Priya Vasoya



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!