cordova-plugin-android-permissions icon indicating copy to clipboard operation
cordova-plugin-android-permissions copied to clipboard

Need example on how to use for multiple permissions at a time

Open Jahrenski opened this issue 8 years ago • 8 comments
trafficstars

The documentation needs an example on how to use this for multiple permissions.

Jahrenski avatar Jan 16 '17 13:01 Jahrenski

Where is the problem? Either ask for one at a time or chain them together.

FredeHo avatar Jan 17 '17 11:01 FredeHo

I think that it is something wrong in the plugin because when I request a single permission is OK but when I request multiple permissions only show a dialog with one permission, status.hasPermission is false and then redirect to errorCallback.

The plugin not show a dialoglike this when I request multiple permissions:

iljor

acuevas91 avatar Jan 19 '17 11:01 acuevas91

Would be great to have an example of how to you use permissions.requestPermissions in conjunction with permissions.hasPermission ie: if I need to have permissions for READ_SMS, RECEIVE_SMS and SEND_SMS how do I formulate ?

digitalManiac avatar Jan 24 '17 08:01 digitalManiac

Hi, I tried to create a multiple requests using the example but something goes wrong When i request a single permission it works

I need the following permissions:

permissions.CAMERA, permissions.RECORD_AUDIO, permissions.READ_PHONE_STATE, permissions.WRITE_EXTERNAL_STORAGE

Anyone could help me with an example please..

I found the problem. From the example you can't understand because there are some mistakes.

The mistake fatal for me was permissions.requestPermission instread of permissions.requestPermissions so an example could be:

var permissions = cordova.plugins.permissions;

var list_permissions = [
    permissions.CAMERA,
    permissions.RECORD_AUDIO,
    permissions.READ_PHONE_STATE,
    permissions.WRITE_EXTERNAL_STORAGE
];

permissions.requestPermissions(list_permissions, requestSuccess, requestError);

var num_permissions = list_permissions.length;
function requestSuccess(){
    for (i = 0; i < num_permissions; i++) {
        permissions.checkPermission(list_permissions[i], function( status ){
            if ( status.hasPermission ) {
                console.warn("Yes :D -> " + list_permissions[i]);
            }
            else {
                console.warn("No :( -> " + list_permissions[i]);
            }
        });
    }
}

function requestError(){
    console.warn("Permissions request error");
}

for (var i = 0; i < num_permissions; i++) { instead of for (i = 0; i < num_permissions; i++) {

marcelo-ribeiro avatar Oct 03 '17 14:10 marcelo-ribeiro

Call request permission after calling check

var permissions = cordova.plugins.permissions;
var list = [
  permissions.RECORD_AUDIO,
  permissions.WRITE_EXTERNAL_STORAGE
];
list.forEach(element => {
  permissions.checkPermission(element, function(status) {
    if (status.hasPermission) console.warn("Yes :D -> " + element);
    else permissions.requestPermission(element, null, null);
  }, null);
});

Obs: Only the permissions that are listed in AndroidManifest.xml will be called.

marcelo-ribeiro avatar Oct 03 '17 19:10 marcelo-ribeiro

how to access camera contact and location permission as a runtime

shreyaaland avatar Jan 23 '18 10:01 shreyaaland