How to give persiomission com.sec.android.provider.badge.permission.READ or WRITE in android 6.0

Since Android 6.0 you need to request permissions at Runtime before you need them.

The example below is for the WRITE permission (I guess you’d like to add a badge to the app icon and normally you don’t need the READ permission for this – if you need it you can request it just like the WRITE permission)

First add your permissions in the Manifest:

<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE"/>

Then you can check if they are granted at Runtime like this:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M 
            && ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_SETTINGS) != PackageManager.PERMISSION_GRANTED) {
        //permissions not granted -> request them
        requestPermissions(new String[] {Manifest.permission.WRITE_SETTINGS}, YOUR_REQUEST_CODE);
} else {
        //permissions are granted - do your stuff here :)
}

The result will be available in onRequestPermissionResult:

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
                                       @NonNull int[] grantResults) {
    if (requestCode == YOUR_REQUEST_CODE) {
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_SETTINGS) == PackageManager.PERMISSION_GRANTED) {
            //permissions granted -> do your stuff ;-)
        }
        //Permission not granted -> react to it!
        return;
    }
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}

You can read more about it in the official docs

Leave a Comment