5.申請授權(可組合申請)接上文
let p: Permissions[] = ['ohos.permission.ACTIVITY_MOTION', 'ohos.permission.CAMERA','ohos.permission.LOCATION', 'ohos.permission.APPROXIMATELY_LOCATION'];
PermissionUtil.requestPermissions(p).then((grant) = > {
if (grant) {
ToastUtil.showToast(`申請授權,已通過...`);
}
})
如果第一次申請用戶沒有同意,可二次申請
PermissionUtil.requestPermissionOnSettingEasy(p).then((result) = > {
ToastUtil.showToast(`申請授權,結果:${result}`);
});
6.申請授權,拒絕后可二次申請
let p: Permissions[] = ['ohos.permission.ACTIVITY_MOTION', 'ohos.permission.CAMERA', 'ohos.permission.LOCATION', 'ohos.permission.APPROXIMATELY_LOCATION'];
PermissionUtil.requestPermissionsEasy(p).then((result) = > {
ToastUtil.showToast(`申請授權,結果:${result}`);
})
7.完整UI代碼
import { abilityAccessCtrl, Permissions } from '@kit.AbilityKit';
import { LogUtil, PermissionUtil, ToastUtil, WantUtil } from '@pura/harmony-utils';
import { BusinessError } from '@kit.BasicServicesKit';
@Styles
function btnStyle() {
.width('90%')
.margin({ top: 10, bottom: 5 })
}
@Entry
@Component
struct Index {
private scroller: Scroller = new Scroller();
build() {
Scroll(this.scroller) {
Column() {
Button("checkPermissions()")
.btnStyle()
.onClick(() = > {
let p: Permissions = 'ohos.permission.CAMERA'; //相機
PermissionUtil.checkPermissions(p).then((result) = > {
ToastUtil.showToast(`檢測是否授權,結果:${result}`);
})
})
Button("checkRequestPermissions()")
.btnStyle()
.onClick(() = > {
let p: Permissions = 'ohos.permission.CAMERA'; //相機
PermissionUtil.checkRequestPermissions(p).then((grant) = > {
ToastUtil.showToast(`檢測并申請授權,結果:${grant}`);
if (!grant) {
WantUtil.toAppSetting(); //拒絕權限,跳轉APP設置頁面
}
})
})
Button("requestPermissions()nrequestPermissionOnSettingEasy()")
.labelStyle({ maxLines: 2 })
.type(ButtonType.Normal)
.borderRadius(10)
.padding({ top: 10, bottom: 10 })
.btnStyle()
.onClick(() = > {
let p: Permissions[] = ['ohos.permission.ACTIVITY_MOTION', 'ohos.permission.CAMERA','ohos.permission.LOCATION', 'ohos.permission.APPROXIMATELY_LOCATION'];
PermissionUtil.requestPermissions(p).then((grant) = > {
if (grant) {
ToastUtil.showToast(`申請授權,已通過...`);
} else { //拒絕權限,二次向用戶申請授權
PermissionUtil.requestPermissionOnSettingEasy(p).then((result) = > {
ToastUtil.showToast(`申請授權,結果:${result}`);
});
}
})
})
Button("requestPermissionsEasy()")
.btnStyle()
.onClick(() = > {
let p: Permissions[] = ['ohos.permission.ACTIVITY_MOTION', 'ohos.permission.CAMERA', 'ohos.permission.LOCATION', 'ohos.permission.APPROXIMATELY_LOCATION'];
PermissionUtil.requestPermissionsEasy(p).then((result) = > {
ToastUtil.showToast(`申請授權,結果:${result}`);
})
})
Button("requestGlobalSwitch()")
.btnStyle()
.onClick(() = > {
PermissionUtil.requestGlobalSwitch(abilityAccessCtrl.SwitchType.LOCATION).then((result) = > {
ToastUtil.showToast(`申請結果:${result}`);
}).catch((err: BusinessError) = > {
ToastUtil.showToast(err.message);
LogUtil.error(err);
});
})
Button("最佳使用案例")
.btnStyle()
.onClick(() = > {
let ps: Permissions[] = ['ohos.permission.READ_IMAGEVIDEO', 'ohos.permission.WRITE_IMAGEVIDEO'];
PermissionUtil.requestPermissions(ps).then((result) = > {
if (result) {
ToastUtil.showToast(`最佳使用案例授權,已通過...`);
} else {
PermissionUtil.requestPermissionOnSetting(ps).then((grant) = > {
ToastUtil.showToast(`最佳使用案例,結果:${grant}`);
})
}
})
})
Button("測試")
.btnStyle()
.onClick(() = > {
let ps: Permissions[] = ['ohos.permission.CAMERA', 'ohos.permission.READ_IMAGEVIDEO', 'ohos.permission.WRITE_IMAGEVIDEO'];
PermissionUtil.requestPermissionsEasy(ps).then((grant)= >{
ToastUtil.showToast(`申請授權,結果:${grant}`);
})
})
Blank().layoutWeight(1)
}
.margin({ top: 5, bottom: 5 })
}
.layoutWeight(1)
}
}
注:部分權限需要在真機上使用,部分權限需要在模擬器設置進行模擬使用
本文檔所使用類的源地址鏈接??entry/src/main/ets/pages/utils/PermissionUtilPage.ets · 桃花鎮童長老/harmony-utils - Gitee.com??
本文檔所介紹的第三方庫源地址鏈接??OpenHarmony三方庫中心倉?
?
審核編輯 黃宇
-
數碼相機
+關注
關注
2文章
444瀏覽量
38996 -
SDK
+關注
關注
3文章
1073瀏覽量
47943
發布評論請先 登錄
harmony-utils之AuthUtil,生物認證相關工具類
harmony-utils之ArrayUtil,集合工具類
如何使用第三方庫中的picker_utils (API12) PickerUtil類
如何使用第三方庫中的@pura/harmony-utils(V1.3.3)申請授權工具類一

用第三方的dlp3010板子時遇到的幾個問題求解
用于InterBase的ODBC驅動程序:可與多個第三方工具兼容

EE-303:將VisualDSP線程安全庫與第三方RTOS配合使用

第三方檢測機構該如何提升核心競爭力?

鴻蒙Flutter實戰:05-使用第三方插件
三維天地低代碼開發平臺助力第三方質檢行業數據可視化

評論