Come settare i permessi per accedere alla webcam in Ionic 2

INFORMATICA

Scrivo questo articolo perchè ho riscontrato che possono verificarsi diversi casi in cui è necessario chiedere o fissare i permessi  in modo diverso anche a secondo della versione di android che si sta usando; in ogni caso una via da usare è quella di chiedere i permessi in modo esplicito e questo si può fare usando il plugin di cordova : Android Permissions. Per installare il plugin sarà sufficiente  eseguire su linea di comando:

$ ionic cordova plugin add cordova-plugin-android-permissions
$ npm install --save @ionic-native/android-permissions

un esempio di utilizzo  può essere :

import { AndroidPermissions } from '@ionic-native/android-permissions';
constructor(private androidPermissions: AndroidPermissions) { } ... 
this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.CAMERA).then(
result => console.log('Has permission?',result.hasPermission), err =>
this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.CAMERA) ); 
this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.CAMERA,
this.androidPermissions.PERMISSION.GET_ACCOUNTS]);

In alcuni casi  è stato necessario inserire i permessi direttamente nel AndroidManifest.xml che si trova in platform -> Android

Nel mio caso ho uilizzato questa configurazione per i permessi

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.RECORD_VIDEO" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-feature android:glEsVersion="0x00020000" android:required="true" />
    <uses-permission android:name="android.permission.INTERNET" />
Se vuoi farmi qualche richiesta o contattarmi per un aiuto riempi il seguente form

    Comments