提交 eddd7973 编写于 作者: Z zhaoyuan17

Add xts code

Signed-off-by: Nzhaoyuan17 <zhaoyuan17@huawei.com>
上级 587b5dca
......@@ -19,8 +19,7 @@ group("bundlemanager") {
deps = [
"actsbmsallshortcutinfotest:ActsBmsAllShortcutInfoTest",
"actsbmscheckpermissiontest:ActsBmsCheckPermissionTest",
#"actsbmsgetinfostest:ActsBmsGetInfosTest",
"actsbmsgetinfostest:ActsBmsGetInfosTest",
"actsbmshapmoduletest:ActsBmsHapModuleTest",
"actsbmsjstest:ActsBmsJsTest",
"actsbmskittest:ActsBmsKitTest",
......@@ -29,7 +28,10 @@ group("bundlemanager") {
"actsbundlemanagertest:ActsBundleManagerTest",
"actsbundlemanageruninstall:ActsBundleManagerUninstallTest",
# "bmscheckpermissiontest:ActsBmsCheckPermissionTest",
# "bmscheckpermissiontest:ActsBmsCheckPermissionManualTest",
# "bmspermissionchangetest:ActsBmsPermissionChangeManualTest",
"sceneProject/bmsfirstrequestpermissions:FirstRequestPermissions",
"sceneProject/bmsgetinfosfifthscene:bmsThirdBundleTest5",
"sceneProject/bmsgetinfosfirstscene:bmsThirdBundleTest1",
"sceneProject/bmsgetinfosfirstsceneupdate:bmsThirdBundleTestA1",
......@@ -39,8 +41,7 @@ group("bundlemanager") {
"sceneProject/bmsgetinfosscenesystem:bmsSystemBundleTest1",
"sceneProject/bmsgetinfosscenevendor:bmsVendorBundleTest1",
"sceneProject/bmsgetinfossecondscene:bmsThirdBundleTest2",
#"sceneProject/bmsgetinfossixthscene:bmsThirdBundleTest6",
"sceneProject/bmsgetinfossixthscene:bmsThirdBundleTest6",
"sceneProject/bmsgetinfosthirdscene:bmsThirdBundleTest3",
"sceneProject/bmsmainabilityfirstscene:bmsMainAbilityFirstScene",
"sceneProject/bmsmainabilitysecondscene:bmsMainAbilitySecondScene",
......@@ -53,6 +54,7 @@ group("bundlemanager") {
"sceneProject/bmsscenesix:bmsJstest6",
"sceneProject/bmsscenethree:bmsJstest3",
"sceneProject/bmsscenetwo:bmsJstest2",
"sceneProject/bmssecondrequestpermissions:SecondRequestPermissions",
]
}
}
......@@ -23,6 +23,11 @@ const BUNDLE_PATH4 = '/data/test/bmsThirdBundleTest4.hap';
const BUNDLE_PATH5 = '/data/test/bmsThirdBundleTest5.hap';
const BUNDLE_PATH6 = '/data/test/bmsThirdBundleTest6.hap';
const BUNDLE_PATHUPDATE = '/data/test/bmsThirdBundleTestA1.hap';
const BUNDLE_NAME1 = 'com.example.third1';
const BUNDLE_NAME2 = 'com.example.third2';
const BUNDLE_NAME4 = 'com.example.third4';
const BUNDLE_NAME5 = 'com.example.third5';
const BUNDLE_NAME6 = 'com.example.third6';
const NUM_TWO = 2;
const NUM_NINE = 9;
let dataTransfer = 1;
......@@ -62,7 +67,7 @@ describe('ActsBmsGetBackGroundModes', function () {
entities: ['entity.system.home'],
elementName: {
deviceId: '0',
bundleName: 'com.example.third5',
bundleName: BUNDLE_NAME5,
abilityName: 'com.example.third5.AMainAbility',
},
}
......@@ -75,7 +80,7 @@ describe('ActsBmsGetBackGroundModes', function () {
expect(dataInfos[1].name).assertEqual("com.example.third5.BMainAbility");
expect(dataInfos[1].backgroundModes).assertEqual(dataTransfer + voip);
}
installer.uninstall('com.example.third5', {
installer.uninstall(BUNDLE_NAME5, {
param: {
userId: 0,
installFlag: 1,
......@@ -92,7 +97,7 @@ describe('ActsBmsGetBackGroundModes', function () {
/*
* @tc.number: bms_backGroundModes_0200
* @tc.name: Get the backgroundModes information of the application through queryAbilityByWant
* @tc.name: Get the backgroundModes information of the application through queryAbilityByWant
* @tc.desc: Get all background modes information, and each ability of the application
* contains one of the background mode
*/
......@@ -116,7 +121,7 @@ describe('ActsBmsGetBackGroundModes', function () {
entities: ['entity.system.home'],
elementName: {
deviceId: '0',
bundleName: 'com.example.third6',
bundleName: BUNDLE_NAME6,
abilityName: '',
},
}
......@@ -127,7 +132,7 @@ describe('ActsBmsGetBackGroundModes', function () {
console.info("==========dataInfos[i].backgroundModes=========" + dataInfos[i].backgroundModes);
console.info("==========dataInfos[1].name=========" + dataInfos[i].name);
}
installer.uninstall('com.example.third6', {
installer.uninstall(BUNDLE_NAME6, {
param: {
userId: 0,
installFlag: 1,
......@@ -144,8 +149,8 @@ describe('ActsBmsGetBackGroundModes', function () {
/*
* @tc.number: bms_backGroundModes_0300
* @tc.name: Get the backgroundModes information of the application through queryAbilityByWant
* @tc.desc: Read the backgroundModes information of the app's ability and replace invalid attributes
* @tc.name: Get the backgroundModes information of the application through queryAbilityByWant
* @tc.desc: Read the backgroundModes information of the app's ability and replace invalid attributes
*/
it('bms_backGroundModes_0300', 0, async function (done) {
console.info('=====================bms_backGroundModes_0300==================');
......@@ -167,7 +172,7 @@ describe('ActsBmsGetBackGroundModes', function () {
entities: ['entity.system.home'],
elementName: {
deviceId: '0',
bundleName: 'com.example.third2',
bundleName: BUNDLE_NAME2,
abilityName: 'com.example.third2.MainAbility',
},
}
......@@ -178,7 +183,7 @@ describe('ActsBmsGetBackGroundModes', function () {
expect(dataInfos[0].backgroundModes).assertEqual(audioPlayback + audioRecording + location
+ bluetoothInteraction + multiDeviceConnection + wifiInteraction + voip + taskKeeping)
}
installer.uninstall('com.example.third2', {
installer.uninstall(BUNDLE_NAME2, {
param: {
userId: 0,
installFlag: 1,
......@@ -195,8 +200,8 @@ describe('ActsBmsGetBackGroundModes', function () {
/*
* @tc.number: bms_backGroundModes_0400
* @tc.name: Get the backgroundModes information of the application through queryAbilityByWant
* @tc.desc: Read the backgroundModes information of the app's ability and replace invalid attributes
* @tc.name: Get the backgroundModes information of the application through queryAbilityByWant
* @tc.desc: Read the backgroundModes information of the app's ability and replace invalid attributes
*/
it('bms_backGroundModes_0400', 0, async function (done) {
console.info('=====================bms_backGroundModes_0400==================');
......@@ -218,7 +223,7 @@ describe('ActsBmsGetBackGroundModes', function () {
entities: ['entity.system.home'],
elementName: {
deviceId: '0',
bundleName: 'com.example.third4',
bundleName: BUNDLE_NAME4,
abilityName: 'com.example.third4.MainAbility',
},
}
......@@ -228,7 +233,7 @@ describe('ActsBmsGetBackGroundModes', function () {
expect(dataInfos[0].name).assertEqual("com.example.third4.MainAbility")
expect(dataInfos[0].backgroundModes).assertEqual(0)
}
installer.uninstall('com.example.third4', {
installer.uninstall(BUNDLE_NAME4, {
param: {
userId: 0,
installFlag: 1,
......@@ -245,8 +250,8 @@ describe('ActsBmsGetBackGroundModes', function () {
/*
* @tc.number: bms_backGroundModes_0500
* @tc.name: Get the backgroundModes information of the application through queryAbilityByWant
* @tc.desc: Get the backgroundModes information of the multi-hap package of the application
* @tc.name: Get the backgroundModes information of the application through queryAbilityByWant
* @tc.desc: Get the backgroundModes information of the multi-hap package of the application
*/
it('bms_backGroundModes_0500', 0, async function (done) {
console.info('=====================bms_backGroundModes_0500==================');
......@@ -268,8 +273,8 @@ describe('ActsBmsGetBackGroundModes', function () {
entities: ['entity.system.home'],
elementName: {
deviceId: '0',
bundleName: 'com.example.third1',
abilityName: 'com.example.third1.AMainAbility',
bundleName: BUNDLE_NAME1,
abilityName: 'com.example.third1.MainAbility',
},
}
}, 0, 0)
......@@ -280,7 +285,7 @@ describe('ActsBmsGetBackGroundModes', function () {
location + bluetoothInteraction + multiDeviceConnection + wifiInteraction + voip + taskKeeping)
}
console.info("========dataInfos[0].backgroundModes=======>" + dataInfos[0].backgroundModes)
installer.uninstall('com.example.third1', {
installer.uninstall(BUNDLE_NAME1, {
param: {
userId: 0,
installFlag: 1,
......@@ -298,7 +303,7 @@ describe('ActsBmsGetBackGroundModes', function () {
/*
* @tc.number: bms_backGroundModes_0600
* @tc.name: Get the backgroundModes information of the application through queryAbilityByWant
* @tc.desc: Get the backgroundModes information of the upgraded application's ability
* @tc.desc: Get the backgroundModes information of the upgraded application's ability
*/
it('bms_backGroundModes_0600', 0, async function (done) {
console.info('=====================bms_backGroundModes_0600==================');
......@@ -321,7 +326,7 @@ describe('ActsBmsGetBackGroundModes', function () {
entities: ['entity.system.home'],
elementName: {
deviceId: '0',
bundleName: 'com.example.third1',
bundleName: BUNDLE_NAME1,
abilityName: 'com.example.third1.MainAbility',
},
}
......@@ -348,8 +353,8 @@ describe('ActsBmsGetBackGroundModes', function () {
entities: ['entity.system.home'],
elementName: {
deviceId: '0',
bundleName: 'com.example.third1',
abilityName: 'com.example.third1.AMainAbility',
bundleName: BUNDLE_NAME1,
abilityName: 'com.example.third1.MainAbility',
},
}
}, 0, 0)
......@@ -359,8 +364,7 @@ describe('ActsBmsGetBackGroundModes', function () {
expect(dataInfos[0].backgroundModes).assertEqual(audioRecording + location + bluetoothInteraction +
multiDeviceConnection + wifiInteraction + voip + taskKeeping);
}
console.info("========dataInfos[0].backgroundModes=======>" + dataInfos[0].backgroundModes)
installer.uninstall('com.example.third1', {
installer.uninstall(BUNDLE_NAME1, {
param: {
userId: 0,
installFlag: 1,
......@@ -375,4 +379,67 @@ describe('ActsBmsGetBackGroundModes', function () {
})
})
})
/*
* @tc.number: bms_backGroundModes_0700
* @tc.name: Get the backgroundModes information of the application through queryAbilityByWant
* @tc.desc: Uninstall the application, get the backgroundModes information of the upgraded application's ability
*/
it('bms_backGroundModes_0700', 0, async function (done) {
console.info('=====================bms_backGroundModes_0700==================');
var bundlePath = [BUNDLE_PATH1]
var installer = await bundle.getBundleInstaller();
installer.install(bundlePath, {
param: {
userId: 0,
installFlag: 1,
isKeepData: false
}
}, async (err, data) => {
expect(err.code).assertEqual(0);
expect(data.status).assertEqual(0);
expect(data.statusMessage).assertEqual('SUCCESS');
var dataInfos = await bundle.queryAbilityByWant({
want: {
action: 'action.system.home',
entities: ['entity.system.home'],
elementName: {
deviceId: '0',
bundleName: BUNDLE_NAME1,
abilityName: 'com.example.third1.MainAbility'
}
}
}, 0, 0)
expect(dataInfos.length).assertEqual(1);
if (dataInfos.length == 1) {
expect(dataInfos[0].name).assertEqual("com.example.third1.MainAbility")
expect(dataInfos[0].backgroundModes).assertEqual(dataTransfer + audioPlayback + audioRecording +
location + bluetoothInteraction + multiDeviceConnection + wifiInteraction + voip + taskKeeping)
}
installer.uninstall(BUNDLE_NAME1, {
param: {
userId: 0,
installFlag: 1,
isKeepData: false
}
}, async (err, data) => {
expect(err.code).assertEqual(0);
expect(data.status).assertEqual(0);
expect(data.statusMessage).assertEqual('SUCCESS');
var dataInfos = await bundle.queryAbilityByWant({
want: {
action: 'action.system.home',
entities: ['entity.system.home'],
elementName: {
deviceId: '0',
bundleName: BUNDLE_NAME1,
abilityName: 'com.example.third1.MainAbility'
}
}
}, 0, 0)
expect(dataInfos.length).assertEqual(0);
done();
});
})
})
})
\ No newline at end of file
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import bundle from '@ohos.bundle'
import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit'
const TIMEOUT = 1000;
const DEFAULT_ERRCODE = 100;
let uid;
let systemUid;
describe('ActsBmsGetRegisterPermissionTest', function () {
beforeAll(async (done) => {
console.info('=========before all start======')
var bundleInfo = await bundle.getBundleInfo('com.example.actsbmsgetinfostest', 1);
uid = bundleInfo.uid;
var systemBundleInfo = await bundle.getBundleInfo('com.example.system1', 1);
systemUid = systemBundleInfo.uid;
done();
})
/*
* @tc.number: bms_unregisterPermissionChange_0100
* @tc.name: unregister permissionChange callback by other callback
* @tc.desc: 1.register permissionChange callback
* 2.unregister permissionChange callback by other different callback
*/
it('bms_unregisterPermissionChange_0100', 0, async function (done) {
console.info('=====================start bms_unregisterPermissionChange_0100==================');
function callbackOne(err, data) {
console.info('=====================bms_getRegisterPermission_0100==================');
expect(err.code).assertEqual(0);
console.info('===========bundleInfo.data========' + JSON.stringify(data));
expect(data).assertEqual(undefined);
done();
}
function callbackTwo(err, data) {
expect(err.code).assertEqual(-1);
expect(data).assertEqual(undefined);
}
bundle.on('permissionChange', [uid], callbackOne)
setTimeout(() => {
bundle.off('permissionChange', [uid], callbackTwo)
setTimeout(() => {
bundle.off('permissionChange', [uid], callbackOne)
}, TIMEOUT);
}, TIMEOUT);
})
/*
* @tc.number: bms_unregisterPermissionChange_0100
* @tc.name: unregister permissionChange callback by other uid list
* @tc.desc: 1.register permissionChange callback
* 2.unregister permissionChange callback by other uid list
*/
it('bms_unregisterPermissionChange_0200', 0, async function (done) {
console.info('=====================start bms_unregisterPermissionChange_0200==================');
var errCode = DEFAULT_ERRCODE;
function callback(err, data) {
errCode = err.code;
}
bundle.on('permissionChange', [uid, systemUid], callback)
setTimeout(() => {
bundle.off('permissionChange', [uid], callback)
setTimeout(() => {
expect(errCode).assertEqual(-1);
bundle.off('permissionChange', [uid, systemUid], callback)
setTimeout(() => {
expect(errCode).assertEqual(0);
done();
}, TIMEOUT);
}, TIMEOUT);
}, TIMEOUT);
})
/*
* @tc.number: bms_unregisterPermissionChange_0300
* @tc.name: repeatly unregister permissionChange callback
* @tc.desc: 1.register permissionChange callback
* 2.repeatly unregister permissionChange callback
*/
it('bms_unregisterPermissionChange_0300', 0, async function (done) {
console.info('=====================start bms_unregisterPermissionChange_0300==================');
var errCode = DEFAULT_ERRCODE;
function callback(err, data) {
console.info('=======call back errCode=======' + err.code)
errCode = err.code;
}
bundle.on('permissionChange', [uid], callback)
setTimeout(() => {
bundle.off('permissionChange', [uid], callback)
setTimeout(() => {
expect(errCode).assertEqual(0);
bundle.off('permissionChange', [uid], callback)
setTimeout(() => {
expect(errCode).assertEqual(-1);
bundle.off('permissionChange', [uid], callback)
setTimeout(() => {
expect(errCode).assertEqual(-1);
done();
}, TIMEOUT);
}, TIMEOUT);
}, TIMEOUT);
}, TIMEOUT);
})
/*
* @tc.number: bms_unregisterPermissionChange_0400
* @tc.name: unregister permissionChange callback by anonymous callback
* @tc.desc: 1.register permissionChange callback by anonymous callback
* 2.unregister permissionChange callback by anonymous callback
*/
it('bms_unregisterPermissionChange_0400', 0, async function (done) {
console.info('=====================start bms_unregisterPermissionChange_0400==================');
bundle.on('permissionChange', [uid], (err, data) => {
console.info('========register permission change========')
expect(err.code).assertEqual(-1);
done();
})
setTimeout(() => {
bundle.off('permissionChange', [uid], (err, data) => {
console.info('========register permission change========')
expect(err.code).assertEqual(-1);
done();
})
})
})
/*
* @tc.number: bms_unregisterAnyPermissionChange_0100
* @tc.name: unregister anyPermissionChange callback by other callback
* @tc.desc: 1.register anyPermissionChange callback
* 2.unregister anyPermissionChange callback by other different callback
*/
it('bms_unregisterAnyPermissionChange_0100', 0, async function (done) {
console.info('=====================start bms_unregisterAnyPermissionChange_0100==================');
function callbackOne(err, data) {
console.info('=====================bms_bms_unregisterAnyPermissionChange_0100==================');
expect(err.code).assertEqual(0);
console.info('===========bundleInfo.data========' + JSON.stringify(data));
expect(data).assertEqual(undefined);
done();
}
function callbackTwo(err, data) {
expect(err.code).assertEqual(-1);
expect(data).assertEqual(undefined);
}
bundle.on('anyPermissionChange', callbackOne)
setTimeout(() => {
bundle.off('anyPermissionChange', callbackTwo)
setTimeout(() => {
bundle.off('anyPermissionChange', callbackOne)
}, TIMEOUT);
}, TIMEOUT);
})
/*
* @tc.number: bms_unregisterAnyPermissionChange_0200
* @tc.name: repeatly unregister anyPermissionChange callback
* @tc.desc: 1.register anyPermissionChange callback
* 2.repeatly unregister anyPermissionChange callback
*/
it('bms_unregisterAnyPermissionChange_0200', 0, async function (done) {
console.info('=====================start bms_unregisterAnyPermissionChange_0200==================');
var errCode = DEFAULT_ERRCODE;
function callback(err, data) {
console.info('=======call back errCode=======' + err.code)
errCode = err.code;
}
bundle.on('anyPermissionChange', callback)
setTimeout(() => {
bundle.off('anyPermissionChange', callback)
setTimeout(() => {
expect(errCode).assertEqual(0);
bundle.off('anyPermissionChange', callback)
setTimeout(() => {
expect(errCode).assertEqual(-1);
bundle.off('anyPermissionChange', callback)
setTimeout(() => {
expect(errCode).assertEqual(-1);
done();
}, TIMEOUT);
}, TIMEOUT);
}, TIMEOUT);
}, TIMEOUT);
})
/*
* @tc.number: bms_unregisterAnyPermissionChange_0300
* @tc.name: unregister anyPermissionChange callback by anonymous callback
* @tc.desc: 1.register anyPermissionChange callback by anonymous callback
* 2.unregister anyPermissionChange callback by anonymous callback
*/
it('bms_unregisterAnyPermissionChange_0300', 0, async function (done) {
console.info('=====================start bms_unregisterAnyPermissionChange_0300==================');
bundle.on('anyPermissionChange', (err, data) => {
console.info('========register permission change========')
expect(err.code).assertEqual(-1);
done();
})
setTimeout(() => {
bundle.off('anyPermissionChange', (err, data) => {
console.info('========register permission change========')
expect(err.code).assertEqual(-1);
done();
})
})
})
})
\ No newline at end of file
......@@ -13,4 +13,5 @@
* limitations under the License.
*/
require('./ActsBmsGetBackGroundModes.test.js')
require('./ActsBmsFormsInfoTest.test.js')
\ No newline at end of file
require('./ActsBmsFormsInfoTest.test.js')
require('./ActsBmsPermissionChange.test.js')
\ No newline at end of file
......@@ -13,14 +13,14 @@
import("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("ActsBmsCheckPermissionTest") {
ohos_js_hap_suite("ActsBmsCheckPermissionManualTest") {
hap_profile = "./entry/src/main/config.json"
deps = [
":hjs_demo_js_assets",
":hjs_demo_resources",
]
certificate_profile = "./signature/openharmony_sx.p7b"
hap_name = "ActsBmsCheckPermissionTest"
hap_name = "ActsBmsCheckPermissionManualTest"
}
ohos_js_assets("hjs_demo_js_assets") {
source_dir = "./entry/src/main/js/default"
......
# Copyright (c) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("ActsBmsPermissionChangeManualTest") {
hap_profile = "./entry/src/main/config.json"
deps = [
":hjs_demo_js_assets",
":hjs_demo_resources",
]
certificate_profile = "./signature/openharmony_sx.p7b"
hap_name = "ActsBmsPermissionChangeManualTest"
}
ohos_js_assets("hjs_demo_js_assets") {
source_dir = "./entry/src/main/js/default"
}
ohos_resources("hjs_demo_resources") {
sources = [ "./entry/src/main/resources" ]
hap_profile = "./entry/src/main/config.json"
}
{
"description": "Configuration for hjunit demo Tests",
}
{
"app": {
"bundleName": "com.example.permissionchange",
"vendor": "example",
"version": {
"code": 1,
"name": "1.0"
},
"apiVersion": {
"compatible": 4,
"target": 5,
"releaseType": "Beta1"
}
},
"deviceConfig": {},
"module": {
"package": "com.example.permissionchange",
"name": ".MyApplication",
"deviceType": [
"phone"
],
"distro": {
"deliveryWithInstall": true,
"moduleName": "entry",
"moduleType": "entry"
},
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"name": ".MainAbility",
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "$string:app_name",
"type": "page",
"launchType": "standard",
"visible": true
}
],
"js": [
{
"name": "default",
"window": {
"designWidth": 720,
"autoDesignWidth": false
},
"pages": [
"pages/index/index",
"pages/permissionchange/permissionchange"
]
}
],
"defPermissions": [
{
"name": "com.permission.BMS_PERMISSIONCHANGE_A",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_B",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_C",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_D",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_E",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_F",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_G",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_H",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_I",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_J",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_K",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_L",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_M",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_N",
"grantMode": "user_grant",
"availableScope": []
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_O",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_P",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_Q",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_R",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},{
"name": "com.permission.BMS_PERMISSIONCHANGE_S",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_T",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_U",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_V",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_W",
"grantMode": "user_grant",
"availableScope": [
"signature"
]
}
],
"reqPermissions": [
{
"name": "com.permission.BMS_PERMISSIONCHANGE_A",
"reason": "Need BMS_PERMISSIONCHANGE_A",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_B",
"reason": "Need BMS_PERMISSIONCHANGE_B",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_C",
"reason": "Need BMS_PERMISSIONCHANGE_C",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_D",
"reason": "Need BMS_PERMISSIONCHANGE_D",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_E",
"reason": "Need BMS_PERMISSIONCHANGE_E",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_F",
"reason": "Need BMS_PERMISSIONCHANGE_F",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_G",
"reason": "Need BMS_PERMISSIONCHANGE_G",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_H",
"reason": "Need BMS_PERMISSIONCHANGE_H",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_I",
"reason": "Need BMS_PERMISSIONCHANGE_I",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_J",
"reason": "Need BMS_PERMISSIONCHANGE_J",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_K",
"reason": "Need BMS_PERMISSIONCHANGE_K",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_L",
"reason": "Need BMS_PERMISSIONCHANGE_L",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_M",
"reason": "Need BMS_PERMISSIONCHANGE_M",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_N",
"reason": "Need BMS_PERMISSIONCHANGE_N",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_O",
"reason": "Need BMS_PERMISSIONCHANGE_O",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_P",
"reason": "Need BMS_PERMISSIONCHANGE_P",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_Q",
"reason": "Need BMS_PERMISSIONCHANGE_Q",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_R",
"reason": "Need BMS_PERMISSIONCHANGE_R",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_S",
"reason": "Need BMS_PERMISSIONCHANGE_S",
"usedScene": {
"ability": [
"com.example.permissionchange.MainAbility"
],
"when": "always"
}
}
]
}
}
\ No newline at end of file
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export default {
onCreate() {
console.info('AceApplication onCreate');
},
onDestroy() {
console.info('AceApplication onDestroy');
}
};
{
"strings": {
"hello": "Hello",
"world": "World"
}
}
\ No newline at end of file
{
"strings": {
"hello": "您好",
"world": "世界"
}
}
\ No newline at end of file
.container {
flex-direction: column;
justify-content: center;
align-items: center;
}
.title {
margin-top: 10px;
font-size: 40px;
color: #000000;
justify-content: center;
text-align: center;
}
.todo-wraper {
width: 100%;
height: 80%;
justify-content: center;
diveder-color:#FF0000;
scrollbar-color: #57000000;
scrollbar-width: 30px;
}
.todo-item {
width: 100%;
height: 150px;
flex-direction: column;
justify-content: center;
align-self:center;
}
.btn{
width: 350px;
height: 100px;
font-size: 20px;
}
\ No newline at end of file
<div class="container">
<div>
<text class="title">
{{ title }}
</text>
</div>
<div>
<list class="todo-wraper" scrollbar="on" shapemode="rect" divider="true">
<list-item for="{{testcase}}" class="todo-item">
<button class="btn" value="{{$item.caseName}}" onclick="jumpPermission($item.num, $item.item)"></button>
</list-item>
</list>
</div>
</div>
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import router from '@system.router';
const injectRef = Object.getPrototypeOf(global) || global
injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
const ITEM_ZERO = 0;
const ITEM_ONE = 1;
const ITEM_TWO = 2;
const ITEM_THREE = 3;
const ITEM_FOUR = 4;
const ITEM_FIVE = 5;
const ITEM_SIX = 6;
const ITEM_SEVEN = 7;
const ITEM_EIGHT = 8;
const ITEM_NINE = 9;
const ITEM_TEN = 10;
const ITEM_ELEVEN = 11;
const ITEM_TWELVE = 12;
const ITEM_THIRTEEN = 13;
const ITEM_FOURTEEN = 14;
const ITEM_FIFTEEN = 15;
const ITEM_SIXTEEN = 16;
const ITEM_SEVENTEEN = 17;
const ITEM_EIGHTEEN = 18;
const ITEM_NINETEEN =19;
const ITEM_TWENTY = 20
export default {
data: {
title: "BmsSystemTest",
testcase: [
{
/**
* @tc.number: bms_permissionChange_0100
* @tc.name: on(permissionChange, uids, callback) : register permission change
* off(permissionChange, uids, callback) : unregister permission change
* @tc.desc: 1.Register permission changes to monitor the permission changes of an application
* 2.Request permissions
* 3.Unregister permission changes
*/
caseName: "bms_permissionChange_0100",
num: "_0100",
item: ITEM_ZERO
},
{
/**
* @tc.number: bms_permissionChange_0200
* @tc.name: on(permissionChange, uids, callback) : register permission change
* off(permissionChange, uids, callback) : unregister permission change
* @tc.desc: 1.Register permission changes to monitor the permission changes of an application
* 2.Request a permission that does not exist
* 3.Unregister permission changes
*/
caseName: "bms_permissionChange_0200",
num: "_0200",
item: ITEM_ONE
},
{
/**
* @tc.number: bms_permissionChange_0300
* @tc.name: on(permissionChange, uids, callback) : register permission change
* off(permissionChange, uids, callback) : unregister permission change
* @tc.desc: 1.Register permission changes to monitor the permission changes of three applications
* 2.Start other application to request permissions
* 3.Unregister permission changes
*/
caseName: "bms_permissionChange_0300",
num: "_0300",
item: ITEM_TWO
},
{
/**
* @tc.number: bms_permissionChange_0400
* @tc.name: on(permissionChange, uids, callback) : register permission change
* off(permissionChange, uids, callback) : unregister permission change
* @tc.desc: 1.Register error permission changes to monitor the permission changes of an application
* 2.Request permissions
*/
caseName: "bms_permissionChange_0400",
num: "_0400",
item: ITEM_THREE
},
{
/**
* @tc.number: bms_permissionChange_0500
* @tc.name: on(permissionChange, uids, callback) : register permission change
* off(permissionChange, uids, callback) : unregister permission change
* @tc.desc: 1.Repeatedly register permission changes to monitor the permission changes
* of an application
* 2.Request permissions
* 3.Unregister permission changes
*/
caseName: "bms_permissionChange_0500",
num: "_0500",
item: ITEM_FOUR
},
{
/**
* @tc.number: bms_permissionChange_0600
* @tc.name: on(permissionChange, uids, callback) : register permission change
* off(permissionChange, uids, callback) : unregister permission change
* @tc.desc: 1.Repeatedly register three different permission changes to monitor the permission changes
* of an application
* 2.Request permissions
* 3.Unregister those permission changes
*/
caseName: "bms_permissionChange_0600",
num: "_0600",
item: ITEM_FIVE
},
{
/**
* @tc.number: bms_permissionChange_0700
* @tc.name: on(permissionChange, uids, callback) : register permission change
* off(permissionChange, uids, callback) : unregister permission change
* @tc.desc: 1.Repeatly register permission changes to monitor the permission changes of an application
* 2.Request permissions
* 3.Unregister permission changes without callback
*/
caseName: "bms_permissionChange_0700",
num: "_0700",
item: ITEM_SIX
},
{
/**
* @tc.number: bms_permissionChange_0800
* @tc.name: on(permissionChange, uids, callback) : register permission change
* off(permissionChange, uids, callback) : unregister permission change
* @tc.desc: 1.Register three permission changes events to monitor the permission changes of an application
* 2.Request permissions
* 3.Unregister permission changes without callback
*/
caseName: "bms_permissionChange_0800",
num: "_0800",
item: ITEM_SEVEN
},
{
/**
* @tc.number: bms_permissionChange_0900
* @tc.name: on(permissionChange, uids, callback) : register permission change
* off(permissionChange, uids, callback) : unregister permission change
* @tc.desc: 1.Register permission changes to monitor the permission changes of an application
* 2.Request permissions
* 3.Unregister error permission changes
*/
caseName: "bms_permissionChange_0900",
num: "_0900",
item: ITEM_SIXTEEN
},
{
/**
* @tc.number: bms_anyPermissionChange_0100
* @tc.name: on(anyPermissionChange, callback) : register all permission change
* off(anyPermissionChange, callback) : unregister all permission change
* @tc.desc: 1.Register any permission changes to monitor the permission changes of all applications
* 2.Request permissions
* 3.Unregister any permission changes
*/
caseName: "bms_anyPermissionChange_0100",
num: "_0100",
item: ITEM_EIGHT
},
{
/**
* @tc.number: bms_anyPermissionChange_0200
* @tc.name: on(anyPermissionChange, callback) : register all permission change
* off(anyPermissionChange, callback) : unregister all permission change
* @tc.desc: 1.Register any permission changes to monitor the permission changes of all applications
* 2.Request a permission that does not exist
* 3.Unregister any permission changes
*/
caseName: "bms_anyPermissionChange_0200",
num: "_0200",
item: ITEM_NINE
},
{
/**
* @tc.number: bms_anyPermissionChange_0300
* @tc.name: on(anyPermissionChange, callback) : register all permission change
* off(anyPermissionChange, callback) : unregister all permission change
* @tc.desc: 1.Register any permission changes to monitor the permission changes of all applications
* 2.Start other abilities to request permissions
* 3.Unregister any permission changes
*/
caseName: "bms_anyPermissionChange_0300",
num: "_0300",
item: ITEM_TEN
},
{
/**
* @tc.number: bms_anyPermissionChange_0400
* @tc.name: on(anyPermissionChange, callback) : register all permission change
* off(anyPermissionChange, callback) : unregister all permission change
* @tc.desc: 1.Register any error permission changes to monitor the permission changes
* of all applications
* 2.Request permissions
*/
caseName: "bms_anyPermissionChange_0400",
num: "_0400",
item: ITEM_ELEVEN
},
{
/**
* @tc.number: bms_anyPermissionChange_0500
* @tc.name: on(anyPermissionChange, callback) : register all permission change
* off(anyPermissionChange, callback) : unregister all permission change
* @tc.desc: 1.Repeatedly register any permission changes to monitor the permission changes
* of all applications
* 2.Request permissions
* 3.Unregister any permission changes
*/
caseName: "bms_anyPermissionChange_0500",
num: "_0500",
item: ITEM_TWELVE
},
{
/**
* @tc.number: bms_anyPermissionChange_0600
* @tc.name: on(anyPermissionChange, callback) : register all permission change
* off(anyPermissionChange, callback) : unregister all permission change
* @tc.desc: 1.Repeatedly register three different any permission changes to monitor the permission changes
* of all applications
* 2.Request permissions
* 3.Unregister those any permission changes callback
*/
caseName: "bms_anyPermissionChange_0600",
num: "_0600",
item: ITEM_THIRTEEN
},
{
/**
* @tc.number: bms_anyPermissionChange_0700
* @tc.name: on(anyPermissionChange, callback) : register all permission change
* off(anyPermissionChange, callback) : unregister all permission change
* @tc.desc: 1.Repeatedly register any permission changes to monitor the permission changes
* of all applications
* 2.Request permissions
* 3.Unregister any permission changes without callback
*/
caseName: "bms_anyPermissionChange_0700",
num: "_0700",
item: ITEM_FOURTEEN
},
{
/**
* @tc.number: bms_anyPermissionChange_0800
* @tc.name: on(anyPermissionChange, callback) : register all permission change
* off(anyPermissionChange, callback) : unregister all permission change
* @tc.desc: 1.Register three any permission changes events to monitor the permission changes of all applications
* 2.Request permissions
* 3.Unregister any permission changes without callback
*/
caseName: "bms_anyPermissionChange_0800",
num: "_0800",
item: ITEM_FIFTEEN
},
{
/**
* @tc.number: bms_anyPermissionChange_0900
* @tc.name: on(permissionChange, uids, callback) : register permission change
* off(permissionChange, uids, callback) : unregister permission change
* @tc.desc: 1.Register permission changes to monitor the permission changes of of all applications
* 2.Request permissions
* 3.Unregister error any permission changes
*/
caseName: "bms_anyPermissionChange_0900",
num: "_0900",
item: ITEM_SEVENTEEN
},
]
},
onInit() {
this.title = "Bms PermissionChange Test";
},
onShow() {
},
onReady() {
console.info('onReady finish')
},
onBackPress() {
},
jumpPermission(caseNum, caseItem) {
console.info('===========clickAction===========')
router.replace({
uri: 'pages/permissionchange/permissionchange',
params: {
num: caseNum,
item: caseItem
}
})
},
}
.container {
display: flex;
justify-content: center;
align-items: center;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
}
.title {
font-size: 30px;
text-align: center;
width: 100%;
height: 80px;
}
div{
flex-direction: column;
align-items: center;
justify-content: center;
}
.btn{
margin-bottom: 10px;
width: 200px;
height: 80px;
}
.todo-title {
font-style: normal;
font-size: 30px;
}
.log {
font-size: 20px;
text-align: center;
width: 100%;
height: 1000px;
}
.todo-wraper {
width: 100%;
height: 100%;
justify-content: center;
diveder-color:#0090FF;
scrollbar-color: #57000000;
scrollbar-width: 10px;
}
.todo-item {
width: 100%;
height: 100px;
flex-direction: column;
justify-content: center;
align-self:center;
}
.text {
margin: 20%;
}
\ No newline at end of file
<div class="container">
<div>
<text class="title">
{{ title }}
</text>
</div>
<div class="log">
<textarea class="log">
{{logmessage}}
</textarea>
</div>
<div>
<list class="todo-wraper" scrollbar="on" shapemode="rect" divider="true">
<list-item for="{{testcase[caseItem]}}" class="todo-item" on:click="runTest({{$item}})">
<text class="todo-title">{{$item + caseNum}}</text>
</list-item>
</list>
<input class="btn" type="button" value="Back" on:click="backIndex"></input>
<input class="btn" type="button" value="Clear" on:click="clearLog"></input>
</div>
</div>
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import router from '@system.router';
export default {
data: {
title: "Bms permission change",
logmessage: "This is log message:\n",
testcase: [
[
"registerPermissionChange",
"requestPermissions",
"unregisterPermissionChange",
],
[
"registerPermissionChange",
"requestNotExistPermissions",
"unregisterPermissionChange",
],
[
"registerThreeAppsPermissionChange",
"requestPermissionsFirst",
"startFirstRequestPermissions",
"startSecondRequestPermissions",
"unregisterThreeAppsPermissionChange",
],
[
"registerErrPermissionChange",
"requestPermissionsSecond",
],
[
"registerPermissionChangeRepeat",
"requestPermissionsThird",
"unregisterPermissionChange",
],
[
"registerThreePermissionChangeCallback",
"requestPermissionsFourth",
"unregisterThreePermissionChangeCallback",
],
[
"registerThreePermissionChangeCallback",
"requestPermissionsFifth",
"unregisterPermissionChangeNoCallback",
],
[
"registerPermissionChangeRepeat",
"requestPermissionsSixth",
"unregisterPermissionChangeNoCallback",
],
[
"registerAnyPermissionChange",
"requestPermissionsSeventh",
"unregisterAnyPermissionChange",
],
[
"registerAnyPermissionChange",
"requestNotExistPermissions",
"unregisterAnyPermissionChange",
],
[
"registerThreeAnyPermissionChange",
"requestPermissionsEighth",
"startFirstRequestPermissions",
"startSecondRequestPermissions",
"unregisterThreeAnyPermissionChange",
],
[
"registerErrAnyPermissionChange",
"requestPermissionsNinth",
],
[
"registerAnyPermissionChangeRepeat",
"requestPermissionsTenth",
"unregisterAnyPermissionChange",
],
[
"registerThreeAnyPermissionChangeCallback",
"requestPermissionsEleventh",
"unregisterThreeAnyPermissionChangeCallback",
],
[
"registerAnyPermissionChangeRepeat",
"requestPermissionsTwelfth",
"unregisterAnyPermissionChangeNoCallback",
],
[
"registerThreeAnyPermissionChangeCallback",
"requestPermissionsThirteenth",
"unregisterAnyPermissionChangeNoCallback",
],
[
"registerPermissionChange",
"requestPermissionsFifteenth",
"unregisterErrPermissionChange",
"unregisterPermissionChange",
],
[
"registerAnyPermissionChange",
"requestPermissionsFourteenth",
"unregisterErrAnyPermissionChange",
"unregisterAnyPermissionChange",
]
],
},
onInit() {
this.title = "Bms permission change";
this.logmessage = "This is log message:\n";
this.caseNum = this.num;
this.caseItem = this.item;
},
onShow() {
},
onReady() {
console.info('onReady finish')
},
onBackPress() {
},
async stopAbility() {
},
backIndex() {
router.replace({
uri: 'pages/index/index'
})
},
async runTest(funcName) {
console.debug("======Run func ======:" + JSON.stringify(funcName))
let { runFunc } = require('./testfunc.js')
this.logmessage += await runFunc(funcName, this) + '\n';
},
clearLog() {
this.logmessage = "";
}
}
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import bundle from '@ohos.bundle'
import featureAbility from '@ohos.ability.featureAbility'
var receive;
var uid;
const PERMISSIONCHANGE = 'permissionChange';
const ANYPERMISSIONCHANGE = 'anyPermissionChange';
export async function runFunc(caseName, obj) {
console.debug("======Func name is ======:" + JSON.stringify(caseName))
var dataInfo = await bundle.getBundleInfo('com.example.permissionchange', 1);
uid = dataInfo.uid;
receive = obj;
allFunc[caseName].func();
return getFuncInfo(caseName);
}
export function getFuncInfo(caseName) {
console.debug("======GetCaseInfo======:" + JSON.stringify(caseName))
return allFunc[caseName].info;
}
var allFunc = {
registerPermissionChange: {
func: () => { bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission) },
info: "register permissionChange event."
},
registerAnyPermissionChange: {
func: () => { bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission); },
info: "register anypermissionChange event."
},
registerThreeAnyPermissionChange: {
func: () => { bundle.on(ANYPERMISSIONCHANGE, onReciveThreeAnyPermission); },
info: "register anypermissionChange event."
},
requestPermissions: {
func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_A"]) },
info: "request permissions."
},
requestPermissionsFirst: {
func: () => {
requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_B", "com.permission.BMS_PERMISSIONCHANGE_C",
"com.permission.BMS_PERMISSIONCHANGE_D"])
},
info: "request permissions First."
},
requestPermissionsSecond: {
func: () => {
requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_E"])
},
info: "request permissions Second."
},
requestPermissionsThird: {
func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_F"]) },
info: "request permissions Third."
},
requestPermissionsFourth: {
func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_G"]) },
info: "request permissions Fourth."
},
requestPermissionsFifth: {
func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_H"]) },
info: "request permissions Fifth."
},
requestPermissionsSixth: {
func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_I"]) },
info: "request permissions Sixth."
},
requestPermissionsSeventh: {
func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_J"]) },
info: "request permissions Seventh."
},
requestPermissionsEighth: {
func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_K"]) },
info: "request permissions Eighth."
},
requestPermissionsNinth: {
func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_L"]) },
info: "request permissions Ninth."
},
requestPermissionsTenth: {
func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_N"]) },
info: "request permissions Tenth."
},
requestPermissionsEleventh: {
func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_O"]) },
info: "request permissions Eleventh."
},
requestPermissionsTwelfth: {
func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_P"]) },
info: "request permissions Twelfth."
},
requestPermissionsThirteenth: {
func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_Q"]) },
info: "request permissions Thirteenth."
},
requestPermissionsFourteenth: {
func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_R"]) },
info: "request permissions Fourteenth."
},
requestPermissionsFifteenth: {
func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_S"]) },
info: "request permissions Fifteenth."
},
startFirstRequestPermissions: {
func: () => {
startAbilityToRequestPermissions("com.example.firstrequestpermissions",
"com.example.firstrequestpermissions.MainAbility")
},
info: "start first app to request permissions."
},
startSecondRequestPermissions: {
func: () => {
startAbilityToRequestPermissions("com.example.secondrequestpermissions",
"com.example.secondrequestpermissions.MainAbility")
},
info: "start second app to request permissions."
},
unregisterPermissionChange: {
func: () => { bundle.off(PERMISSIONCHANGE, [uid], onRecivePermission) },
info: "unregister permissionChange event."
},
unregisterAnyPermissionChange: {
func: () => { bundle.off(ANYPERMISSIONCHANGE, onReciveAnyPermission); },
info: "unregister anypermissionChange event."
},
unregisterThreeAnyPermissionChange: {
func: () => { bundle.off(ANYPERMISSIONCHANGE, onReciveThreeAnyPermission); },
info: "unregister anypermissionChange event."
},
unregisterErrPermissionChange: {
func: () => { bundle.off('error', [uid], onRecivePermission) },
info: "unregister permissionChange event."
},
unregisterErrAnyPermissionChange: {
func: () => { bundle.off('error', onReciveAnyPermission); },
info: "unregister anypermissionChange event."
},
registerErrPermissionChange: {
func: () => { bundle.on('error', [uid], onRecivePermission) },
info: "register error permissionChange."
},
registerErrAnyPermissionChange: {
func: () => { bundle.on('error', onReciveAnyPermission) },
info: "register error anyPermissionChange."
},
unregisterErrPermissionChange: {
func: () => { bundle.off('eror', [uid], onRecivePermission) },
info: "unregister error permissionChange."
},
unregisterErrAnyPermissionChange: {
func: () => { bundle.off('eror', onReciveAnyPermission) },
info: "unregister error anyPermissionChange."
},
unregisterPermissionChangeNotAll: {
func: unregisterPermissionChangeNotAll,
info: "unregister permission change does not include all uids."
},
requestNotExistPermissions: {
func: () => { requestPermissions(["noPermission"]) },
info: "request a permission that does not exist "
},
registerPermissionChangeRepeat: {
func: registerPermissionChangeRepeat,
info: "repeatedly register permissionChange event."
},
registerAnyPermissionChangeRepeat: {
func: registerAnyPermissionChangeRepeat,
info: "repeatedly register anyPermissionChange event."
},
unregisterThreePermissionChangeCallback: {
func: () => {
bundle.off(PERMISSIONCHANGE, [uid], onRecivePermission);
bundle.off(PERMISSIONCHANGE, [uid], onRecivePermission2);
bundle.off(PERMISSIONCHANGE, [uid], onRecivePermission3);
},
info: "unregister three different PermissionChange callback"
},
unregisterThreeAnyPermissionChangeCallback: {
func: () => {
bundle.off(ANYPERMISSIONCHANGE, onReciveAnyPermission);
bundle.off(ANYPERMISSIONCHANGE, onReciveAnyPermission2);
bundle.off(ANYPERMISSIONCHANGE, onReciveAnyPermission3);
},
info: "unregister three different anyPermissionChange callback"
},
registerThreeAppsPermissionChange: {
func: registerThreeApp,
info: "register three applications permissionChange event."
},
unregisterThreeAppsPermissionChange: {
func: unregisterThreeApp,
info: "unregister three applications permissionChange event."
},
unregisterPermissionChangeNoCallback: {
func: () => { bundle.off(PERMISSIONCHANGE, [uid]); },
info: "unregister permissionChange without callback."
},
unregisterAnyPermissionChangeNoCallback: {
func: () => { bundle.off(ANYPERMISSIONCHANGE); },
info: "unregister anyPermissionChange event without callback."
},
registerThreePermissionChangeCallback: {
func: () => {
bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission);
bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission2);
bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission3);
},
info: "register three different PermissionChange callback"
},
registerThreeAnyPermissionChangeCallback: {
func: () => {
bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission)
bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission2);
bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission3);
},
info: "register three different AnyPermissionChange callback"
},
}
async function onRecivePermission(err, data) {
console.info('======permission changed=======');
console.info("permission changed err code" + err.code);
console.info("permission changed uid" + data);
if (data == undefined && err.code == 0) {
receive.logmessage += "unregister permission SUCCESS!\n"
} else if (err.code != 0) {
receive.logmessage += "unregister permission FAIL!\n"
} else if (data == uid) {
receive.logmessage += "permission change SUCCESS, change uid is " + data + '\n'
} else {
receive.logmessage += "permission change FAILED, change uid is " + data + '\n'
}
}
async function onRecivePermission2(err, data) {
console.info('======permission changed second=======');
console.info("permission changed err code" + err.code);
console.info("permission changed uid" + data);
if (data == undefined && err.code == 0) {
receive.logmessage += "callback2 unregister permission SUCCESS!\n"
} else if (err.code != 0) {
receive.logmessage += "callback2 unregister permission FAIL!\n"
} else if (data == uid) {
receive.logmessage += "callback2 permission change SUCCESS, change uid is " + data + '\n'
} else {
receive.logmessage += "callback2 permission change FAILED, change uid is " + data + '\n'
}
}
async function onRecivePermission3(err, data) {
console.info('======permission changed third=======');
console.info("permission changed err code" + err.code);
console.info("permission changed uid" + data);
if (data == undefined && err.code == 0) {
receive.logmessage += "callback3 unregister permission SUCCESS!\n"
} else if (err.code != 0) {
receive.logmessage += "callback3 unregister permission FAIL!\n"
} else if (data == uid) {
receive.logmessage += "callback3 permission change SUCCESS, change uid is " + data + '\n'
} else {
receive.logmessage += "callback3 permission change FAILED, change uid is " + data + '\n'
}
}
async function onReciveAnyPermission(err, data) {
console.info('======any permission changed=======');
console.info("permission changed err code" + err.code);
console.info("permission changed uid" + data);
if (data == undefined && err.code == 0) {
receive.logmessage += "unregister anyPermission SUCCESS!\n"
} else if (err.code != 0) {
receive.logmessage += "unregister anyPermission FAIL!\n"
} else if (data == uid) {
receive.logmessage += "anyPermission change SUCCESS, change uid is " + data + '\n'
} else {
receive.logmessage += "anyPermission change FAILED, change uid is " + data + '\n'
}
}
async function onReciveAnyPermission2(err, data) {
console.info('======any permission changed=======');
console.info("permission changed err code" + err.code);
console.info("permission changed uid" + data);
if (data == undefined && err.code == 0) {
receive.logmessage += "callback2 unregister anyPermission SUCCESS!\n"
} else if (err.code != 0) {
receive.logmessage += "callback2 unregister anyPermission FAIL!\n"
} else if (data == uid) {
receive.logmessage += "callback2 anyPermission change SUCCESS, change uid is " + data + '\n'
} else {
receive.logmessage += "callback2 anyPermission change FAILED, change uid is " + data + '\n'
}
}
async function onReciveAnyPermission3(err, data) {
console.info('======any permission changed=======');
console.info("permission changed err code" + err.code);
console.info("permission changed uid" + data);
if (data == undefined && err.code == 0) {
receive.logmessage += "callback3 unregister anyPermission SUCCESS!\n"
} else if (err.code != 0) {
receive.logmessage += "callback3 unregister anyPermission FAIL!\n"
} else if (data == uid) {
receive.logmessage += "callback3 anyPermission change SUCCESS, change uid is " + data + '\n'
} else {
receive.logmessage += "callback3 anyPermission change FAILED, change uid is " + data + '\n'
}
}
async function requestPermissions(permissions) {
console.debug("==========begin request permissions==========")
var context = await featureAbility.getContext();
await context.requestPermissionsFromUser(permissions, 1,
(err, data) => {
console.log("RequestPermissionForUser:requestCode=" + data.requestCode);
for (var j = 0; j < data.permissions.length; j++) {
console.log("RequestPermissionForUser permissions : " + data.permissions[j]);
}
for (var j = 0; j < data.grantResults.length; j++) {
console.log("RequestPermissionForUser grantResults : " + data.grantResults[j]);
}
});
}
async function startAbilityToRequestPermissions(newBundleName, newAbilityName) {
console.info('=======start Ability========');
await featureAbility.startAbility(
{
want:
{
bundleName: newBundleName,
abilityName: newAbilityName
}
}
);
}
async function unregisterPermissionChangeNotAll() {
console.debug("==========begin unregister permissionChange without all uids==========");
var dataInfo1 = await bundle.getBundleInfo('com.example.permissionchange', 1);
var dataInfo2 = await bundle.getBundleInfo('com.example.firstrequestpermissions', 1);
await bundle.off(PERMISSIONCHANGE, [dataInfo1.uid, dataInfo2.uid], onRecivePermission);
}
async function onReciveThreePermission(err, data) {
var dataInfo1 = await bundle.getBundleInfo('com.example.firstrequestpermissions', 1);
var dataInfo2 = await bundle.getBundleInfo('com.example.secondrequestpermissions', 1);
console.info('======permission changed=======');
console.info("permission changed err code" + err.code);
console.info("permission changed uid" + data);
if (data == undefined && err.code == 0) {
receive.logmessage += "unregister permission SUCCESS!\n"
} else if (err.code != 0) {
receive.logmessage += "unregister permission FAIL!\n"
} else if (data == uid || data == dataInfo1.uid || data == dataInfo2.uid) {
receive.logmessage += "permission change SUCCESS, change uid is " + data + '\n'
} else {
receive.logmessage += "permission change FAILED, change uid is " + data + '\n'
}
}
async function registerThreeApp() {
var dataInfo1 = await bundle.getBundleInfo('com.example.firstrequestpermissions', 1);
var dataInfo2 = await bundle.getBundleInfo('com.example.secondrequestpermissions', 1);
await bundle.on(PERMISSIONCHANGE, [uid, dataInfo1.uid, dataInfo2.uid], onReciveThreePermission);
}
async function unregisterThreeApp() {
var dataInfo1 = await bundle.getBundleInfo('com.example.firstrequestpermissions', 1);
var dataInfo2 = await bundle.getBundleInfo('com.example.secondrequestpermissions', 1);
await bundle.off(PERMISSIONCHANGE, [uid, dataInfo1.uid, dataInfo2.uid], onReciveThreePermission);
}
async function registerPermissionChangeRepeat() {
console.debug("==========begin repeat register permissionChange==========")
await bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission);
await bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission);
await bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission);
await bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission);
await bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission);
await bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission);
}
async function registerAnyPermissionChangeRepeat() {
console.debug("==========begin repeat register anyPermissionChange==========")
await bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission);
await bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission);
await bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission);
await bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission);
await bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission);
}
async function onReciveThreeAnyPermission(err, data) {
console.info('======any permission changed=======');
console.info("permission changed err code" + err.code);
console.info("permission changed uid" + data);
var dataInfo1 = await bundle.getBundleInfo('com.example.firstrequestpermissions', 1);
var dataInfo2 = await bundle.getBundleInfo('com.example.secondrequestpermissions', 1);
if (data == undefined && err.code == 0) {
receive.logmessage += "unregister anyPermission SUCCESS!\n"
} else if (err.code != 0) {
receive.logmessage += "unregister anyPermission FAIL!\n"
} else if (data == uid || data == dataInfo1.uid || data == dataInfo2.uid) {
receive.logmessage += "anyPermission change SUCCESS, change uid is " + data + '\n'
} else {
receive.logmessage += "anyPermission change FAILED, change uid is " + data + '\n'
}
}
\ No newline at end of file
{
"string": [
{
"name": "app_name",
"value": "bmspermissonchange"
},
{
"name": "mainability_description",
"value": "JS_Phone_Empty Feature Ability"
}
]
}
\ No newline at end of file
# Copyright (c) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//test/xts/tools/build/suite.gni")
ohos_hap("FirstRequestPermissions") {
hap_profile = "./src/main/config.json"
hap_name = "FirstRequestPermissions"
subsystem_name = XTS_SUITENAME
final_hap_path =
"${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/testcases/${hap_name}.hap"
testonly = true
deps = [
":hjs_demo_js_assets",
":hjs_demo_resources",
]
certificate_profile = "./signature/openharmony_sx.p7b"
}
ohos_js_assets("hjs_demo_js_assets") {
source_dir = "./src/main/js/default"
}
ohos_resources("hjs_demo_resources") {
sources = [ "./src/main/js/resources" ]
hap_profile = "./src/main/config.json"
}
{
"app": {
"bundleName": "com.example.firstrequestpermissions",
"vendor": "example",
"version": {
"code": 1,
"name": "1.0"
},
"apiVersion": {
"compatible": 4,
"target": 5,
"releaseType": "Beta1"
}
},
"deviceConfig": {},
"module": {
"package": "com.example.firstrequestpermissions",
"name": ".MyApplication",
"deviceType": [
"phone"
],
"distro": {
"deliveryWithInstall": true,
"moduleName": "entry",
"moduleType": "entry"
},
"abilities": [
{
"visible": true,
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"name": "com.example.firstrequestpermissions.MainAbility",
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "$string:app_name",
"type": "page",
"launchType": "standard",
"permissions": ["ohos.permission.CAMERA"]
}
],
"js": [
{
"pages": [
"pages/index/index"
],
"name": "default",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
],
"reqPermissions": [
{
"name": "com.permission.BMS_PERMISSIONCHANGE_U",
"reason": "Need PERMISSION_U",
"usedScene": {
"ability": [
"com.example.firstrequestpermissions.MainAbility"
],
"when": "always"
}
},
{
"name": "com.permission.BMS_PERMISSIONCHANGE_V",
"reason": "Need PERMISSION_V",
"usedScene": {
"ability": [
"com.example.firstrequestpermissions.MainAbility"
],
"when": "always"
}
}
]
}
}
\ No newline at end of file
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export default {
onCreate() {
console.info('AceApplication onCreate');
},
onDestroy() {
console.info('AceApplication onDestroy');
}
};
{
"strings": {
"hello": "Hello",
"world": "World"
}
}
\ No newline at end of file
{
"strings": {
"hello": "您好",
"world": "世界"
}
}
\ No newline at end of file
.container {
flex-direction: column;
justify-content: center;
align-items: center;
}
.title {
font-size: 100px;
}
.button {
margin-top: 15px;
font-size:35px;
background-color: aqua;
text-color: black;
}
<div class="container">
<text class="title">
{{ title }}
</text>
<button class="button" type="capsule" value="申请权限" onclick="reqPermission">
</button>
</div>
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import featureAbility from '@ohos.ability.featureAbility'
const injectRef = Object.getPrototypeOf(global) || global
injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
export default {
data: {
title: ""
},
onInit() {
this.title = "Start First"
},
onShow() {
},
async reqPermission() {
var context = await featureAbility.getContext();
context.requestPermissionsFromUser(["com.permission.BMS_PERMISSIONCHANGE_U",
"com.permission.BMS_PERMISSIONCHANGE_V"], 1,
(err, data) => {
console.log("RequestPermissionForUser:requestCode=" + data.requestCode);
for (var j = 0; j < data.permissions.length; j++) {
console.log("RequestPermissionForUser permissions : " + data.permissions[j]);
}
for (var j = 0; j < data.grantResults.length; j++) {
console.log("RequestPermissionForUser grantResults : " + data.grantResults[j]);
}
});
},
}
{
"string": [
{
"name": "app_name",
"value": "firstrequestpermission"
},
{
"name": "mainability_description",
"value": "JS_Phone_Empty Feature Ability"
}
]
}
\ No newline at end of file
......@@ -33,10 +33,21 @@
"entity.system.home"
],
"actions": [
"action.system.home"
"action.system.third5A"
]
}
],
"backgroundModes": [
"dataTransfer",
"audioPlayback",
"audioRecording",
"location",
"bluetoothInteraction",
"multiDeviceConnection",
"wifiInteraction",
"voip",
"taskKeeping"
],
"name": "com.example.third5.AMainAbility",
"srcLanguage": "js",
"icon": "$media:icon",
......@@ -114,10 +125,14 @@
"entity.system.home"
],
"actions": [
"action.system.home"
"action.system.third5B"
]
}
],
"backgroundModes": [
"dataTransfer",
"voip"
],
"name": ".BMainAbility",
"srcLanguage": "js",
"icon": "$media:icon",
......
......@@ -2,6 +2,7 @@
"app": {
"bundleName": "com.example.third1",
"vendor": "example",
"singleUser":true,
"version": {
"code": 1,
"name": "1.0"
......@@ -12,7 +13,11 @@
"releaseType": "Beta1"
}
},
"deviceConfig": {},
"deviceConfig": {
"default":{
"keepAlive":true
}
},
"module": {
"package": "com.example.third1.entry",
"name": "com.example.third1.BmsThirdBundle1",
......@@ -36,6 +41,17 @@
]
}
],
"backgroundModes": [
"dataTransfer",
"audioPlayback",
"audioRecording",
"location",
"bluetoothInteraction",
"multiDeviceConnection",
"wifiInteraction",
"voip",
"taskKeeping"
],
"name": "com.example.third1.MainAbility",
"icon": "$media:icon",
"form": {
......
......@@ -2,6 +2,7 @@
"app": {
"bundleName": "com.example.third1",
"vendor": "example",
"singleUser":false,
"version": {
"code": 2,
"name": "2.0"
......@@ -12,7 +13,11 @@
"releaseType": "Beta1"
}
},
"deviceConfig": {},
"deviceConfig": {
"default":{
"keepAlive":false
}
},
"module": {
"package": "com.example.third1.entry",
"name": "com.example.third1.BmsThirdBundle1",
......@@ -37,6 +42,15 @@
]
}
],
"backgroundModes": [
"audioRecording",
"location",
"bluetoothInteraction",
"multiDeviceConnection",
"wifiInteraction",
"voip",
"taskKeeping"
],
"name": "com.example.third1.AMainAbility",
"icon": "$media:icon",
"description": "$string:mainability_description",
......
......@@ -2,6 +2,7 @@
"app": {
"bundleName": "com.example.system1",
"vendor": "example",
"singleUser":true,
"version": {
"code": 1,
"name": "1.0"
......@@ -12,7 +13,11 @@
"releaseType": "Beta1"
}
},
"deviceConfig": {},
"deviceConfig": {
"default":{
"keepAlive":true
}
},
"module": {
"package": "com.example.system1",
"name": ".BmsSystemBundle1",
......@@ -44,8 +49,7 @@
"type": "page",
"forms": [
{
"colorMode": "light",
"description": " JS1S Form",
"description": "JS1S Form",
"supportDimensions": [ "1*2", "2*2", "2*4", "4*4"],
"type": "JS",
"jsComponentName": "JS_name1S",
......@@ -59,11 +63,17 @@
},
"isDefault": true,
"deepLink": "ability://com.example.myapplication.fa/.MainAbility",
"defaultDimension": "1*2",
"defaultDimension": "4*4",
"name": "Form_JS1S",
"scheduledUpateTime": "21:55",
"scheduledUpdateTime": "10:30",
"updateEnabled": true,
"updateDuration": 1
"updateDuration": 1,
"formConfigAbility": "ability://com.example.system1.MainAbility",
"src": "/pages/card/index",
"window": {
"designWidth": 770,
"autoDesignWidth": true
}
}
],
"launchType": "standard",
......
......@@ -43,26 +43,28 @@
"type": "page",
"forms": [
{
"colorMode": "light",
"description": " JS1V Form",
"supportDimensions": [ "1*2", "2*2", "2*4", "4*4"],
"type": "JS",
"colorMode": "dark",
"description": "JS1V Form",
"supportDimensions": ["1*2", "2*2", "test", "2*4"],
"type": "Java",
"jsComponentName": "JS_name1V",
"metaData": {
"customizeData": [
{
"name": "originWidgetName1V",
"value": "com.openharmony.weather.testWidget1V"
}
]
"customizeData": [{
"name": "originWidgetName1V",
"value": "com.openharmony.weather.testWidget1V"
}]
},
"isDefault": true,
"isDefault": false,
"deepLink": "ability://com.example.myapplication.fa/.MainAbility",
"defaultDimension": "1*2",
"defaultDimension": "2*3",
"name": "Form_JS1V",
"scheduledUpateTime": "21:55",
"scheduledUpdateTime": "21:55",
"updateEnabled": true,
"updateDuration": 1
"updateDuration": 1,
"window": {
"designWidth": 750,
"autoDesignWidth": true
}
},
{
"colorMode": "light",
......
......@@ -36,6 +36,17 @@
]
}
],
"backgroundModes": [
"hello",
"audioPlayback",
"audioRecording",
"location",
"bluetoothInteraction",
"multiDeviceConnection",
"wifiInteraction",
"voip",
"taskKeeping"
],
"name": "com.example.third2.MainAbility",
"srcLanguage": "js",
"visible": true,
......
# Copyright (c) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//test/xts/tools/build/suite.gni")
ohos_hap("bmsThirdBundleTest6") {
hap_profile = "./src/main/config.json"
hap_name = "bmsThirdBundleTest6"
subsystem_name = XTS_SUITENAME
final_hap_path =
"${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/testcases/${hap_name}.hap"
testonly = true
deps = [
":hjs_demo_js_assets",
":hjs_demo_resources",
]
certificate_profile = "./signature/openharmony_sx.p7b"
}
ohos_js_assets("hjs_demo_js_assets") {
source_dir = "./src/main/js/default"
}
ohos_resources("hjs_demo_resources") {
sources = [ "./src/main/js/resources" ]
hap_profile = "./src/main/config.json"
}
{
"app": {
"bundleName": "com.example.third6",
"vendor": "example",
"version": {
"code": 1,
"name": "1.0"
},
"apiVersion": {
"compatible": 4,
"target": 5,
"releaseType": "Beta1"
}
},
"deviceConfig": {},
"module": {
"package": "com.example.third6",
"name": ".MyApplication",
"deviceType": [
"phone"
],
"distro": {
"deliveryWithInstall": true,
"moduleName": "entry",
"moduleType": "entry"
},
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"backgroundModes": [
"dataTransfer"
],
"name": ".MainAbility",
"visible": true,
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "$string:app_name",
"type": "page",
"launchType": "standard"
},
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"backgroundModes": [
"audioPlayback"
],
"name": ".MainAbilityA",
"visible": true,
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "$string:app_name",
"type": "page",
"launchType": "standard"
},
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"backgroundModes": [
"audioRecording"
],
"name": ".MainAbilityB",
"visible": true,
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "$string:app_name",
"type": "page",
"launchType": "standard"
},
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"backgroundModes": [
"location"
],
"name": ".MainAbilityC",
"visible": true,
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "$string:app_name",
"type": "page",
"launchType": "standard"
},
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"backgroundModes": [
"bluetoothInteraction"
],
"name": ".MainAbilityD",
"visible": true,
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "$string:app_name",
"type": "page",
"launchType": "standard"
},
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"backgroundModes": [
"multiDeviceConnection"
],
"name": ".MainAbilityE",
"visible": true,
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "$string:app_name",
"type": "page",
"launchType": "standard"
},
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"backgroundModes": [
"wifiInteraction"
],
"name": ".MainAbilityF",
"visible": true,
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "$string:app_name",
"type": "page",
"launchType": "standard"
},
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"backgroundModes": [
"voip"
],
"name": ".MainAbilityG",
"visible": true,
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "$string:app_name",
"type": "page",
"launchType": "standard"
},
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"backgroundModes": [
"taskKeeping"
],
"name": ".MainAbilityH",
"visible": true,
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "$string:app_name",
"type": "page",
"launchType": "standard"
}
],
"js": [
{
"pages": [
"pages/index/index"
],
"name": "default",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
]
}
}
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export default {
onCreate() {
console.info('AceApplication onCreate');
},
onDestroy() {
console.info('AceApplication onDestroy');
}
};
{
"strings": {
"hello": "Hello",
"world": "World"
}
}
\ No newline at end of file
{
"strings": {
"hello": "您好",
"world": "世界"
}
}
\ No newline at end of file
.container {
flex-direction: column;
justify-content: center;
align-items: center;
}
.title {
font-size: 100px;
}
<div class="container">
<text class="title">
{{ $t('strings.hello') }} {{ title }}
</text>
</div>
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const injectRef = Object.getPrototypeOf(global) || global
injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
export default {
data: {
title: ""
},
onInit() {
this.title = this.$t('strings.world');
},
}
{
"string": [
{
"name": "app_name",
"value": "third6"
},
{
"name": "mainability_description",
"value": "JS_Phone_Empty Feature Ability"
}
]
}
\ No newline at end of file
......@@ -2,6 +2,7 @@
"app": {
"bundleName": "com.example.third1",
"vendor": "example",
"singleUser":true,
"version": {
"code": 1,
"name": "1.0"
......@@ -12,7 +13,11 @@
"releaseType": "Beta1"
}
},
"deviceConfig": {},
"deviceConfig": {
"default":{
"keepAlive":true
}
},
"module": {
"package": "com.example.third3",
"name": ".BmsThirdBundle3",
......@@ -36,6 +41,17 @@
]
}
],
"backgroundModes": [
"dataTransfer",
"audioPlayback",
"audioRecording",
"location",
"bluetoothInteraction",
"multiDeviceConnection",
"wifiInteraction",
"voip",
"taskKeeping"
],
"name": "com.example.third3.MainAbility",
"icon": "$media:icon",
"description": "$string:mainability_description",
......
# Copyright (c) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//test/xts/tools/build/suite.gni")
ohos_hap("SecondRequestPermissions") {
hap_profile = "./src/main/config.json"
hap_name = "SecondRequestPermissions"
subsystem_name = XTS_SUITENAME
final_hap_path =
"${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/testcases/${hap_name}.hap"
testonly = true
deps = [
":hjs_demo_js_assets",
":hjs_demo_resources",
]
certificate_profile = "./signature/openharmony_sx.p7b"
}
ohos_js_assets("hjs_demo_js_assets") {
source_dir = "./src/main/js/default"
}
ohos_resources("hjs_demo_resources") {
sources = [ "./src/main/js/resources" ]
hap_profile = "./src/main/config.json"
}
{
"app": {
"bundleName": "com.example.secondrequestpermissions",
"vendor": "example",
"version": {
"code": 1,
"name": "1.0"
},
"apiVersion": {
"compatible": 4,
"target": 5,
"releaseType": "Beta1"
}
},
"deviceConfig": {},
"module": {
"package": "com.example.secondrequestpermissions",
"name": ".MyApplication",
"deviceType": [
"phone"
],
"distro": {
"deliveryWithInstall": true,
"moduleName": "entry",
"moduleType": "entry"
},
"abilities": [
{
"visible": true,
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"name": "com.example.secondrequestpermissions.MainAbility",
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "$string:app_name",
"type": "page",
"launchType": "standard"
}
],
"js": [
{
"pages": [
"pages/index/index"
],
"name": "default",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
],
"reqPermissions": [
{
"name": "com.permission.BMS_PERMISSIONCHANGE_W",
"reason": "Need PERMISSIONCHANGE W",
"usedScene": {
"ability": [
"com.example.secondrequestpermissions.MainAbility"
],
"when": "always"
}
}
]
}
}
\ No newline at end of file
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export default {
onCreate() {
console.info('AceApplication onCreate');
},
onDestroy() {
console.info('AceApplication onDestroy');
}
};
{
"strings": {
"hello": "您好",
"world": "世界"
}
}
\ No newline at end of file
.container {
flex-direction: column;
justify-content: center;
align-items: center;
}
.title {
font-size: 100px;
}
.button {
margin-top: 15px;
font-size:35px;
background-color: aqua;
text-color: black;
}
\ No newline at end of file
<div class="container">
<text class="title">
{{ title }}
</text>
<button class="button" type="capsule" value="申请权限" onclick="reqPermission"></button>
</div>
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import featureAbility from '@ohos.ability.featureAbility'
const injectRef = Object.getPrototypeOf(global) || global
injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
export default {
data: {
title: ""
},
onInit() {
this.title = "Start Second";
},
onShow() {},
async reqPermission()
{
var context = await featureAbility.getContext();
context.requestPermissionsFromUser(["com.permission.BMS_PERMISSIONCHANGE_W"], 1,
(err, data)=>{
console.log("RequestPermissionForUser:requestCode=" + data.requestCode);
for(var j = 0; j < data.permissions.length; j++) {
console.log("RequestPermissionForUser permissions : " + data.permissions[j]);
}
for(var j = 0; j < data.grantResults.length; j++) {
console.log("RequestPermissionForUser grantResults : " + data.grantResults[j]);
}
});
}
}
{
"string": [
{
"name": "app_name",
"value": "secondrequestpermission"
},
{
"name": "mainability_description",
"value": "JS_Phone_Empty Feature Ability"
}
]
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册