Following with what was discussed in the last entry in Android since Marshmallow is necessary to check at run time the permissions cataloged how to dangerous and read or write in the external storage is one of them. In the case at hand, for restore the backup, as the app writes in the sandbox it isn't necessary to check the permissions.
For check the permissions, we use the diagnostic plugin and we will use the same plugin for check permissions for access to location, sensors, phone, contacts, etc... but in this entry I only will write over the access to the external storage.
Well, first we install the plugin
Well, first we install the plugin
ionic plugin add cordova.plugins.diagnostic
And
npm install --save @ionic-native/diagnostic
And we create a service to manage all the permissions
ionic g provider PermissionsService
And we edit ../providers/permissions-service.ts and write
import { Injectable } from '@angular/core';
import { Platform } from 'ionic-angular';
import 'rxjs/add/operator/map';
import { Diagnostic } from '@ionic-native/diagnostic';
/*
Generated class for the PermissionsService provider.
See https://angular.io/docs/ts/latest/guide/dependency-injection.html
for more info on providers and Angular 2 DI.
*/
@Injectable()
export class PermissionsService {
constructor(public platform: Platform,
public diagnostic: Diagnostic) {
}
isAndroid() { return this.platform.is('android'); }
checkWritePermission(): Promise<boolean> return new Promise (resolve => if (this.isAndroid) { this.diagnostic.isExternalStorageAuthorized() .then(authorized => { if(authorized) { resolve(true); } else { this.diagnostic.requestExternalStorageAuthorization() .then(authorization => { resolve (authorization == this.diagnostic.permissionStatus.GRANTED); }); } }); } }); } }
isAndroid() { return this.platform.is('android'); }
checkWritePermission(): Promise<boolean> return new Promise (resolve => if (this.isAndroid) { this.diagnostic.isExternalStorageAuthorized() .then(authorized => { if(authorized) { resolve(true); } else { this.diagnostic.requestExternalStorageAuthorization() .then(authorization => { resolve (authorization == this.diagnostic.permissionStatus.GRANTED); }); } }); } }); } }
And we use it
createBackup () {
if (this.permissions.isAndroid()) {<
this.permissions.checkWritePermission().then(permission => {
this.backup();
}, error => {
console.log(error);
});
}
}
i like it your side is very help ful for me plz keep sharing.Whatsapp Fake ConversationsThanks for sharing informative article.
ResponElimina