2

I am requesting run time permissions in an Android application that I am working on. However, once I run the application, the run time permission keep on being requested on the device even after I have accepted them.

The code I am using is the following:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{
    int PERMISSION_ALL = 1;
    String[] PERMISSIONS = {
            Manifest.permission.SET_TIME,
            Manifest.permission.ACCOUNT_MANAGER,
            Manifest.permission.RECEIVE_BOOT_COMPLETED,
            Manifest.permission.CAMERA,
            Manifest.permission.READ_SMS,
            Manifest.permission.INTERNET,
            Manifest.permission.ACCESS_WIFI_STATE,
            Manifest.permission.CHANGE_WIFI_STATE,
            Manifest.permission.CHANGE_NETWORK_STATE,
            Manifest.permission.INSTALL_PACKAGES,
            Manifest.permission.WRITE_EXTERNAL_STORAGE,
            Manifest.permission.KILL_BACKGROUND_PROCESSES,
            Manifest.permission.REBOOT,
            Manifest.permission.WRITE_SETTINGS,
            Manifest.permission.ACCESS_FINE_LOCATION,
            Manifest.permission.ACCESS_COARSE_LOCATION,
            Manifest.permission.WAKE_LOCK,
            Manifest.permission.GET_ACCOUNTS,};

    for (String permission : PERMISSIONS)
    {
       // count ++;
        if (!hasPermissions(this, permission))
        {
            ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
        }
    }
} else
{
    android.provider.Settings.System.putInt(getContentResolver(),
            Settings.System.SCREEN_OFF_TIMEOUT, Integer.MAX_VALUE);
}

I have also included the hasPermissions methods:

public boolean hasPermissions(Context context, String permissions)
{
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null)
    {
        if (ActivityCompat.checkSelfPermission(context, permissions) != PackageManager.PERMISSION_GRANTED)
        {
            return false;
        }
    }
    return true;
}
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
George
  • 2,865
  • 6
  • 35
  • 59
  • Possible duplicate of [Start the Activity After Multiple Permission?android 6+](https://stackoverflow.com/questions/42686815/start-the-activity-after-multiple-permissionandroid-6) – Martin Zeitler Aug 22 '18 at 08:26
  • You should post the whole source code, that means also hasPermissions method and so on... – jantursky Aug 22 '18 at 08:29
  • Only dangerous permissions need runtime permissions , normal permissions don't need runtime permissions , see https://stackoverflow.com/a/38606471/6478047 – Manohar Aug 22 '18 at 08:31
  • @jantursky that's also what I've initially thought; but it's a method of `Activity`. – Martin Zeitler Aug 22 '18 at 08:43

0 Answers0