1/** 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15import { HiLog } from '../util/HiLog'; 16import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; 17 18const TAG = 'PermissionManager'; 19 20export class PermissionManager { 21 private _isAllPermissionsGranted: boolean = false; 22 private static instance: PermissionManager; 23 private constructor() { 24 } 25 26 public static getInstance(): PermissionManager { 27 if (!PermissionManager.instance) { 28 PermissionManager.instance = new PermissionManager(); 29 } 30 return PermissionManager.instance; 31 } 32 33 public isAllPermissionsGranted() { 34 return this._isAllPermissionsGranted; 35 } 36 37 async initPermissions() { 38 let requestPermissions: Array<any> = [ 39 "ohos.permission.READ_CONTACTS", 40 "ohos.permission.WRITE_CONTACTS", 41 "ohos.permission.MANAGE_VOICEMAIL", 42 "ohos.permission.READ_CALL_LOG", 43 "ohos.permission.WRITE_CALL_LOG" 44 ]; 45 let AtManager = abilityAccessCtrl.createAtManager(); 46 AtManager.requestPermissionsFromUser(globalThis.context, requestPermissions) 47 .then((data) => { 48 HiLog.i(TAG, "Auth result is: " + JSON.stringify(data.authResults)); 49 let authFlag = true; 50 for (let i = 0; i < data.authResults.length; i++) { 51 if (data.authResults[i] == -1) { 52 authFlag = authFlag && false; 53 } 54 } 55 HiLog.i(TAG, "authFlag: " + JSON.stringify(authFlag)); 56 this._isAllPermissionsGranted = authFlag; 57 }) 58 .catch(err => { 59 HiLog.e(TAG, "requestPermissionsFromUser err:" + JSON.stringify(err)); 60 }); 61 HiLog.i(TAG, 'Application requestPermissionsFromUser end'); 62 } 63}