0

I am using this code to get the run time permissions in android marshmallow but it is not working in android version 7 and above

int PERMISSION_ALL = 123;
String[] PERMISSIONS = {Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_CONTACTS, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_SMS, Manifest.permission.CAMERA,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.READ_PHONE_STATE};

if (!hasPermissions(HomeActivity.this, PERMISSIONS)) {
    ActivityCompat.requestPermissions(HomeActivity.this, PERMISSIONS, PERMISSION_ALL);
}

public static boolean hasPermissions(Context context, String... permissions
{
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
        for (String permission : permissions) {
            if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
                return false;
            }
        }
    }

    return true;
}
Joehl
  • 3,671
  • 3
  • 25
  • 53
sobin
  • 1
  • 2

1 Answers1

0

try this

int PERMISSION_ALL = 123;
String[] PERMISSIONS = {Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_CONTACTS, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_SMS, Manifest.permission.CAMERA,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.READ_PHONE_STATE};

        if (!hasPermissions(HomeActivity.this, PERMISSIONS)) {
            requestPermissions(PERMISSIONS, PERMISSION_ALL);
        }

    public static boolean hasPermissions(Context context, String... permissions) {
            if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
                for (String permission : permissions) {
                    if (checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) {
                        return false;
                    }
                }
            }
            return true;
        }

please use requestPermision(permissions,PERMISSION_ALL); instead of ActivityCompat.requestPermision(context,permissions,PERMISSION_ALL);

Bhupat Bheda
  • 1,968
  • 1
  • 8
  • 13