From a36232d1d361e86815b9873301afe21fc21902f5 Mon Sep 17 00:00:00 2001 From: liugang9704 <2745340733@qq.com> Date: Sat, 20 Sep 2025 14:54:34 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9C=AA=E6=8D=95?= =?UTF-8?q?=E8=8E=B7=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ets/pages/ApproximatelyLocationDemo.ets | 26 +++++++--- .../entry/src/main/ets/pages/Index.ets | 52 +++++++++++++++---- .../main/ets/entryability/EntryAbility.ets | 8 ++- .../entry/src/main/ets/segment/segment6.ets | 9 +++- 4 files changed, 75 insertions(+), 20 deletions(-) diff --git a/AppPrivacyProtection/entry/src/main/ets/pages/ApproximatelyLocationDemo.ets b/AppPrivacyProtection/entry/src/main/ets/pages/ApproximatelyLocationDemo.ets index d24fcb14..4d1d7adf 100644 --- a/AppPrivacyProtection/entry/src/main/ets/pages/ApproximatelyLocationDemo.ets +++ b/AppPrivacyProtection/entry/src/main/ets/pages/ApproximatelyLocationDemo.ets @@ -30,12 +30,18 @@ struct ApproximatelyLocationDemo { // [End request_permission] const bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION; const bundleInfo = bundleManager.getBundleInfoForSelfSync(bundleFlags); - const grantStatus = accessManager.checkAccessTokenSync(bundleInfo.appInfo.accessTokenId, permissions[0]); - + let grantStatus: abilityAccessCtrl.GrantStatus | null = null; + try { + grantStatus = accessManager.checkAccessTokenSync(bundleInfo.appInfo.accessTokenId, permissions[0]); + } catch (error) { + let err = error as BusinessError; + Logger.error(`showToast failed, code=${err.code}, message=${err.message}`); + } return new Promise((resolve, reject) => { if (grantStatus === abilityAccessCtrl.GrantStatus.PERMISSION_DENIED) { // [Start request_permission] - accessManager.requestPermissionsFromUser(this.getUIContext().getHostContext(), ['ohos.permission.APPROXIMATELY_LOCATION']) + accessManager.requestPermissionsFromUser(this.getUIContext().getHostContext(), + ['ohos.permission.APPROXIMATELY_LOCATION']) .then((data) => { let grantStatus: Array = data.authResults; if (grantStatus.length > 0 && grantStatus[0] === 0) { @@ -48,15 +54,20 @@ struct ApproximatelyLocationDemo { // The user rejects the authorization Logger.info('request permissions denied'); // [StartExclude request_permission] - this.getUIContext().getPromptAction().showToast({ - message: 'This function requires the location permission. Go to the settings page to authorize the permission' - }); + try { + this.getUIContext().getPromptAction().showToast({ + message: 'This function requires the location permission. Go to the settings page to authorize the permission' + }); + } catch (error) { + let err = error as BusinessError; + Logger.error(`showToast failed, code=${err.code}, message=${err.message}`); + } resolve(-1); // [EndExclude request_permission] } Logger.info(`request permissions result: ${JSON.stringify(data)}`); }) - // [End request_permission] + // [End request_permission] .catch((error: BusinessError) => { Logger.error(`request permissions exception, Catch error:${JSON.stringify(error)}`); reject(error); @@ -67,7 +78,6 @@ struct ApproximatelyLocationDemo { }); } - getLocation() { this.requestPermissions().then(data => { diff --git a/AppPrivacyProtection/entry/src/main/ets/pages/Index.ets b/AppPrivacyProtection/entry/src/main/ets/pages/Index.ets index d79d3f3b..78cc67a4 100644 --- a/AppPrivacyProtection/entry/src/main/ets/pages/Index.ets +++ b/AppPrivacyProtection/entry/src/main/ets/pages/Index.ets @@ -25,7 +25,13 @@ struct Index { const accessManager = abilityAccessCtrl.createAtManager(); const bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION; const bundleInfo = bundleManager.getBundleInfoForSelfSync(bundleFlags); - const grantStatus = accessManager.checkAccessTokenSync(bundleInfo.appInfo.accessTokenId, permissions[0]); + let grantStatus: abilityAccessCtrl.GrantStatus | null = null; + try { + grantStatus = accessManager.checkAccessTokenSync(bundleInfo.appInfo.accessTokenId, permissions[0]); + } catch (error) { + let err = error as BusinessError; + Logger.error(`checkAccessTokenSync failed, code=${err.code}, message=${err.message}`); + } if (grantStatus === abilityAccessCtrl.GrantStatus.PERMISSION_DENIED) { // [Start permission_camera] accessManager.requestPermissionsFromUser(this.getUIContext().getHostContext(), ['ohos.permission.CAMERA']) @@ -36,21 +42,31 @@ struct Index { } else { Logger.info('request permissions denied'); // [StartExclude permission_camera] - this.getUIContext().getPromptAction().showToast({ - message: 'This function requires the camera permission. Go to the settings page to authorize the permission' - }); + try { + this.getUIContext().getPromptAction().showToast({ + message: 'This function requires the camera permission. Go to the settings page to authorize the permission' + }); + } catch (error) { + let err = error as BusinessError; + Logger.error(`showToast failed, code=${err.code}, message=${err.message}`); + } // [EndExclude permission_camera] } }) - // [End permission_camera] + // [End permission_camera] .catch((error: BusinessError) => { Logger.error(`request permissions exception, Catch error:${JSON.stringify(error)}`); }) } else { Logger.info('request permissions granted'); - this.getUIContext().getPromptAction().showToast({ - message: 'request permissions has granted' - }); + try { + this.getUIContext().getPromptAction().showToast({ + message: 'request permissions has granted' + }); + } catch (error) { + let err = error as BusinessError; + Logger.error(`showToast failed, code=${err.code}, message=${err.message}`); + } } } @@ -60,13 +76,29 @@ struct Index { .height(40) .width('100%') .onClick(() => { - this.getUIContext().getRouter().pushUrl({ url: 'pages/ApproximatelyLocationDemo' }); + this.getUIContext() + .getRouter() + .pushUrl({ url: 'pages/ApproximatelyLocationDemo' }) + .then(() => { + Logger.info(`showToast success`); + }) + .catch((err: BusinessError) => { + Logger.error(`showToast failed, code=${err.code}, message=${err.message}`); + }) }) Button($r('app.string.use_picker')) .height(40) .width('100%') .onClick(() => { - this.getUIContext().getRouter().pushUrl({ url: 'pages/PickerDemo' }); + this.getUIContext() + .getRouter() + .pushUrl({ url: 'pages/PickerDemo' }) + .then(() => { + Logger.info(`showToast success`); + }) + .catch((err: BusinessError) => { + Logger.error(`showToast failed, code=${err.code}, message=${err.message}`); + }) }) Button($r('app.string.apply_camera_permissions')) .height(40) diff --git a/ArkUI/Component_Nesting_Optimization/entry/src/main/ets/entryability/EntryAbility.ets b/ArkUI/Component_Nesting_Optimization/entry/src/main/ets/entryability/EntryAbility.ets index 508880af..faef53f9 100644 --- a/ArkUI/Component_Nesting_Optimization/entry/src/main/ets/entryability/EntryAbility.ets +++ b/ArkUI/Component_Nesting_Optimization/entry/src/main/ets/entryability/EntryAbility.ets @@ -1,4 +1,5 @@ import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit' import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; @@ -6,7 +7,12 @@ const DOMAIN = 0x0000; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { - this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + try { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); } diff --git a/ArkUI/Component_Nesting_Optimization/entry/src/main/ets/segment/segment6.ets b/ArkUI/Component_Nesting_Optimization/entry/src/main/ets/segment/segment6.ets index 6f51145b..86f22e9f 100644 --- a/ArkUI/Component_Nesting_Optimization/entry/src/main/ets/segment/segment6.ets +++ b/ArkUI/Component_Nesting_Optimization/entry/src/main/ets/segment/segment6.ets @@ -1,6 +1,7 @@ // [Start Case5] import { ColorMetrics } from '@kit.ArkUI'; import { BusinessError } from '@kit.BasicServicesKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; @Component struct ColorMeasure { @@ -18,7 +19,12 @@ struct ColorMeasure { getBlendColor(baseColor: ResourceColor, addColor: ResourceColor): ColorMetrics { if (!baseColor || !addColor) { - return ColorMetrics.resourceColor(Color.Black); + try { + return ColorMetrics.resourceColor(Color.Black); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `showToast failed, code=${err.code}, message=${err.message}`); + } } let sourceColor: ColorMetrics; try { @@ -48,4 +54,5 @@ struct ColorMetricsExample { } } } + // [End Case5] \ No newline at end of file -- Gitee From 25826bbbcd727f4df9138227437c75650cefbf49 Mon Sep 17 00:00:00 2001 From: liugang9704 <2745340733@qq.com> Date: Sat, 20 Sep 2025 17:36:40 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9C=AA=E6=8D=95?= =?UTF-8?q?=E8=8E=B7=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/ets/entryability/EntryAbility.ets | 8 +- .../main/ets/entryability/EntryAbility.ets | 8 +- .../main/ets/entryability/EntryAbility.ets | 8 +- .../src/main/ets/view/InTabComponent.ets | 7 +- .../src/main/ets/view/SwitchTabComponent.ets | 8 +- .../main/ets/entryability/EntryAbility.ets | 8 +- .../entry/src/main/ets/segment/segment3.ets | 10 +- .../entry/src/main/ets/segment/segment4.ets | 11 +- .../entry/src/main/ets/segment/segment5.ets | 2 - .../main/ets/entryability/EntryAbility.ets | 16 +- .../entry/src/main/ets/pages/Index.ets | 1 + .../src/main/ets/pages/MediaQueryPage.ets | 18 +- .../src/main/ets/pages/OrientationPage.ets | 44 ++- .../src/main/ets/pages/ScreenRotationA.ets | 21 +- .../src/main/ets/pages/ScreenRotationB.ets | 28 +- .../main/ets/entryability/EntryAbility.ets | 8 +- .../src/main/ets/pages/ColorPickerMode.ets | 20 +- .../main/ets/entryability/EntryAbility.ets | 8 +- .../entry/src/main/ets/pages/Bluetooth.ets | 24 +- .../entry/src/main/ets/pages/Gps.ets | 22 +- .../entry/src/main/ets/pages/Sensor.ets | 29 +- .../src/main/ets/pages/music/AvPlayer.ets | 39 ++- BptaUseResources/entry/src/main/module.json5 | 44 ++- .../main/ets/entryability/EntryAbility.ets | 17 +- .../entry/src/main/ets/pages/Audio.ets | 13 +- .../src/main/ets/pages/LockByApplication.ets | 10 +- BptaUseSoftware/entry/src/main/module.json5 | 10 +- .../main/ets/entryability/EntryAbility.ets | 32 ++- .../entry/src/main/ets/pages/Index.ets | 16 +- .../entry/src/main/ets/pages/Record.ets | 87 ++++-- .../entry/src/main/ets/utils/FileUtil.ets | 20 +- .../main/ets/entryability/EntryAbility.ets | 2 - .../entry/src/main/ets/pages/Index.ets | 14 +- .../entry/src/main/ets/pages/VideoPage.ets | 70 +++-- .../entry/src/main/ets/utils/AVPlayerDemo.ets | 262 ++++++++++++------ .../entry/src/main/ets/utils/WindowUtil.ets | 44 ++- .../main/ets/entryability/EntryAbility.ets | 19 +- .../entry/src/main/ets/mode/CameraService.ets | 39 ++- .../entry/src/main/ets/pages/EditPage.ets | 37 +-- .../entry/src/main/ets/pages/IndexPage.ets | 18 +- .../entry/src/main/ets/pages/PhotoPage.ets | 17 +- .../src/main/ets/components/WindowUtil.ets | 50 ++-- .../main/ets/entryability/EntryAbility.ets | 24 +- .../main/ets/entryability/EntryAbility1.ets | 49 +++- .../main/ets/entryability/EntryAbility2.ets | 50 ++-- .../main/ets/entryability/EntryAbility3.ets | 19 +- 46 files changed, 962 insertions(+), 349 deletions(-) diff --git a/ArkUI/Component_Redundancy_Refresh_Optimization/entry/src/main/ets/entryability/EntryAbility.ets b/ArkUI/Component_Redundancy_Refresh_Optimization/entry/src/main/ets/entryability/EntryAbility.ets index 508880af..2880ca09 100644 --- a/ArkUI/Component_Redundancy_Refresh_Optimization/entry/src/main/ets/entryability/EntryAbility.ets +++ b/ArkUI/Component_Redundancy_Refresh_Optimization/entry/src/main/ets/entryability/EntryAbility.ets @@ -1,4 +1,5 @@ import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; @@ -6,7 +7,12 @@ const DOMAIN = 0x0000; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { - this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + try { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); } diff --git a/ArkUI/Proper_Use_Layout/entry/src/main/ets/entryability/EntryAbility.ets b/ArkUI/Proper_Use_Layout/entry/src/main/ets/entryability/EntryAbility.ets index 664be58f..5282cb6d 100644 --- a/ArkUI/Proper_Use_Layout/entry/src/main/ets/entryability/EntryAbility.ets +++ b/ArkUI/Proper_Use_Layout/entry/src/main/ets/entryability/EntryAbility.ets @@ -14,6 +14,7 @@ */ import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; @@ -21,7 +22,12 @@ const DOMAIN = 0x0000; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { - this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + try { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); } diff --git a/ArkUI/PureTabsExt/entry/src/main/ets/entryability/EntryAbility.ets b/ArkUI/PureTabsExt/entry/src/main/ets/entryability/EntryAbility.ets index d3ee54d2..6e8ddad7 100644 --- a/ArkUI/PureTabsExt/entry/src/main/ets/entryability/EntryAbility.ets +++ b/ArkUI/PureTabsExt/entry/src/main/ets/entryability/EntryAbility.ets @@ -14,6 +14,7 @@ */ import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; @@ -21,7 +22,12 @@ const DOMAIN = 0x0000; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { - this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + try { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); } diff --git a/ArkUI/PureTabsExt/entry/src/main/ets/view/InTabComponent.ets b/ArkUI/PureTabsExt/entry/src/main/ets/view/InTabComponent.ets index 95476169..dc7f7154 100644 --- a/ArkUI/PureTabsExt/entry/src/main/ets/view/InTabComponent.ets +++ b/ArkUI/PureTabsExt/entry/src/main/ets/view/InTabComponent.ets @@ -13,6 +13,8 @@ * limitations under the License. */ import { AbilityConstant,Configuration } from "@kit.AbilityKit"; +import { BusinessError } from '@kit.BasicServicesKit'; +import { hilog } from "@kit.PerformanceAnalysisKit"; // [Start tabs_bar_translate] @Component @@ -41,7 +43,10 @@ export default struct InTabComponent { await this.getUIContext().getHostContext()?.resourceManager.getStringArrayValue($r('app.strarray.in_tabs_items')) .then((strarray: string[]) => { this.tabItems = strarray; - }); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `getStringArrayValue failed, code=${err.code}, message=${err.message}`) + }) } subscribeSystemLanguageUpdate() { diff --git a/ArkUI/PureTabsExt/entry/src/main/ets/view/SwitchTabComponent.ets b/ArkUI/PureTabsExt/entry/src/main/ets/view/SwitchTabComponent.ets index 03adf3c6..31699074 100644 --- a/ArkUI/PureTabsExt/entry/src/main/ets/view/SwitchTabComponent.ets +++ b/ArkUI/PureTabsExt/entry/src/main/ets/view/SwitchTabComponent.ets @@ -13,7 +13,8 @@ * limitations under the License. */ import { AbilityConstant, Configuration } from "@kit.AbilityKit"; -import { Constants } from "../common/constant/Constants"; +import { BusinessError } from '@kit.BasicServicesKit'; +import { hilog } from "@kit.PerformanceAnalysisKit"; // [Start custom_switch_tab] @Component @@ -35,7 +36,10 @@ export default struct SwitchTabComponent { .getHostContext()?.resourceManager.getStringArrayValue($r('app.strarray.switch_tabs_items')) .then((strarray: string[]) => { this.tabItems = strarray; - }); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `getStringArrayValue failed, code=${err.code}, message=${err.message}`) + }) } subscribeSystemLanguageUpdate() { diff --git a/ArkUI/UI_Component_Performance_Optimization/entry/src/main/ets/entryability/EntryAbility.ets b/ArkUI/UI_Component_Performance_Optimization/entry/src/main/ets/entryability/EntryAbility.ets index 508880af..2880ca09 100644 --- a/ArkUI/UI_Component_Performance_Optimization/entry/src/main/ets/entryability/EntryAbility.ets +++ b/ArkUI/UI_Component_Performance_Optimization/entry/src/main/ets/entryability/EntryAbility.ets @@ -1,4 +1,5 @@ import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; @@ -6,7 +7,12 @@ const DOMAIN = 0x0000; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { - this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + try { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); } diff --git a/ArkUI/UI_Component_Performance_Optimization/entry/src/main/ets/segment/segment3.ets b/ArkUI/UI_Component_Performance_Optimization/entry/src/main/ets/segment/segment3.ets index e2a62dd9..21ead008 100644 --- a/ArkUI/UI_Component_Performance_Optimization/entry/src/main/ets/segment/segment3.ets +++ b/ArkUI/UI_Component_Performance_Optimization/entry/src/main/ets/segment/segment3.ets @@ -14,8 +14,9 @@ */ // [Start Counter_example2] -import { hiTraceMeter } from '@kit.PerformanceAnalysisKit'; +import { hilog, hiTraceMeter } from '@kit.PerformanceAnalysisKit'; import { common } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit'; @Entry @Component @@ -26,7 +27,12 @@ struct Index { aboutToAppear(): void { hiTraceMeter.startTrace('getStringSync', 1); // The input parameter of the getStringSync interface uses the resource directly, without using the resource ID. - this.context.resourceManager.getStringSync($r('app.string.app_name')); + try { + this.context.resourceManager.getStringSync($r('app.string.app_name')); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `getStringSync failed, code=${err.code}, message=${err.message}`); + } hiTraceMeter.finishTrace('getStringSync', 1); } diff --git a/ArkUI/UI_Component_Performance_Optimization/entry/src/main/ets/segment/segment4.ets b/ArkUI/UI_Component_Performance_Optimization/entry/src/main/ets/segment/segment4.ets index 0cddea1f..39cba0d0 100644 --- a/ArkUI/UI_Component_Performance_Optimization/entry/src/main/ets/segment/segment4.ets +++ b/ArkUI/UI_Component_Performance_Optimization/entry/src/main/ets/segment/segment4.ets @@ -14,8 +14,9 @@ */ // [Start Case2] -import { hiTraceMeter } from '@kit.PerformanceAnalysisKit'; +import { hilog, hiTraceMeter } from '@kit.PerformanceAnalysisKit'; import { common } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit'; @Entry @Component @@ -26,8 +27,12 @@ struct Index { aboutToAppear(): void { hiTraceMeter.startTrace('getStringSyncAfter', 2); // The input parameter of the getStringSync interface uses the resource ID. - - this.context.resourceManager.getStringSync($r('app.string.app_name').id); + try { + this.context.resourceManager.getStringSync($r('app.string.app_name').id); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `getStringSync failed, code=${err.code}, message=${err.message}`); + } hiTraceMeter.finishTrace('getStringSyncAfter', 2); } diff --git a/ArkUI/UI_Component_Performance_Optimization/entry/src/main/ets/segment/segment5.ets b/ArkUI/UI_Component_Performance_Optimization/entry/src/main/ets/segment/segment5.ets index 92e8154a..f5ca8fdc 100644 --- a/ArkUI/UI_Component_Performance_Optimization/entry/src/main/ets/segment/segment5.ets +++ b/ArkUI/UI_Component_Performance_Optimization/entry/src/main/ets/segment/segment5.ets @@ -41,8 +41,6 @@ const getUsers = () => { }); } - -@Entry @Component export struct AvatarGrid { @State users: User[] = getUsers(); diff --git a/ArkUI/orientationDevelopment/entry/src/main/ets/entryability/EntryAbility.ets b/ArkUI/orientationDevelopment/entry/src/main/ets/entryability/EntryAbility.ets index e8c03cc6..8e952a0d 100644 --- a/ArkUI/orientationDevelopment/entry/src/main/ets/entryability/EntryAbility.ets +++ b/ArkUI/orientationDevelopment/entry/src/main/ets/entryability/EntryAbility.ets @@ -1,4 +1,5 @@ import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; @@ -6,7 +7,12 @@ const DOMAIN = 0x0000; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { - this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + try { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); } @@ -17,7 +23,13 @@ export default class EntryAbility extends UIAbility { onWindowStageCreate(windowStage: window.WindowStage): void { // Main window is created, set main page for this ability hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); - AppStorage.setOrCreate('mainWindow', windowStage.getMainWindow()); + windowStage.getMainWindow() + .then((data: window.Window) => { + AppStorage.setOrCreate('mainWindow', data); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `getMainWindow failed, code=${err.code}, message=${err.message}`) + }) windowStage.loadContent('pages/Index', (err) => { if (err.code) { hilog.error(DOMAIN, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err)); diff --git a/ArkUI/orientationDevelopment/entry/src/main/ets/pages/Index.ets b/ArkUI/orientationDevelopment/entry/src/main/ets/pages/Index.ets index 1c7a6e8a..5c9b16d9 100644 --- a/ArkUI/orientationDevelopment/entry/src/main/ets/pages/Index.ets +++ b/ArkUI/orientationDevelopment/entry/src/main/ets/pages/Index.ets @@ -1,5 +1,6 @@ // [Start enable_nfc] import { nfcController } from '@kit.ConnectivityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; @Entry @Component diff --git a/ArkUI/orientationDevelopment/entry/src/main/ets/pages/MediaQueryPage.ets b/ArkUI/orientationDevelopment/entry/src/main/ets/pages/MediaQueryPage.ets index c71a990e..bb77a8e2 100644 --- a/ArkUI/orientationDevelopment/entry/src/main/ets/pages/MediaQueryPage.ets +++ b/ArkUI/orientationDevelopment/entry/src/main/ets/pages/MediaQueryPage.ets @@ -1,5 +1,7 @@ import { mediaquery, window } from '@kit.ArkUI'; import { common } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; // [Start Media] @Entry @@ -10,6 +12,7 @@ struct MediaQueryPage { // The condition is true when the device is in landscape orientation listener: mediaquery.MediaQueryListener = this.getUIContext().getMediaQuery().matchMediaSync('(orientation: landscape)'); + // When the media query conditions are met, a callback is triggered onPortrait(mediaQueryResult: mediaquery.MediaQueryResult) { if (mediaQueryResult.matches as boolean) { @@ -21,6 +24,7 @@ struct MediaQueryPage { this.text = 'Portrait'; } } + aboutToAppear() { // Bind the current application instance // Bind a callback function @@ -28,6 +32,7 @@ struct MediaQueryPage { this.onPortrait(mediaQueryResult) }); } + aboutToDisappear() { // Unbind the callback function registered in the listener this.listener.off('change'); @@ -38,9 +43,16 @@ struct MediaQueryPage { // Obtain the context of the UIAbility instance let context: common.UIAbilityContext = this.getUIContext().getHostContext() as common.UIAbilityContext; // Call this API to manually change the horizontal and vertical screen status of the device - window.getLastWindow(context).then((lastWindow) => { - lastWindow.setPreferredOrientation(isLandscape ? window.Orientation.LANDSCAPE : window.Orientation.PORTRAIT) - }); + window.getLastWindow(context) + .then((lastWindow) => { + lastWindow.setPreferredOrientation(isLandscape ? window.Orientation.LANDSCAPE : window.Orientation.PORTRAIT) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `setPreferredOrientation failed, code=${err.code}, message=${err.message}`) + }) + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `getLastWindow failed, code=${err.code}, message=${err.message}`) + }) } build() { diff --git a/ArkUI/orientationDevelopment/entry/src/main/ets/pages/OrientationPage.ets b/ArkUI/orientationDevelopment/entry/src/main/ets/pages/OrientationPage.ets index 72e0ed10..ba75cdaf 100644 --- a/ArkUI/orientationDevelopment/entry/src/main/ets/pages/OrientationPage.ets +++ b/ArkUI/orientationDevelopment/entry/src/main/ets/pages/OrientationPage.ets @@ -1,5 +1,7 @@ // [Start orientation] import { display, window } from '@kit.ArkUI'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; const TAG = 'foo'; const ORIENTATION: Array = ['垂直', '平', '反向垂直', '反向水平']; @@ -14,9 +16,14 @@ struct OrientationPage { aboutToAppear() { this.setOrientation(1); let callback = async () => { - let getDefaultDisplay = display.getDefaultDisplaySync(); - this.rotation = getDefaultDisplay.rotation; - this.message = ORIENTATION[this.rotation]; + try { + let getDefaultDisplay = display.getDefaultDisplaySync(); + this.rotation = getDefaultDisplay.rotation; + this.message = ORIENTATION[this.rotation]; + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `showToast failed, code=${err.code}, message=${err.message}`); + } }; try { display.on('change', callback); @@ -47,7 +54,7 @@ struct OrientationPage { hilog.error(0x0000, TAG, 'Failed to set window orientation. Cause: ' + JSON.stringify(err)); return; } - hilog.info(0x0000, 'Succeeded in setting window orientation.'); + hilog.info(0x0000, 'testTag', 'Succeeded in setting window orientation.'); }); } catch (exception) { hilog.error(0x0000, TAG, 'Failed to set window orientation. Cause: ' + JSON.stringify(exception)); @@ -59,15 +66,25 @@ struct OrientationPage { } setWindowLayOut() { - window.getLastWindow(getContext(this)).then((windowClass) => { - if (this.isLandscape) { - hilog.info(0x0000, 'OrientationPage', '设置屏幕横屏'); - windowClass.setPreferredOrientation(window.Orientation.AUTO_ROTATION_LANDSCAPE); - } else { - hilog.info(0x0000, 'OrientationPage', '设置屏幕竖屏'); - windowClass.setPreferredOrientation(window.Orientation.AUTO_ROTATION_PORTRAIT); - } - }); + window.getLastWindow(this.getUIContext()?.getHostContext()) + .then((windowClass) => { + if (this.isLandscape) { + hilog.info(0x0000, 'OrientationPage', '设置屏幕横屏'); + windowClass.setPreferredOrientation(window.Orientation.AUTO_ROTATION_LANDSCAPE) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `setPreferredOrientation failed, code=${err.code}, message=${err.message}`) + }) + } else { + hilog.info(0x0000, 'OrientationPage', '设置屏幕竖屏'); + windowClass.setPreferredOrientation(window.Orientation.AUTO_ROTATION_PORTRAIT) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `setPreferredOrientation failed, code=${err.code}, message=${err.message}`) + }) + } + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `getLastWindow failed, code=${err.code}, message=${err.message}`) + }) } build() { @@ -88,4 +105,5 @@ struct OrientationPage { .height('100%') } } + // [End orientation] diff --git a/ArkUI/orientationDevelopment/entry/src/main/ets/pages/ScreenRotationA.ets b/ArkUI/orientationDevelopment/entry/src/main/ets/pages/ScreenRotationA.ets index 6d7948a9..b3e36c88 100644 --- a/ArkUI/orientationDevelopment/entry/src/main/ets/pages/ScreenRotationA.ets +++ b/ArkUI/orientationDevelopment/entry/src/main/ets/pages/ScreenRotationA.ets @@ -1,4 +1,6 @@ import { window } from '@kit.ArkUI'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; @Component struct ScreenRotationA { @@ -10,13 +12,28 @@ struct ScreenRotationA { if (this.mainWindow === undefined) { return; } - this.lastOrientation = this.mainWindow!.getPreferredOrientation(); - this.mainWindow!.setPreferredOrientation(window.Orientation.LANDSCAPE); + try { + this.lastOrientation = this.mainWindow!.getPreferredOrientation(); + this.mainWindow!.setPreferredOrientation(window.Orientation.LANDSCAPE) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `setPreferredOrientation failed, code=${err.code}, message=${err.message}`) + }) + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `showToast failed, code=${err.code}, message=${err.message}`); + } } aboutToDisappear(): void { this.mainWindow!.setPreferredOrientation(this.lastOrientation) + .then(() => { + hilog.info(0x000, 'testTag', 'setPreferredOrientation success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `setPreferredOrientation failed, code=${err.code}, message=${err.message}`) + }) } + // [End orientation] build() { diff --git a/ArkUI/orientationDevelopment/entry/src/main/ets/pages/ScreenRotationB.ets b/ArkUI/orientationDevelopment/entry/src/main/ets/pages/ScreenRotationB.ets index 80b24fa4..f0fa9ddb 100644 --- a/ArkUI/orientationDevelopment/entry/src/main/ets/pages/ScreenRotationB.ets +++ b/ArkUI/orientationDevelopment/entry/src/main/ets/pages/ScreenRotationB.ets @@ -1,17 +1,39 @@ import { common } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { window } from '@kit.ArkUI'; @Component struct ScreenRotationB { // [Start window] - private windowClass = (this.getUIContext().getHostContext() as common.UIAbilityContext).windowStage.getMainWindowSync() + private windowClass: window.Window | null = null; aboutToAppear(): void { - this.windowClass.enableLandscapeMultiWindow(); + try { + this.windowClass = (this.getUIContext().getHostContext() as common.UIAbilityContext).windowStage.getMainWindowSync(); + this.windowClass.enableLandscapeMultiWindow() + .then(() => { + hilog.info(0x000, 'testTag', 'disableLandscapeMultiWindow success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `disableLandscapeMultiWindow failed, code=${err.code}, message=${err.message}`) + }) + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `showToast failed, code=${err.code}, message=${err.message}`); + } } aboutToDisappear(): void { - this.windowClass.disableLandscapeMultiWindow(); + this.windowClass?.disableLandscapeMultiWindow() + .then(() => { + hilog.info(0x000, 'testTag', 'disableLandscapeMultiWindow success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `disableLandscapeMultiWindow failed, code=${err.code}, message=${err.message}`) + }) } + // [End window] build() { diff --git a/ArkWebrenderingframework/entry/src/main/ets/entryability/EntryAbility.ets b/ArkWebrenderingframework/entry/src/main/ets/entryability/EntryAbility.ets index 508880af..2880ca09 100644 --- a/ArkWebrenderingframework/entry/src/main/ets/entryability/EntryAbility.ets +++ b/ArkWebrenderingframework/entry/src/main/ets/entryability/EntryAbility.ets @@ -1,4 +1,5 @@ import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; @@ -6,7 +7,12 @@ const DOMAIN = 0x0000; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { - this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + try { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); } diff --git a/BackgroundBlur/entry/src/main/ets/pages/ColorPickerMode.ets b/BackgroundBlur/entry/src/main/ets/pages/ColorPickerMode.ets index 5109b43b..56c8451a 100644 --- a/BackgroundBlur/entry/src/main/ets/pages/ColorPickerMode.ets +++ b/BackgroundBlur/entry/src/main/ets/pages/ColorPickerMode.ets @@ -16,6 +16,8 @@ // [Start color_picker] import { image } from '@kit.ImageKit'; import { effectKit } from '@kit.ArkGraphics2D'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { BusinessError } from '@kit.BasicServicesKit'; @Component export struct ColorPickerMode { @@ -31,11 +33,18 @@ export struct ColorPickerMode { async blurPix(resource: Resource) { const context = this.getUIContext().getHostContext()!; - const resourceMgr = context.resourceManager - const fileData = await resourceMgr.getMediaContent(resource) - const buffer = fileData.buffer - let imageSource = image.createImageSource(buffer as ArrayBuffer) - this.pixMap = await imageSource.createPixelMap(); + const resourceMgr = context.resourceManager; + let imageSource: image.ImageSource | null = null; + // const fileData = await resourceMgr.getMediaContent(resource) + resourceMgr.getMediaContent(resource) + .then((fileData: Uint8Array) => { + const buffer = fileData.buffer + imageSource = image.createImageSource(buffer as ArrayBuffer) + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `setPreferredOrientation failed, code=${err.code}, message=${err.message}`) + }) + this.pixMap = await imageSource!.createPixelMap(); // create a color picker for color extraction this.kitColor = (await effectKit.createColorPicker(this.pixMap, [0, 0, 1, 1])).getAverageColor(); // convert to the format of the blur interface color parameter @@ -72,4 +81,5 @@ export struct ColorPickerMode { .hideTitleBar(true) } } + // [End color_picker] diff --git a/BptaUseResources/entry/src/main/ets/entryability/EntryAbility.ets b/BptaUseResources/entry/src/main/ets/entryability/EntryAbility.ets index 508880af..69f8a2d6 100644 --- a/BptaUseResources/entry/src/main/ets/entryability/EntryAbility.ets +++ b/BptaUseResources/entry/src/main/ets/entryability/EntryAbility.ets @@ -1,12 +1,18 @@ import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; +import { BusinessError } from '@kit.BasicServicesKit'; const DOMAIN = 0x0000; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { - this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + try { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); } diff --git a/BptaUseResources/entry/src/main/ets/pages/Bluetooth.ets b/BptaUseResources/entry/src/main/ets/pages/Bluetooth.ets index 4ec6438c..06b44935 100644 --- a/BptaUseResources/entry/src/main/ets/pages/Bluetooth.ets +++ b/BptaUseResources/entry/src/main/ets/pages/Bluetooth.ets @@ -5,6 +5,8 @@ // [Start blue_tooth] import { UIAbility } from '@kit.AbilityKit'; import { ble } from '@kit.ConnectivityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { BusinessError } from '@kit.BasicServicesKit'; // [StartExclude blue_tooth] const scanFilter: ble.ScanFilter = {} @@ -20,15 +22,25 @@ const advResponse = undefined export default class EntryAbility extends UIAbility { // ... onForeground(): void { - //Initiate Ble scan and broadcast as required by the service at the foreground - ble.startBLEScan([scanFilter], scanOptions); - ble.startAdvertising(setting, advData, advResponse); + try { + //Initiate Ble scan and broadcast as required by the service at the foreground + ble.startBLEScan([scanFilter], scanOptions); + ble.startAdvertising(setting, advData, advResponse); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `startBLEScan or startAdvertising failed, code=${err.code}, message=${err.message}`); + } } onBackground(): void { - // Return to the background to stop the Ble scanning and broadcast, which is the same as the application - ble.stopBLEScan(); - ble.stopAdvertising(); + try { + // Return to the background to stop the Ble scanning and broadcast, which is the same as the application + ble.stopBLEScan(); + ble.stopAdvertising(); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `stopBLEScan or stopAdvertising failed, code=${err.code}, message=${err.message}`); + } } } // [End blue_tooth] \ No newline at end of file diff --git a/BptaUseResources/entry/src/main/ets/pages/Gps.ets b/BptaUseResources/entry/src/main/ets/pages/Gps.ets index b43d05d2..5d427bf5 100644 --- a/BptaUseResources/entry/src/main/ets/pages/Gps.ets +++ b/BptaUseResources/entry/src/main/ets/pages/Gps.ets @@ -5,11 +5,14 @@ // [Start gps_resources] import { UIAbility } from '@kit.AbilityKit'; import { geoLocationManager } from '@kit.LocationKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { BusinessError } from '@kit.BasicServicesKit'; // [StartExclude gps_resources] let locationChange = (location: geoLocationManager.Location): void => { console.log('locationChanger:data:' + JSON.stringify(location)); }; + // [EndExclude gps_resources] export default class EntryAbility extends UIAbility { @@ -25,13 +28,24 @@ export default class EntryAbility extends UIAbility { let locationChange = (location: geoLocationManager.Location): void => { console.log('locationChanger:data:' + JSON.stringify(location)); }; - //The change of the listening position - geoLocationManager.on('locationChange', requestInfo, locationChange); + try { + //The change of the listening position + geoLocationManager.on('locationChange', requestInfo, locationChange); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `geoLocationManager on failed, code=${err.code}, message=${err.message}`); + } } onBackground(): void { - //The backstage cancels the listening - geoLocationManager.off('locationChange', locationChange); + try { + //The backstage cancels the listening + geoLocationManager.off('locationChange', locationChange); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `geoLocationManager off failed, code=${err.code}, message=${err.message}`); + } } } + // [End gps_resources] \ No newline at end of file diff --git a/BptaUseResources/entry/src/main/ets/pages/Sensor.ets b/BptaUseResources/entry/src/main/ets/pages/Sensor.ets index 5c2a2b93..d0c2ce29 100644 --- a/BptaUseResources/entry/src/main/ets/pages/Sensor.ets +++ b/BptaUseResources/entry/src/main/ets/pages/Sensor.ets @@ -5,21 +5,34 @@ // [Start sensor_resources] import { UIAbility } from '@kit.AbilityKit'; import { sensor } from '@kit.SensorServiceKit'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; export default class EntryAbility extends UIAbility { // ... onForeground(): void { - //In the foreground, listen to the required type of sensor based on the service requirements - sensor.on(sensor.SensorId.ACCELEROMETER, (data: sensor.AccelerometerResponse) => { - console.info("Succeededinobtainingdata.x:" + data.x + "y:" + data.y + "z:" + data.z); - }, { - interval: 100000000 - }); + try { + //In the foreground, listen to the required type of sensor based on the service requirements + sensor.on(sensor.SensorId.ACCELEROMETER, (data: sensor.AccelerometerResponse) => { + console.info("Succeeded in obtaining data.x:" + data.x + "y:" + data.y + "z:" + data.z); + }, { + interval: 100000000 + }); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `sensor on failed, code=${err.code}, message=${err.message}`); + } } onBackground(): void { - //The backstage cancels the listening - sensor.off(sensor.SensorId.ACCELEROMETER); + try { + //The backstage cancels the listening + sensor.off(sensor.SensorId.ACCELEROMETER); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `sensor off failed, code=${err.code}, message=${err.message}`); + } } } + // [End sensor_resources] \ No newline at end of file diff --git a/BptaUseResources/entry/src/main/ets/pages/music/AvPlayer.ets b/BptaUseResources/entry/src/main/ets/pages/music/AvPlayer.ets index d10caf3e..a7a93ff8 100644 --- a/BptaUseResources/entry/src/main/ets/pages/music/AvPlayer.ets +++ b/BptaUseResources/entry/src/main/ets/pages/music/AvPlayer.ets @@ -5,28 +5,38 @@ // [Start sound_pool] import { fileIo as fs } from '@kit.CoreFileKit'; import { media } from '@kit.MediaKit'; +import { BusinessError } from '@kit.BasicServicesKit'; // [End sound_pool] // [Start av_player] import { UIAbility } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; // [StartExclude av_player] let avPlayer: media.AVPlayer + // [EndExclude av_player] export default class EntryAbility extends UIAbility { // ... onForeground(): void { //Playing according to service requirements in the foreground - avPlayer.play(); + avPlayer.play() + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `avPlayer play failed, code=${err.code}, message=${err.message}`) + }) } onBackground(): void { // Return to the background to stop playing or pause - avPlayer.stop(); // Or pause(); + avPlayer.stop() // Or pause(); + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `avPlayer stop failed, code=${err.code}, message=${err.message}`) + }) } } + // [End av_player] /** @@ -45,10 +55,25 @@ const SoundPool = async () => { await fs.open('/test_01.mp3', fs.OpenMode.READ_ONLY).then((file: fs.File) => { console.info("filefd:" + file.fd); uri = 'fd://' + (file.fd).toString() - }); // '/test_01.mp3' is used as an example. The path of the file needs to be transferred - soundId = await soundPool.load(uri); - //The foreground scene starts to play - streamId = await soundPool.play(soundId); - //Stop playing in the background scenario: soundPool.stop (streamId); + }) // '/test_01.mp3' is used as an example. The path of the file needs to be transferred + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `avPlayer stop failed, code=${err.code}, message=${err.message}`); + }) + await soundPool.load(uri) + .then((soundId: number) => { + //The foreground scene starts to play + soundPool.play(soundId) + .then((data: number) => { + streamId = data; + hilog.info(0x000, 'testTag', 'setPreferredOrientation success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `soundPool play failed, code=${err.code}, message=${err.message}`); + }) + //Stop playing in the background scenario: soundPool.stop (streamId); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `soundPool load failed, code=${err.code}, message=${err.message}`); + }) } // [End sound_pool] diff --git a/BptaUseResources/entry/src/main/module.json5 b/BptaUseResources/entry/src/main/module.json5 index a1cea8b6..34457eca 100644 --- a/BptaUseResources/entry/src/main/module.json5 +++ b/BptaUseResources/entry/src/main/module.json5 @@ -45,7 +45,49 @@ "name": "ohos.extension.backup", "resource": "$profile:backup_config" } - ], + ] + } + ], + "requestPermissions": [ + { + "name": "ohos.permission.ACCESS_BLUETOOTH", + "reason": "$string:app_name", + "usedScene": { + "abilities": [ + "EntryAbility" + ], + "when": "always" + } + }, + { + "name": "ohos.permission.APPROXIMATELY_LOCATION", + "reason": "$string:app_name", + "usedScene": { + "abilities": [ + "EntryAbility" + ], + "when": "always" + } + }, + { + "name": "ohos.permission.ACCELEROMETER", + "reason": "$string:app_name", + "usedScene": { + "abilities": [ + "EntryAbility" + ], + "when": "always" + } + }, + { + "name": "ohos.permission.INTERNET", + "reason": "$string:app_name", + "usedScene": { + "abilities": [ + "EntryAbility" + ], + "when": "always" + } } ] } diff --git a/BptaUseSoftware/entry/src/main/ets/entryability/EntryAbility.ets b/BptaUseSoftware/entry/src/main/ets/entryability/EntryAbility.ets index ea1bd688..2d0f5e06 100644 --- a/BptaUseSoftware/entry/src/main/ets/entryability/EntryAbility.ets +++ b/BptaUseSoftware/entry/src/main/ets/entryability/EntryAbility.ets @@ -1,4 +1,5 @@ import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; @@ -6,7 +7,12 @@ const DOMAIN = 0x0000; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { - this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + try { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); } @@ -24,8 +30,13 @@ export default class EntryAbility extends UIAbility { return; } hilog.info(DOMAIN, 'testTag', 'Succeeded in loading the content.'); - let uiContext: UIContext | undefined = windowStage.getMainWindowSync().getUIContext() - AppStorage.setOrCreate('uiContext', uiContext); + try { + let uiContext: UIContext | undefined = windowStage.getMainWindowSync().getUIContext() + AppStorage.setOrCreate('uiContext', uiContext); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `getUIContext failed, code=${err.code}, message=${err.message}`); + } }); } diff --git a/BptaUseSoftware/entry/src/main/ets/pages/Audio.ets b/BptaUseSoftware/entry/src/main/ets/pages/Audio.ets index 926f51b2..78baa051 100644 --- a/BptaUseSoftware/entry/src/main/ets/pages/Audio.ets +++ b/BptaUseSoftware/entry/src/main/ets/pages/Audio.ets @@ -6,6 +6,8 @@ import { fileIo as fs } from '@kit.CoreFileKit'; // [StartExclude audio_bpta] import { audio } from '@kit.AudioKit'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; let audioStreamInfo: audio.AudioStreamInfo = { samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000, @@ -43,8 +45,13 @@ async function read() { let path = context.filesDir; // Path of the file const filePath = path + '/voice_call_data.wav'; // Prohibit the file from being played silently - let file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_ONLY); // Open the file - let buf = new ArrayBuffer(bufferSize); - let readSize: number = await fs.read(file.fd, buf); // Read the file content + try { + let file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_ONLY); // Open the file + let buf = new ArrayBuffer(bufferSize); + let readSize: number = await fs.read(file.fd, buf); // Read the file content + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `openSync or read failed, code=${err.code}, message=${err.message}`); + } } // [End audio_bpta] \ No newline at end of file diff --git a/BptaUseSoftware/entry/src/main/ets/pages/LockByApplication.ets b/BptaUseSoftware/entry/src/main/ets/pages/LockByApplication.ets index 236f0d5b..05b2736b 100644 --- a/BptaUseSoftware/entry/src/main/ets/pages/LockByApplication.ets +++ b/BptaUseSoftware/entry/src/main/ets/pages/LockByApplication.ets @@ -4,12 +4,18 @@ */ // [Start bpta_lock_by_application] import { runningLock } from '@kit.BasicServicesKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { BusinessError } from '@kit.BasicServicesKit'; // Return to the background to release the lock runningLock.create('running_lock_test', runningLock.RunningLockType.BACKGROUND) .then((lock: runningLock.RunningLock) => { - lock.unhold(); - console.info('create running lock and unlock success'); + try { + lock.unhold(); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } }) .catch((err: Error) => { console.error('create running lock failed, err: ' + err); diff --git a/BptaUseSoftware/entry/src/main/module.json5 b/BptaUseSoftware/entry/src/main/module.json5 index a1cea8b6..1da6fb56 100644 --- a/BptaUseSoftware/entry/src/main/module.json5 +++ b/BptaUseSoftware/entry/src/main/module.json5 @@ -45,7 +45,15 @@ "name": "ohos.extension.backup", "resource": "$profile:backup_config" } - ], + ] + } + ], + "requestPermissions": [ + { + "name": "ohos.permission.RUNNING_LOCK" + }, + { + "name": "ohos.permission.INTERNET" } ] } diff --git a/HDRVivid/AVRecorder/entry/src/main/ets/entryability/EntryAbility.ets b/HDRVivid/AVRecorder/entry/src/main/ets/entryability/EntryAbility.ets index ef7705b3..ad1fe45c 100644 --- a/HDRVivid/AVRecorder/entry/src/main/ets/entryability/EntryAbility.ets +++ b/HDRVivid/AVRecorder/entry/src/main/ets/entryability/EntryAbility.ets @@ -39,19 +39,25 @@ export default class EntryAbility extends UIAbility { return; } Logger.info(TAG, 'testTag', 'Succeeded in loading the content.'); - let windowClass: window.Window = windowStage.getMainWindowSync(); - let isLayoutFullScreen = true; - let uiContext: UIContext | undefined = windowStage.getMainWindowSync().getUIContext(); - AppStorage.setOrCreate('uiContext', uiContext); - windowClass.setWindowLayoutFullScreen(isLayoutFullScreen) - .then(() => { - Logger.info(TAG, 'testTag', 'Succeeded in setting the window layout to full-screen mode. Data: %{public}s', - JSON.stringify(data) ?? ''); - }) - .catch((err: BusinessError) => { - Logger.error(TAG, 'testTag', 'Failed to set the window layout to full-screen mode. Cause: %{public}s', - JSON.stringify(err) ?? ''); - }) + + try { + let windowClass: window.Window = windowStage.getMainWindowSync(); + let isLayoutFullScreen = true; + let uiContext: UIContext | undefined = windowStage.getMainWindowSync().getUIContext(); + AppStorage.setOrCreate('uiContext', uiContext); + windowClass.setWindowLayoutFullScreen(isLayoutFullScreen) + .then(() => { + Logger.info(TAG, 'testTag', 'Succeeded in setting the window layout to full-screen mode. Data: %{public}s', + JSON.stringify(data) ?? ''); + }) + .catch((err: BusinessError) => { + Logger.error(TAG, 'testTag', 'Failed to set the window layout to full-screen mode. Cause: %{public}s', + JSON.stringify(err) ?? ''); + }) + } catch (error) { + let err = error as BusinessError; + Logger.error(TAG, `getMainWindowSync or getUIContext failed, code=${err.code}, message=${err.message}`); + } }); } diff --git a/HDRVivid/AVRecorder/entry/src/main/ets/pages/Index.ets b/HDRVivid/AVRecorder/entry/src/main/ets/pages/Index.ets index 8e530f47..6780fd6d 100644 --- a/HDRVivid/AVRecorder/entry/src/main/ets/pages/Index.ets +++ b/HDRVivid/AVRecorder/entry/src/main/ets/pages/Index.ets @@ -87,7 +87,13 @@ struct Index { message: $r('app.string.show_toast_message'), duration: CommonConstants.SHOW_TOAST_DURATION, bottom: CommonConstants.SHOW_TOAST_BOTTOM - }); + }) + .then(() => { + Logger.info(TAG, 'openToast success'); + }) + .catch((err: BusinessError) => { + Logger.error(TAG, `openToast failed, code=${err.code}, message=${err.message}`) + }) break; } } @@ -117,7 +123,13 @@ struct Index { .onClick(async () => { this.checkAccessToken(this.permissions); if (this.result) { - router?.pushUrl({ url: 'pages/Record' }); + router?.pushUrl({ url: 'pages/Record' }) + .then(() => { + Logger.info(TAG, 'pushUrl success'); + }) + .catch((err: BusinessError) => { + Logger.error(TAG, `pushUrl failed, code=${err.code}, message=${err.message}`) + }) } }) } diff --git a/HDRVivid/AVRecorder/entry/src/main/ets/pages/Record.ets b/HDRVivid/AVRecorder/entry/src/main/ets/pages/Record.ets index 94ffa836..5d220262 100644 --- a/HDRVivid/AVRecorder/entry/src/main/ets/pages/Record.ets +++ b/HDRVivid/AVRecorder/entry/src/main/ets/pages/Record.ets @@ -107,7 +107,14 @@ struct Record { } async initCamera(context: common.Context | undefined, surfaceId: string) { - this.cameraManager = camera.getCameraManager(context); + // this.cameraManager = camera.getCameraManager(context); + try { + this.cameraManager = camera.getCameraManager(context) + } catch (error) { + let err = error as BusinessError; + Logger.error(TAG, `getCameraManager failed, code=${err.code}, message=${err.message}`); + } + if (!this.cameraManager) { Logger.error(TAG, 'camera.getCameraManager error'); return; @@ -361,10 +368,16 @@ struct Record { Logger.error(`The isVideoStabilizationModeSupported call failed. error code: ${err.code}`); } if (isSupported) { - // Setting video anti-shake - this.captureSession.setVideoStabilizationMode(mode); - let activeVideoStabilizationMode = this.captureSession.getActiveVideoStabilizationMode(); - Logger.info(`activeVideoStabilizationMode: ${activeVideoStabilizationMode}`); + try { + // Setting video anti-shake + this.captureSession.setVideoStabilizationMode(mode); + let activeVideoStabilizationMode = this.captureSession.getActiveVideoStabilizationMode(); + Logger.info(`activeVideoStabilizationMode: ${activeVideoStabilizationMode}`); + } catch (error) { + let err = error as BusinessError; + Logger.warn(TAG, + `setVideoStabilizationMode or getActiveVideoStabilizationMode failed, code=${err.code}, message=${err.message}`); + } } else { Logger.error(`videoStabilizationMode: ${mode} is not support`); } @@ -388,8 +401,13 @@ struct Record { let err = error as BusinessError; Logger.error(`The setColorSpace call failed, error code: ${err.code}`); } - let activeColorSpace: colorSpaceManager.ColorSpace = this.captureSession.getActiveColorSpace(); - Logger.info(`activeColorSpace: ${activeColorSpace}`); + try { + let activeColorSpace: colorSpaceManager.ColorSpace = this.captureSession.getActiveColorSpace(); + Logger.info(`activeColorSpace: ${activeColorSpace}`); + } catch (error) { + let err = error as BusinessError; + Logger.error(`getActiveColorSpace failed, code=${err.code}, message=${err.message}`); + } } else { Logger.error(`colorSpace: ${colorSpace} is not support`); } @@ -425,6 +443,7 @@ struct Record { } } } + // [End start_record] async stopRecord() { @@ -450,28 +469,38 @@ struct Record { let err = error as BusinessError; Logger.error(TAG, `avRecorder stop error: ${JSON.stringify(err)}`); } - try { - if (this.captureSession) { - this.captureSession.stop(); - } - if (this.cameraInput) { - this.cameraInput.close(); - } - if (this.previewOutput) { - this.previewOutput.release(); - } - if (this.videoOutput) { - this.videoOutput.release(); - } - if (this.captureSession) { - this.captureSession.release(); - } - if (this.captureSession) { - this.captureSession = undefined; - } - } catch (error) { - let err = error as BusinessError; - Logger.error(TAG, `avRecorder stop error: ${JSON.stringify(err)}`); + if (this.captureSession) { + this.captureSession.stop() + .catch((err: BusinessError) => { + Logger.error(`avRecorder stop failed, code=${err.code}, message=${err.message}`) + }) + } + if (this.cameraInput) { + this.cameraInput.close() + .catch((err: BusinessError) => { + Logger.error(`avRecorder close failed, code=${err.code}, message=${err.message}`) + }) + } + if (this.previewOutput) { + this.previewOutput.release() + .catch((err: BusinessError) => { + Logger.error(`avRecorder release failed, code=${err.code}, message=${err.message}`) + }) + } + if (this.videoOutput) { + this.videoOutput.release() + .catch((err: BusinessError) => { + Logger.error(`avRecorder release failed, code=${err.code}, message=${err.message}`) + }) + } + if (this.captureSession) { + this.captureSession.release() + .catch((err: BusinessError) => { + Logger.error(`avRecorder release failed, code=${err.code}, message=${err.message}`) + }) + } + if (this.captureSession) { + this.captureSession = undefined; } } } diff --git a/HDRVivid/AVRecorder/entry/src/main/ets/utils/FileUtil.ets b/HDRVivid/AVRecorder/entry/src/main/ets/utils/FileUtil.ets index bb9612f4..e59fbb47 100644 --- a/HDRVivid/AVRecorder/entry/src/main/ets/utils/FileUtil.ets +++ b/HDRVivid/AVRecorder/entry/src/main/ets/utils/FileUtil.ets @@ -14,17 +14,23 @@ */ import { fileIo } from '@kit.CoreFileKit'; +import { BusinessError } from '@kit.BasicServicesKit'; import Logger from './Logger'; export class FileUtil { // Create and open a file. - static createOrOpen(path: string): fileIo.File { - let isExist = fileIo.accessSync(path); - let file: fileIo.File; - if (isExist) { - file = fileIo.openSync(path, fileIo.OpenMode.READ_WRITE); - } else { - file = fileIo.openSync(path, fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE); + static createOrOpen(path: string): fileIo.File | null { + let file: fileIo.File | null = null; + try { + let isExist = fileIo.accessSync(path); + if (isExist) { + file = fileIo.openSync(path, fileIo.OpenMode.READ_WRITE); + } else { + file = fileIo.openSync(path, fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE); + } + } catch (error) { + let err = error as BusinessError; + Logger.warn('testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); } return file; } diff --git a/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/entryability/EntryAbility.ets b/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/entryability/EntryAbility.ets index eb96be48..9d78462e 100644 --- a/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/entryability/EntryAbility.ets +++ b/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/entryability/EntryAbility.ets @@ -22,8 +22,6 @@ import Logger from '../utils/Logger'; import { WindowUtil } from '../utils/WindowUtil'; export default class EntryAbility extends UIAbility { - private uiContext: UIContext | null = null; - onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { GlobalContext.getContext().setObject('context', this.context) hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); diff --git a/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/pages/Index.ets b/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/pages/Index.ets index b571c953..b32d8f30 100644 --- a/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/pages/Index.ets +++ b/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/pages/Index.ets @@ -14,6 +14,7 @@ */ import { router } from '@kit.ArkUI'; +import { BusinessError } from '@kit.BasicServicesKit'; import Logger from '../utils/Logger'; const TAG: string = 'PickerPage'; @@ -34,9 +35,16 @@ struct Index { .borderRadius(10) .onClick(() => { Logger.info(TAG, 'Picker init VideoPage ') - this.uiContext.getRouter().pushUrl({ - url: 'pages/VideoPage', - }, router.RouterMode.Standard); + this.uiContext.getRouter() + .pushUrl({ + url: 'pages/VideoPage', + }, router.RouterMode.Standard) + .then(() => { + Logger.info(TAG, 'pushUrl success'); + }) + .catch((err: BusinessError) => { + Logger.warn(TAG, `pushUrl failed, code=${err.code}, message=${err.message}`) + }) }) .margin('30') if (this.showProgressBar) { diff --git a/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/pages/VideoPage.ets b/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/pages/VideoPage.ets index b11123dd..79a75487 100644 --- a/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/pages/VideoPage.ets +++ b/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/pages/VideoPage.ets @@ -68,22 +68,30 @@ struct VideoPage { controlDst: XComponentController = new XComponentController() preload() { - let inputFile = fileIo.openSync(this.myUris, fileIo.OpenMode.READ_ONLY); - let inputFileState = fileIo.statSync(inputFile.fd); - let msg: string = player.preload(inputFile.fd, inputFileState.size); - this.hdrMode = msg; - if (msg.includes('HDRVivid HLG')) { - this.canConvertVividPQ = true; - this.canConvertSDR = true; - } else if (msg.includes('HDRVivid PQ')) { - this.canConvertVividHLG = true; - this.canConvertSDR = true; - } else if (msg.includes('HDR')) { - this.canConvertHLG = true; - } else if (msg.includes('SDR')) { - this.canConvertSDR = true; + try { + let inputFile = fileIo.openSync(this.myUris, fileIo.OpenMode.READ_ONLY); + let inputFileState = fileIo.statSync(inputFile.fd); + let msg: string = player.preload(inputFile.fd, inputFileState.size); + this.hdrMode = msg; + if (msg.includes('HDRVivid HLG')) { + this.canConvertVividPQ = true; + this.canConvertSDR = true; + } else if (msg.includes('HDRVivid PQ')) { + this.canConvertVividHLG = true; + this.canConvertSDR = true; + } else if (msg.includes('HDR')) { + this.canConvertHLG = true; + } else if (msg.includes('SDR')) { + this.canConvertSDR = true; + } + fileIo.close(inputFile) + .catch((err: BusinessError) => { + Logger.error(`fileIo close failed, code=${err.code}, message=${err.message}`) + }) + } catch (error) { + let err = error as BusinessError; + Logger.error(`fileIo openSync or statSync failed, code=${err.code}, message=${err.message}`); } - fileIo.close(inputFile); } async callFilePickerSelectImage(): Promise { @@ -134,17 +142,27 @@ struct VideoPage { } play() { - let inputFile = fileIo.openSync(this.myUris, fileIo.OpenMode.READ_ONLY); - let inputFile2 = fileIo.openSync(this.myUris, fileIo.OpenMode.READ_ONLY); - - let inputFileState = fileIo.statSync(inputFile.fd); - let inputFileState2 = fileIo.statSync(inputFile2.fd); - player.playNative(inputFile.fd, 0, inputFileState.size, 0, this.targetVal, this.targetMetadata, () => { - fileIo.close(inputFile); - }) - player.playNative(inputFile2.fd, 0, inputFileState2.size, 1, this.targetVal, this.targetMetadata, () => { - fileIo.close(inputFile2); - }) + try { + let inputFile = fileIo.openSync(this.myUris, fileIo.OpenMode.READ_ONLY); + let inputFile2 = fileIo.openSync(this.myUris, fileIo.OpenMode.READ_ONLY); + let inputFileState = fileIo.statSync(inputFile.fd); + let inputFileState2 = fileIo.statSync(inputFile2.fd); + player.playNative(inputFile.fd, 0, inputFileState.size, 0, this.targetVal, this.targetMetadata, () => { + fileIo.close(inputFile) + .catch((err: BusinessError) => { + Logger.warn(`fileIo close failed, code=${err.code}, message=${err.message}`) + }) + }) + player.playNative(inputFile2.fd, 0, inputFileState2.size, 1, this.targetVal, this.targetMetadata, () => { + fileIo.close(inputFile2) + .catch((err: BusinessError) => { + Logger.warn(`fileIo close failed, code=${err.code}, message=${err.message}`) + }) + }) + } catch (error) { + let err = error as BusinessError; + Logger.warn(`fileIo openSync or statSync failed, code=${err.code}, message=${err.message}`); + } } @Builder diff --git a/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/utils/AVPlayerDemo.ets b/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/utils/AVPlayerDemo.ets index 7ea46695..262a6885 100644 --- a/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/utils/AVPlayerDemo.ets +++ b/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/utils/AVPlayerDemo.ets @@ -19,17 +19,19 @@ import { common } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; import Logger from '../utils/Logger'; import { SizeChangeListener } from '../utils/SizeChangeInterface'; +import { resourceManager } from '@kit.LocalizationKit'; const TAG: string = 'AVPlayerDemo'; export class AVPlayerDemo { private count: number = 0; - private surfaceID: string = ''; // surfaceID用于播放画面显示,具体的值需要通过Xcomponent接口获取,相关文档链接见上面Xcomponent创建方法 + private surfaceID: string = ''; // surfaceID用于播放画面显示,具体的值需要通过XComponent接口获取,相关文档链接见上面XComponent创建方法 private isSeek: boolean = true; // 用于区分模式是否支持seek操作 private fileSize: number = -1; private fd: number = 0; private avPlayer: media.AVPlayer | undefined = undefined private UIContext: UIContext + constructor(uiContext: UIContext) { this.UIContext = uiContext } @@ -48,14 +50,20 @@ export class AVPlayerDemo { // error回调监听函数,当avPlayer在操作过程中出现错误时调用reset接口触发重置流程 avPlayer.on('error', (err: BusinessError) => { Logger.error(`Invoke avPlayer failed, code is ${err.code}, message is ${err.message}`); - avPlayer.reset(); // 调用reset重置资源,触发idle状态 + avPlayer.reset() // 调用reset重置资源,触发idle状态 + .catch((err: BusinessError) => { + Logger.error(`avPlayer reset failed, code=${err.code}, message=${err.message}`) + }) }) // 状态机变化回调函数 - avPlayer.on('stateChange', async (state: string, reason: media.StateChangeReason) => { + avPlayer.on('stateChange', async (state: string, _reason: media.StateChangeReason) => { switch (state) { case 'idle': // 成功调用reset接口后触发该状态机上报 Logger.info(TAG, 'AVPlayer state idle called.'); - avPlayer.release(); // 调用release接口销毁实例对象 + avPlayer.release() // 调用release接口销毁实例对象 + .catch((err: BusinessError) => { + Logger.error(`avPlayer release failed, code=${err.code}, message=${err.message}`) + }) break; case 'initialized': // avplayer 设置播放源后触发该状态上报 Logger.info(TAG, 'AVPlayer state initialized called.'); @@ -63,12 +71,17 @@ export class AVPlayerDemo { Logger.debug(TAG, 'surfaceID ' + this.surfaceID) avPlayer.surfaceId = this.surfaceID; - avPlayer.prepare(); - + avPlayer.prepare() + .catch((err: BusinessError) => { + Logger.error(`avPlayer prepare failed, code=${err.code}, message=${err.message}`) + }) break; case 'prepared': // prepare调用成功后上报该状态机 Logger.info(TAG, 'AVPlayer state prepared called.'); - avPlayer.play(); // 调用播放接口开始播放 + avPlayer.play() // 调用播放接口开始播放 + .catch((err: BusinessError) => { + Logger.error(`avPlayer play failed, code=${err.code}, message=${err.message}`) + }) Logger.warn(TAG, ' avPlayer surface size ' + avPlayer.width + ' ' + avPlayer.height) callback.onChange(avPlayer.width, avPlayer.height) @@ -84,21 +97,33 @@ export class AVPlayerDemo { Logger.info(TAG, 'AVPlayer wait to play end.'); } } else { - avPlayer.pause(); // 调用暂停接口暂停播放 + avPlayer.pause() // 调用暂停接口暂停播放 + .catch((err: BusinessError) => { + Logger.error(`avPlayer pause failed, code=${err.code}, message=${err.message}`) + }) } this.count++; break; case 'paused': // pause成功调用后触发该状态机上报 Logger.info(TAG, 'AVPlayer state paused called.'); - avPlayer.play(); // 再次播放接口开始播放 + avPlayer.play() // 再次播放接口开始播放 + .catch((err: BusinessError) => { + Logger.error(`avPlayer play failed, code=${err.code}, message=${err.message}`) + }) break; case 'completed': // 播放结束后触发该状态机上报 Logger.info(TAG, 'AVPlayer state completed called.'); - avPlayer.stop(); //调用播放结束接口 + avPlayer.stop() //调用播放结束接口 + .catch((err: BusinessError) => { + Logger.error(`avPlayer stop failed, code=${err.code}, message=${err.message}`) + }) break; case 'stopped': // stop接口成功调用后触发该状态机上报 Logger.info(TAG, 'AVPlayer state stopped called.'); - avPlayer.reset(); // 调用reset接口初始化avplayer状态 + avPlayer.reset() // 调用reset接口初始化avplayer状态 + .catch((err: BusinessError) => { + Logger.error(`avPlayer reset failed, code=${err.code}, message=${err.message}`) + }) break; case 'released': Logger.info(TAG, 'AVPlayer state released called.'); @@ -111,7 +136,7 @@ export class AVPlayerDemo { } private callback: SizeChangeListener = { - onChange: (width: number, height: number): void => { + onChange: (_width: number, _height: number): void => { } } @@ -125,45 +150,73 @@ export class AVPlayerDemo { Logger.debug(TAG, 'avPlayerUrlDemo ..... surface id ' + surfaceId); this.surfaceID = surfaceId; // 创建avPlayer实例对象 - this.avPlayer = await media.createAVPlayer(); - - // 创建状态机变化回调函数 - this.setAVPlayerCallback(this.avPlayer, callBack); + // this.avPlayer = await media.createAVPlayer(); + await media.createAVPlayer() + .then((data: media.AVPlayer) => { + this.avPlayer = data; + // 创建状态机变化回调函数 + this.setAVPlayerCallback(data, callBack); + }) + .catch((err: BusinessError) => { + Logger.error(`createAVPlayer failed, code=${err.code}, message=${err.message}`) + }) let fdPath = 'fd://'; // 通过UIAbilityContext获取沙箱地址filesDir,以Stage模型为例 // 打开相应的资源文件地址获取fd,并为url赋值触发initialized状态机上报 - let file = await fileIo.open(filePath, fileIo.OpenMode.READ_ONLY); - // let pathDir = context.filesDir +''+'VID_20240805_094821.mp4'; - // Logger.debug(TAG,pathDir) - fdPath = fdPath + '' + file.fd; - this.isSeek = true; // 支持seek操作 - this.avPlayer.url = fdPath; - + await fileIo.open(filePath, fileIo.OpenMode.READ_ONLY) + .then((data: fileIo.File) => { + // let pathDir = context.filesDir +''+'VID_20240805_094821.mp4'; + // Logger.debug(TAG,pathDir) + fdPath = fdPath + '' + data.fd; + this.isSeek = true; // 支持seek操作 + this.avPlayer!.url = fdPath; + }) + .catch((err: BusinessError) => { + Logger.error(`fileIo open failed, code=${err.code}, message=${err.message}`) + }) } // 以下demo为使用资源管理接口获取打包在HAP内的媒体资源文件并通过fdSrc属性进行播放示例 async avPlayerFdSrcDemo() { // 创建avPlayer实例对象 - this.avPlayer = await media.createAVPlayer(); - // 创建状态机变化回调函数 - this.setAVPlayerCallback(this.avPlayer, this.callback); + // this.avPlayer = await media.createAVPlayer(); + await media.createAVPlayer() + .then((data: media.AVPlayer) => { + this.avPlayer = data; + // 创建状态机变化回调函数 + this.setAVPlayerCallback(data, this.callback); + }) + .catch((err: BusinessError) => { + Logger.error(`createAVPlayer failed, code=${err.code}, message=${err.message}`) + }) // 通过UIAbilityContext的resourceManager成员的getRawFd接口获取媒体资源播放地址 // 返回类型为{fd,offset,length},fd为HAP包fd地址,offset为媒体资源偏移量,length为播放长度 let context = this.UIContext.getHostContext() as common.UIAbilityContext; - let fileDescriptor = await context.resourceManager.getRawFd('H264_AAC.mp4'); - let avFileDescriptor: media.AVFileDescriptor = - { fd: fileDescriptor.fd, offset: fileDescriptor.offset, length: fileDescriptor.length }; - this.isSeek = true; // 支持seek操作 - // 为fdSrc赋值触发initialized状态机上报 - this.avPlayer.fdSrc = avFileDescriptor; + await context.resourceManager.getRawFd('H264_AAC.mp4') + .then((data: resourceManager.RawFileDescriptor) => { + let avFileDescriptor: media.AVFileDescriptor = { fd: data.fd, offset: data.offset, length: data.length }; + this.isSeek = true; // 支持seek操作 + // 为fdSrc赋值触发initialized状态机上报 + this.avPlayer!.fdSrc = avFileDescriptor; + }) + .catch((err: BusinessError) => { + Logger.error(`setPreferredOrientation failed, code=${err.code}, message=${err.message}`) + }) } // 以下demo为使用fs文件系VideoPage.ets统打开沙箱地址获取媒体文件地址并通过dataSrc属性进行播放(seek模式)示例 async avPlayerDataSrcSeekDemo() { // 创建avPlayer实例对象 - let avPlayer: media.AVPlayer = await media.createAVPlayer(); - // 创建状态机变化回调函数 - this.setAVPlayerCallback(avPlayer, this.callback); + // let avPlayer: media.AVPlayer = await media.createAVPlayer(); + await media.createAVPlayer() + .then((avPlayer: media.AVPlayer) => { + this.avPlayer = avPlayer; + // 创建状态机变化回调函数 + this.setAVPlayerCallback(avPlayer, this.callback); + }) + .catch((err: BusinessError) => { + Logger.error(`createAVPlayer failed, code=${err.code}, message=${err.message}`) + }) // dataSrc播放模式的的播放源地址,当播放为Seek模式时fileSize为播放文件的具体大小,下面会对fileSize赋值 let src: media.AVDataSrcDescriptor = { fileSize: -1, @@ -172,7 +225,12 @@ export class AVPlayerDemo { if (buf == undefined || length == undefined || pos == undefined) { return -1; } - num = fileIo.readSync(this.fd, buf, { offset: pos, length: length }); + try { + num = fileIo.readSync(this.fd, buf, { offset: pos, length: length }); + } catch (error) { + let err = error as BusinessError; + Logger.error(`fileIo failed, code=${err.code}, message=${err.message}`); + } if (num > 0 && (this.fileSize >= pos)) { return num; } @@ -183,14 +241,23 @@ export class AVPlayerDemo { // 通过UIAbilityContext获取沙箱地址filesDir,以Stage模型为例 let pathDir = context.filesDir; let path = pathDir + '/H264_AAC.mp4'; - await fileIo.open(path).then((file: fileIo.File) => { - this.fd = file.fd; - }) - // 获取播放文件的大小 - this.fileSize = fileIo.statSync(path).size; + await fileIo.open(path) + .then((file: fileIo.File) => { + this.fd = file.fd; + }) + .catch((err: BusinessError) => { + Logger.error(`fileIo open failed, code=${err.code}, message=${err.message}`) + }) + try { + // 获取播放文件的大小 + this.fileSize = fileIo.statSync(path).size; + } catch (error) { + let err = error as BusinessError; + Logger.error(`setColorMode failed, code=${err.code}, message=${err.message}`); + } src.fileSize = this.fileSize; this.isSeek = true; // 支持seek操作 - avPlayer.dataSrc = src; + this.avPlayer!.dataSrc = src; } // 以下demo为使用fs文件系统打开沙箱地址获取媒体文件地址并通过dataSrc属性进行播放(No seek模式)示例 @@ -198,16 +265,27 @@ export class AVPlayerDemo { this.surfaceID = surfaceId // 创建状态机变化回调函数 - let file = await fileIo.open(filePath, fileIo.OpenMode.READ_ONLY); - if (!file) { - Logger.error(TAG, 'player inputFile is null'); - } - let inputFileState = fileIo.statSync(file.fd); - if (inputFileState.size <= 0) { - Logger.error(TAG, 'player inputFile size is 0'); - } - Logger.info(TAG, 'inputFileState size ' + inputFileState.size); - this.fd = file.fd; + // let file = await fileIo.open(filePath, fileIo.OpenMode.READ_ONLY); + await fileIo.open(filePath, fileIo.OpenMode.READ_ONLY) + .then((file: fileIo.File) => { + if (!file) { + Logger.error(TAG, 'player inputFile is null'); + } + try { + let inputFileState = fileIo.statSync(file.fd); + if (inputFileState.size <= 0) { + Logger.error(TAG, 'player inputFile size is 0'); + } + Logger.info(TAG, 'inputFileState size ' + inputFileState.size); + } catch (error) { + let err = error as BusinessError; + Logger.error(`setColorMode failed, code=${err.code}, message=${err.message}`); + } + this.fd = file.fd; + }) + .catch((err: BusinessError) => { + Logger.error(`setPreferredOrientation failed, code=${err.code}, message=${err.message}`) + }) Logger.debug(TAG, 'fd --- ' + this.fd); let src: media.AVDataSrcDescriptor = { fileSize: -1, @@ -216,48 +294,74 @@ export class AVPlayerDemo { if (buf == undefined || length == undefined || pos == undefined) { return -1; } - num = fileIo.readSync(this.fd, buf, { offset: pos, length: length }); + try { + num = fileIo.readSync(this.fd, buf, { offset: pos, length: length }); + } catch (error) { + let err = error as BusinessError; + Logger.warn(`setColorMode failed, code=${err.code}, message=${err.message}`); + } if (num > 0 && (this.fileSize >= pos)) { return num; } return -1; } } - - // 创建avPlayer实例对象 - this.avPlayer = await media.createAVPlayer(); - this.setAVPlayerCallback(this.avPlayer, this.callback); - // 获取播放文件的大小 - this.fileSize = fileIo.statSync(filePath).size; + try { + // 创建avPlayer实例对象 + this.avPlayer = await media.createAVPlayer(); + this.setAVPlayerCallback(this.avPlayer, this.callback); + } catch (error) { + let err = error as BusinessError; + Logger.warn(`createAVPlayer failed, code=${err.code}, message=${err.message}`); + } + try { + // 获取播放文件的大小 + this.fileSize = fileIo.statSync(filePath).size; + } catch (error) { + let err = error as BusinessError; + Logger.warn(`createAVPlayer failed, code=${err.code}, message=${err.message}`); + } src.fileSize = this.fileSize; this.isSeek = true; // 支持seek操作 - this.avPlayer.dataSrc = src; - + this.avPlayer!.dataSrc = src; } // 以下demo为通过url设置网络地址来实现播放直播码流的demo async avPlayerLiveDemo() { - // 创建avPlayer实例对象 - let avPlayer: media.AVPlayer = await media.createAVPlayer(); - // 创建状态机变化回调函数 - this.setAVPlayerCallback(avPlayer, this.callback); - this.isSeek = false; // 不支持seek操作 - avPlayer.url = 'http://xxx.xxx.xxx.xxx:xx/xx/index.m3u8'; // 播放hls网络直播码流 + try { + // 创建avPlayer实例对象 + let avPlayer: media.AVPlayer = await media.createAVPlayer(); + // 创建状态机变化回调函数 + this.setAVPlayerCallback(avPlayer, this.callback); + this.isSeek = false; // 不支持seek操作 + avPlayer.url = 'http://xxx.xxx.xxx.xxx:xx/xx/index.m3u8'; // 播放hls网络直播码流 + } catch (error) { + let err = error as BusinessError; + Logger.error(`createAVPlayer failed, code=${err.code}, message=${err.message}`); + } } // 以下demo为通过setMediaSource设置自定义头域及媒体播放优选参数实现初始播放参数设置 async preDownloadDemo() { - // 创建avPlayer实例对象 - let avPlayer: media.AVPlayer = await media.createAVPlayer(); - let mediaSource: media.MediaSource = - media.createMediaSourceWithUrl('http://xxx', { 'User-Agent': 'User-Agent-Value' }); - let playbackStrategy: media.PlaybackStrategy = { - preferredWidth: 1, - preferredHeight: 2, - preferredBufferDuration: 3, - preferredHdr: false - }; - // 设置媒体来源和播放策略 - avPlayer.setMediaSource(mediaSource, playbackStrategy); + try { + // 创建avPlayer实例对象 + let avPlayer: media.AVPlayer = await media.createAVPlayer(); + let mediaSource: media.MediaSource = + media.createMediaSourceWithUrl('http://xxx', { 'User-Agent': 'User-Agent-Value' }); + let playbackStrategy: media.PlaybackStrategy = { + preferredWidth: 1, + preferredHeight: 2, + preferredBufferDuration: 3, + preferredHdr: false + }; + // 设置媒体来源和播放策略 + avPlayer.setMediaSource(mediaSource, playbackStrategy) + .catch((err: BusinessError) => { + Logger.error(`setMediaSource failed, code=${err.code}, message=${err.message}`) + }) + } catch (error) { + let err = error as BusinessError; + Logger.error(`createAVPlayer or createMediaSourceWithUrl failed, code=${err.code}, message=${err.message}`); + } } } \ No newline at end of file diff --git a/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/utils/WindowUtil.ets b/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/utils/WindowUtil.ets index 62fe5a44..bd06b579 100644 --- a/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/utils/WindowUtil.ets +++ b/HDRVivid/ProcessingInterfaceTest/entry/src/main/ets/utils/WindowUtil.ets @@ -13,7 +13,7 @@ * limitations under the License. */ -import { deviceInfo } from '@kit.BasicServicesKit'; +import { BusinessError, deviceInfo } from '@kit.BasicServicesKit'; import { window } from '@kit.ArkUI'; import { CommonConstants } from '../utils/CommonConstants'; import Logger from './Logger'; @@ -49,9 +49,15 @@ export class WindowUtil { return; } if (deviceInfo.deviceType !== CommonConstants.DEVICE_TYPES[0] && deviceInfo.deviceType !== - CommonConstants.DEVICE_TYPES[1]) { + CommonConstants.DEVICE_TYPES[1]) { // Set portrait display. - this.mainWindowClass.setPreferredOrientation(window.Orientation.PORTRAIT); + this.mainWindowClass.setPreferredOrientation(window.Orientation.PORTRAIT) + .then(() => { + Logger.info('setPreferredOrientation success'); + }) + .catch((err: BusinessError) => { + Logger.error(`setPreferredOrientation failed, code=${err.code}, message=${err.message}`) + }) } }); } @@ -62,7 +68,13 @@ export class WindowUtil { return; } // Setting orientation. - this.mainWindowClass.setPreferredOrientation(orientation); + this.mainWindowClass.setPreferredOrientation(orientation) + .then(() => { + Logger.info('setPreferredOrientation success'); + }) + .catch((err: BusinessError) => { + Logger.error(`setPreferredOrientation failed, code=${err.code}, message=${err.message}`) + }) } disableWindowSystemBar(): void { @@ -71,7 +83,13 @@ export class WindowUtil { return; } // Set the status bar and navigation bar to be invisible in full-screen mode. - this.mainWindowClass.setWindowSystemBarEnable([]); + this.mainWindowClass.setWindowSystemBarEnable([]) + .then(() => { + Logger.info('setWindowSystemBarEnable success'); + }) + .catch((err: BusinessError) => { + Logger.error(`setWindowSystemBarEnable failed, code=${err.code}, message=${err.message}`) + }) } enableWindowSystemBar(): void { @@ -79,7 +97,13 @@ export class WindowUtil { Logger.error(`MainWindowClass is undefined`); return; } - this.mainWindowClass.setWindowSystemBarEnable(['status', 'navigation']); + this.mainWindowClass.setWindowSystemBarEnable(['status', 'navigation']) + .then(() => { + Logger.info('setWindowSystemBarEnable success'); + }) + .catch((err: BusinessError) => { + Logger.error(`setWindowSystemBarEnable failed, code=${err.code}, message=${err.message}`) + }) } setFullScreen(): void { @@ -88,7 +112,13 @@ export class WindowUtil { return; } // Set full-screen display. - this.mainWindowClass.setWindowLayoutFullScreen(true); + this.mainWindowClass.setWindowLayoutFullScreen(true) + .then(() => { + Logger.info('setWindowLayoutFullScreen success'); + }) + .catch((err: BusinessError) => { + Logger.error(`setWindowLayoutFullScreen failed, code=${err.code}, message=${err.message}`) + }) } getMainWindow(): window.Window | undefined { diff --git a/SegmentedPhotograph/entry/src/main/ets/entryability/EntryAbility.ets b/SegmentedPhotograph/entry/src/main/ets/entryability/EntryAbility.ets index 02fd7f22..73463ff9 100644 --- a/SegmentedPhotograph/entry/src/main/ets/entryability/EntryAbility.ets +++ b/SegmentedPhotograph/entry/src/main/ets/entryability/EntryAbility.ets @@ -33,12 +33,19 @@ export default class EntryAbility extends UIAbility { onWindowStageCreate(windowStage: window.WindowStage): void { Logger.info(TAG, 'Ability onWindowStageCreate'); - windowStage.getMainWindow().then((win: window.Window): void => { - if (!win) { - return; - } - win.setWindowLayoutFullScreen(true); - }); + windowStage.getMainWindow() + .then((win: window.Window): void => { + if (!win) { + return; + } + win.setWindowLayoutFullScreen(true) + .catch((err: BusinessError) => { + Logger.error(TAG, `Failed to setWindowLayoutFullScreen, code=${err.code}, message=${err.message}`) + }) + }) + .catch((err: BusinessError) => { + Logger.error(TAG, `Failed to getMainWindow, code=${err.code}, message=${err.message}`) + }) this.requestPermissionsFn(); windowStage.loadContent('pages/IndexPage', (err, data) => { if (err.code) { diff --git a/SegmentedPhotograph/entry/src/main/ets/mode/CameraService.ets b/SegmentedPhotograph/entry/src/main/ets/mode/CameraService.ets index bbd333ce..c1a948db 100644 --- a/SegmentedPhotograph/entry/src/main/ets/mode/CameraService.ets +++ b/SegmentedPhotograph/entry/src/main/ets/mode/CameraService.ets @@ -203,6 +203,7 @@ class CameraService { Logger.error(TAG, `initCamera fail: ${JSON.stringify(err)}`); } } + // [End init_camera] /** @@ -211,7 +212,12 @@ class CameraService { getZoomRatioRange(): Array { let zoomRatioRange: Array = []; if (this.session !== undefined) { - zoomRatioRange = this.session.getZoomRatioRange(); + try { + zoomRatioRange = this.session.getZoomRatioRange(); + } catch (error) { + let err = error as BusinessError; + Logger.warn('testTag', `getZoomRatioRange failed, code=${err.code}, message=${err.message}`); + } } return zoomRatioRange; } @@ -250,9 +256,15 @@ class CameraService { quality: camera.QualityLevel.QUALITY_LEVEL_HIGH, mirror: cameraDeviceIndex ? true : false }; - await this.photoOutput?.capture(photoSettings); - Logger.info(TAG, 'takePicture end'); + try { + await this.photoOutput?.capture(photoSettings); + Logger.info(TAG, 'takePicture end'); + } catch (error) { + let err = error as BusinessError; + Logger.warn('testTag', `capture failed, code=${err.code}, message=${err.message}`); + } } + // [End take_picture] /** @@ -364,6 +376,7 @@ class CameraService { return undefined; } } + // [End create_photo_outputFn] /** @@ -632,15 +645,19 @@ class CameraService { * Focus mode */ setFocusMode(focusMode: camera.FocusMode): void { - // Check whether the focus mode is supported - Logger.info(TAG, `setFocusMode is called`); - let isSupported = this.session?.isFocusModeSupported(focusMode); - Logger.info(TAG, `setFocusMode isSupported: ${isSupported}`); - // Setting the Focus Mode - if (!isSupported) { - return; + try { + // Check whether the focus mode is supported + let isSupported = this.session?.isFocusModeSupported(focusMode); + Logger.info(TAG, `setFocusMode isSupported: ${isSupported}`); + // Setting the Focus Mode + if (!isSupported) { + return; + } + this.session?.setFocusMode(focusMode); + } catch (error) { + let err = error as BusinessError; + Logger.warn('testTag', `isFocusModeSupported or setFocusMode failed, code=${err.code}, message=${err.message}`); } - this.session?.setFocusMode(focusMode); } } diff --git a/SegmentedPhotograph/entry/src/main/ets/pages/EditPage.ets b/SegmentedPhotograph/entry/src/main/ets/pages/EditPage.ets index 3cef80c2..879002da 100644 --- a/SegmentedPhotograph/entry/src/main/ets/pages/EditPage.ets +++ b/SegmentedPhotograph/entry/src/main/ets/pages/EditPage.ets @@ -53,23 +53,25 @@ struct EditPage { }; requestImage(requestImageParams: RequestImageParams): void { - try { - class MediaDataHandler implements photoAccessHelper.MediaAssetDataHandler { - onDataPrepared(data: ArrayBuffer, map: Map): void { - Logger.info(TAG, 'onDataPrepared map' + JSON.stringify(map)); - requestImageParams.callback(data); - Logger.info(TAG, 'onDataPrepared end'); - } - }; - let requestOptions: photoAccessHelper.RequestOptions = { - deliveryMode: photoAccessHelper.DeliveryMode.BALANCE_MODE, - }; - const handler = new MediaDataHandler(); - photoAccessHelper.MediaAssetManager.requestImageData(requestImageParams.context, requestImageParams.photoAsset, - requestOptions, handler); - } catch (error) { - Logger.error(TAG, `Failed in requestImage, error code: ${error.code}`); - } + class MediaDataHandler implements photoAccessHelper.MediaAssetDataHandler { + onDataPrepared(data: ArrayBuffer, map: Map): void { + Logger.info(TAG, 'onDataPrepared map' + JSON.stringify(map)); + requestImageParams.callback(data); + Logger.info(TAG, 'onDataPrepared end'); + } + }; + let requestOptions: photoAccessHelper.RequestOptions = { + deliveryMode: photoAccessHelper.DeliveryMode.BALANCE_MODE, + }; + const handler = new MediaDataHandler(); + photoAccessHelper.MediaAssetManager.requestImageData(requestImageParams.context, requestImageParams.photoAsset, + requestOptions, handler) + .then(() => { + Logger.info(TAG, 'requestImageData success'); + }) + .catch((err: BusinessError) => { + Logger.error(TAG, `requestImageData failed, code=${err.code}, message=${err.message}`) + }) } aboutToAppear() { @@ -88,6 +90,7 @@ struct EditPage { this.curPixelMap = GlobalContext.get().getT('photoAsset'); } } + // [End photo_buffer_callback] build() { diff --git a/SegmentedPhotograph/entry/src/main/ets/pages/IndexPage.ets b/SegmentedPhotograph/entry/src/main/ets/pages/IndexPage.ets index 05e054fe..d6649c9d 100644 --- a/SegmentedPhotograph/entry/src/main/ets/pages/IndexPage.ets +++ b/SegmentedPhotograph/entry/src/main/ets/pages/IndexPage.ets @@ -13,7 +13,9 @@ * limitations under the License. */ +import { BusinessError } from '@kit.BasicServicesKit'; import { Constants } from '../common/Constants'; +import Logger from '../common/utils/Logger'; @Entry @Component @@ -35,7 +37,13 @@ struct IndexPage { .height(42) .onClick(() => { AppStorage.setOrCreate('photoMode', Constants.SINGLE_STAGE_MODE); - this.getUIContext().getRouter().pushUrl({ url: 'pages/PhotoPage' }); + this.getUIContext().getRouter().pushUrl({ url: 'pages/PhotoPage' }) + .then(() => { + Logger.info('pushUrl success'); + }) + .catch((err: BusinessError) => { + Logger.error(`pushUrl failed, code=${err.code}, message=${err.message}`) + }) }) Button($r('app.string.segmented_photography')) .height(42) @@ -44,7 +52,13 @@ struct IndexPage { .width('100%') .onClick(() => { AppStorage.setOrCreate('photoMode', Constants.SUBSECTION_MODE); - this.getUIContext().getRouter().pushUrl({ url: 'pages/PhotoPage' }); + this.getUIContext().getRouter().pushUrl({ url: 'pages/PhotoPage' }) + .then(() => { + Logger.info('pushUrl success'); + }) + .catch((err: BusinessError) => { + Logger.error(`pushUrl failed, code=${err.code}, message=${err.message}`) + }) }) }.margin({ bottom: 46 }) diff --git a/SegmentedPhotograph/entry/src/main/ets/pages/PhotoPage.ets b/SegmentedPhotograph/entry/src/main/ets/pages/PhotoPage.ets index ea9988e7..e921bb14 100644 --- a/SegmentedPhotograph/entry/src/main/ets/pages/PhotoPage.ets +++ b/SegmentedPhotograph/entry/src/main/ets/pages/PhotoPage.ets @@ -20,6 +20,7 @@ import { GlobalContext } from '../common/utils/GlobalContext'; import { Constants } from '../common/Constants'; import { common } from '@kit.AbilityKit'; import { window } from '@kit.ArkUI'; +import { BusinessError } from '@kit.BasicServicesKit'; const TAG = 'PhotoPage'; @@ -55,7 +56,13 @@ struct PhotoPage { let SystemBarProperties: window.SystemBarProperties = { statusBarContentColor: '#ffffff', }; - this.windowClass.setWindowSystemBarProperties(SystemBarProperties); + this.windowClass.setWindowSystemBarProperties(SystemBarProperties) + .then(() => { + Logger.info('setWindowSystemBarProperties success'); + }) + .catch((err: BusinessError) => { + Logger.error(`setWindowSystemBarProperties failed, code=${err.code}, message=${err.message}`) + }) } catch (exception) { console.error(`Failed to obtain the window. Cause code: ${exception.code}, message: ${exception.message}`); } @@ -73,7 +80,13 @@ struct PhotoPage { let SystemBarProperties: window.SystemBarProperties = { statusBarContentColor: '#000000', }; - this.windowClass.setWindowSystemBarProperties(SystemBarProperties); + this.windowClass.setWindowSystemBarProperties(SystemBarProperties) + .then(() => { + Logger.info('setWindowSystemBarProperties success'); + }) + .catch((err: BusinessError) => { + Logger.error(`setWindowSystemBarProperties failed, code=${err.code}, message=${err.message}`) + }) await CameraService.releaseCamera(); } diff --git a/bptaMultiWindow/entry/src/main/ets/components/WindowUtil.ets b/bptaMultiWindow/entry/src/main/ets/components/WindowUtil.ets index f5b8a250..68334f4a 100644 --- a/bptaMultiWindow/entry/src/main/ets/components/WindowUtil.ets +++ b/bptaMultiWindow/entry/src/main/ets/components/WindowUtil.ets @@ -26,34 +26,48 @@ import { hilog } from '@kit.PerformanceAnalysisKit'; @Observed export class WindowUtil { private mainWindowClass?: window.Window; + // [StartExclude recover] maximize(): void { - if (this.mainWindowClass!.getWindowStatus() === window.WindowStatusType.FLOATING) { - this.mainWindowClass!.maximize() - .then(() => { - hilog.info(0x0000, 'testTag', '%{public}s', `Succeed in maximizing the window.`); - }) - .catch((err: BusinessError) => { - hilog.error(0x0000, 'testTag', `Failed to maximize the window. Code: ${err.code}, message: ${err.message}`, - JSON.stringify(err) ?? ''); - }); + try { + if (this.mainWindowClass!.getWindowStatus() === window.WindowStatusType.FLOATING) { + this.mainWindowClass!.maximize() + .then(() => { + hilog.info(0x0000, 'testTag', '%{public}s', `Succeed in maximizing the window.`); + }) + .catch((err: BusinessError) => { + hilog.error(0x0000, 'testTag', `Failed to maximize the window. Code: ${err.code}, message: ${err.message}`, + JSON.stringify(err) ?? ''); + }); + } + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `getWindowStatus failed, code=${err.code}, message=${err.message}`); } } + // [EndExclude recover] // [StartExclude maximize] recover(): void { - if (this.mainWindowClass!.getWindowStatus() === window.WindowStatusType.FULL_SCREEN) { - this.mainWindowClass!.recover() - .then(() => { - hilog.info(0x0000, 'testTag', '%{public}s', `Succeed in recovering the window.`); - }) - .catch((err: BusinessError) => { - hilog.error(0x0000, 'testTag', `Failed to recover the window. Code: ${err.code}, message: ${err.message}`, - JSON.stringify(err) ?? ''); - }); + try { + if (this.mainWindowClass!.getWindowStatus() === window.WindowStatusType.FULL_SCREEN) { + this.mainWindowClass!.recover() + .then(() => { + hilog.info(0x0000, 'testTag', '%{public}s', `Succeed in recovering the window.`); + }) + .catch((err: BusinessError) => { + hilog.error(0x0000, 'testTag', `Failed to recover the window. Code: ${err.code}, message: ${err.message}`, + JSON.stringify(err) ?? ''); + }); + } + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `getWindowStatus failed, code=${err.code}, message=${err.message}`); } } + // [EndExclude maximize] } + // [End maximize] // [End recover] \ No newline at end of file diff --git a/bptaMultiWindow/entry/src/main/ets/entryability/EntryAbility.ets b/bptaMultiWindow/entry/src/main/ets/entryability/EntryAbility.ets index f0fae342..01893a3a 100644 --- a/bptaMultiWindow/entry/src/main/ets/entryability/EntryAbility.ets +++ b/bptaMultiWindow/entry/src/main/ets/entryability/EntryAbility.ets @@ -19,7 +19,7 @@ // [Start onWindowStageCreate] import { UIAbility } from '@kit.AbilityKit'; import { window } from '@kit.ArkUI'; -import { deviceInfo } from '@kit.BasicServicesKit'; +import { BusinessError, deviceInfo } from '@kit.BasicServicesKit'; import hilog from '@ohos.hilog'; export default class EntryAbility extends UIAbility { @@ -34,12 +34,22 @@ export default class EntryAbility extends UIAbility { }); // [EndExclude onWindowStageCreate] let windowClass: window.Window | null = null; - windowStage.getMainWindow().then((data: window.Window) => { - windowClass = data; - if (deviceInfo.deviceType !== '2in1') { - windowClass.setWindowLayoutFullScreen(true); - } - }); + windowStage.getMainWindow() + .then((data: window.Window) => { + windowClass = data; + if (deviceInfo.deviceType !== '2in1') { + windowClass.setWindowLayoutFullScreen(true) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', + `setWindowLayoutFullScreen failed, code=${err.code}, message=${err.message}`) + }) + } + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `getMainWindow failed, code=${err.code}, message=${err.message}`) + }) + } } + // [End onWindowStageCreate] \ No newline at end of file diff --git a/bptaMultiWindow/entry/src/main/ets/entryability/EntryAbility1.ets b/bptaMultiWindow/entry/src/main/ets/entryability/EntryAbility1.ets index d76b66cc..9101aa7e 100644 --- a/bptaMultiWindow/entry/src/main/ets/entryability/EntryAbility1.ets +++ b/bptaMultiWindow/entry/src/main/ets/entryability/EntryAbility1.ets @@ -31,17 +31,28 @@ export default class EntryAbility extends UIAbility { } setDefaultOrientation(): void { - let windowRect: window.Rect = this.windowObj!.getWindowProperties().windowRect; - let windowWidthVp: number = this.uiContext!.px2vp(windowRect.width); - let windowHeightVp: number = this.uiContext!.px2vp(windowRect.height); + try { + let windowRect: window.Rect = this.windowObj!.getWindowProperties().windowRect; + let windowWidthVp: number = this.uiContext!.px2vp(windowRect.width); + let windowHeightVp: number = this.uiContext!.px2vp(windowRect.height); - // If this condition is met, the window can be rotated. - if (Math.min(windowWidthVp, windowHeightVp) > 348) { - this.windowObj?.setPreferredOrientation(window.Orientation.AUTO_ROTATION_RESTRICTED); - } - // Otherwise, the window is displayed in portrait mode. - else { - this.windowObj?.setPreferredOrientation(window.Orientation.PORTRAIT); + // If this condition is met, the window can be rotated. + if (Math.min(windowWidthVp, windowHeightVp) > 348) { + this.windowObj?.setPreferredOrientation(window.Orientation.AUTO_ROTATION_RESTRICTED) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `setPreferredOrientation failed, code=${err.code}, message=${err.message}`) + }) + } + // Otherwise, the window is displayed in portrait mode. + else { + this.windowObj?.setPreferredOrientation(window.Orientation.PORTRAIT) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `setPreferredOrientation failed, code=${err.code}, message=${err.message}`) + }) + } + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `getWindowProperties failed, code=${err.code}, message=${err.message}`); } } @@ -51,18 +62,26 @@ export default class EntryAbility extends UIAbility { windowStage.getMainWindow().then((windowObj) => { this.windowObj = windowObj; }).catch((err: BusinessError) => { - hilog.error(0x0000, 'testTag', `Failed to obtain the main window. Cause code: ${err.code}, message: ${err.message}`); + hilog.error(0x0000, 'testTag', + `Failed to obtain the main window. Cause code: ${err.code}, message: ${err.message}`); }); windowStage.loadContent('pages/Index', (err) => { if (err.code) { hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); return; } - this.uiContext = this.windowObj!.getUIContext(); - this.setDefaultOrientation(); - this.windowObj!.on('windowSizeChange', this.onWindowSizeChange); - hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.'); + try { + this.uiContext = this.windowObj!.getUIContext(); + this.setDefaultOrientation(); + this.windowObj!.on('windowSizeChange', this.onWindowSizeChange); + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.'); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `getUIContext failed, code=${err.code}, message=${err.message}`); + } + }); } } + // [End setdefaultorientation] \ No newline at end of file diff --git a/bptaMultiWindow/entry/src/main/ets/entryability/EntryAbility2.ets b/bptaMultiWindow/entry/src/main/ets/entryability/EntryAbility2.ets index 46c5c407..18ff83ff 100644 --- a/bptaMultiWindow/entry/src/main/ets/entryability/EntryAbility2.ets +++ b/bptaMultiWindow/entry/src/main/ets/entryability/EntryAbility2.ets @@ -20,18 +20,21 @@ // [Start onavoid_areachange] import { UIAbility } from '@kit.AbilityKit'; import { window as arkWindow } from '@kit.ArkUI'; // Renamed the imported window +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { BusinessError } from '@kit.BasicServicesKit'; export default class EntryAbility extends UIAbility { - private onAvoidAreaChange: (avoidArea: arkWindow.AvoidAreaOptions) => void = (avoidArea: arkWindow.AvoidAreaOptions) => { - const uiContext: UIContext | undefined = AppStorage.get('uiContext'); - if (avoidArea.type === arkWindow.AvoidAreaType.TYPE_SYSTEM) { - // Updates the height of the top status bar. - AppStorage.setOrCreate('topAvoidHeight', uiContext?.px2vp(avoidArea.area.topRect.height)); - } else if (avoidArea.type === arkWindow.AvoidAreaType.TYPE_NAVIGATION_INDICATOR) { - // Updated the bottom navigation bar. - AppStorage.setOrCreate('bottomAvoidHeight', uiContext?.px2vp(avoidArea.area.bottomRect.height)); - } - }; + private onAvoidAreaChange: (avoidArea: arkWindow.AvoidAreaOptions) => void = + (avoidArea: arkWindow.AvoidAreaOptions) => { + const uiContext: UIContext | undefined = AppStorage.get('uiContext'); + if (avoidArea.type === arkWindow.AvoidAreaType.TYPE_SYSTEM) { + // Updates the height of the top status bar. + AppStorage.setOrCreate('topAvoidHeight', uiContext?.px2vp(avoidArea.area.topRect.height)); + } else if (avoidArea.type === arkWindow.AvoidAreaType.TYPE_NAVIGATION_INDICATOR) { + // Updated the bottom navigation bar. + AppStorage.setOrCreate('bottomAvoidHeight', uiContext?.px2vp(avoidArea.area.bottomRect.height)); + } + }; onWindowStageCreate(windowStage: arkWindow.WindowStage): void { windowStage.getMainWindow((err, window: arkWindow.Window) => { @@ -39,16 +42,25 @@ export default class EntryAbility extends UIAbility { console.error('Failed to get main window. Error: ' + JSON.stringify(err)); return; } - window.setWindowLayoutFullScreen(true); - AppStorage.setOrCreate('uiContext', windowStage.getMainWindowSync().getUIContext()); - const uiContext: UIContext | undefined = AppStorage.get('uiContext'); - let topAvoidHeight: arkWindow.AvoidArea = window.getWindowAvoidArea(arkWindow.AvoidAreaType.TYPE_SYSTEM); - AppStorage.setOrCreate('topAvoidHeight', uiContext?.px2vp(topAvoidHeight.topRect.height)); - let bottomAvoidHeight: arkWindow.AvoidArea = - window.getWindowAvoidArea(arkWindow.AvoidAreaType.TYPE_NAVIGATION_INDICATOR); - AppStorage.setOrCreate('bottomAvoidHeight', uiContext?.px2vp(bottomAvoidHeight.bottomRect.height)); - window.on('avoidAreaChange', this.onAvoidAreaChange); + window.setWindowLayoutFullScreen(true) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `setWindowLayoutFullScreen failed, code=${err.code}, message=${err.message}`) + }) + try { + AppStorage.setOrCreate('uiContext', windowStage.getMainWindowSync().getUIContext()); + const uiContext: UIContext | undefined = AppStorage.get('uiContext'); + let topAvoidHeight: arkWindow.AvoidArea = window.getWindowAvoidArea(arkWindow.AvoidAreaType.TYPE_SYSTEM); + AppStorage.setOrCreate('topAvoidHeight', uiContext?.px2vp(topAvoidHeight.topRect.height)); + let bottomAvoidHeight: arkWindow.AvoidArea = + window.getWindowAvoidArea(arkWindow.AvoidAreaType.TYPE_NAVIGATION_INDICATOR); + AppStorage.setOrCreate('bottomAvoidHeight', uiContext?.px2vp(bottomAvoidHeight.bottomRect.height)); + window.on('avoidAreaChange', this.onAvoidAreaChange); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `getWindowAvoidArea failed, code=${err.code}, message=${err.message}`); + } }); } } + // [End onavoid_areachange] \ No newline at end of file diff --git a/bptaMultiWindow/entry/src/main/ets/entryability/EntryAbility3.ets b/bptaMultiWindow/entry/src/main/ets/entryability/EntryAbility3.ets index adbe5136..7e442d2f 100644 --- a/bptaMultiWindow/entry/src/main/ets/entryability/EntryAbility3.ets +++ b/bptaMultiWindow/entry/src/main/ets/entryability/EntryAbility3.ets @@ -20,7 +20,7 @@ // [Start onwindowstagecreate1] import { UIAbility } from '@kit.AbilityKit'; import { window } from '@kit.ArkUI'; -import { deviceInfo } from '@kit.BasicServicesKit'; +import { BusinessError, deviceInfo } from '@kit.BasicServicesKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; export default class EntryAbility extends UIAbility { @@ -35,12 +35,21 @@ export default class EntryAbility extends UIAbility { windowStage.getMainWindow().then((data: window.Window) => { let deviceTypeInfo: string = deviceInfo.deviceType; if (deviceTypeInfo === '2in1') { - // Set the title bar of the 2in1 device to be invisible after the loadContent() call takes effect. - data.setWindowDecorVisible(false); - // When the title bar is invisible, set the height of the title bar and control the height of the three buttons (full screen/restore, maximize, and close) in the upper right corner. - data.setWindowDecorHeight(64); + try { + // Set the title bar of the 2in1 device to be invisible after the loadContent() call takes effect. + data.setWindowDecorVisible(false); + // When the title bar is invisible, set the height of the title bar and control the height of the three buttons (full screen/restore, maximize, and close) in the upper right corner. + data.setWindowDecorHeight(64); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `set windowDecor size failed, code=${err.code}, message=${err.message}`); + } } }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `setWindowLayoutFullScreen failed, code=${err.code}, message=${err.message}`) + }) } } + // [End onwindowstagecreate1] \ No newline at end of file -- Gitee From c813eb793517d2c4d0a926e397dddf3762e3424c Mon Sep 17 00:00:00 2001 From: liugang9704 <2745340733@qq.com> Date: Sat, 20 Sep 2025 18:06:07 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9C=AA=E6=8D=95?= =?UTF-8?q?=E8=8E=B7=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/ets/entryability/EntryAbility.ets | 8 ++- .../entry/src/main/ets/pages/Index.ets | 35 +++++++++++ .../src/main/ets/pages/ParentCallPage.ets | 10 ++- .../main/ets/entryability/EntryAbility.ets | 21 ++++--- .../main/ets/entryability/EntryAbility.ets | 28 ++++++--- .../entry/src/main/ets/pages/PageOne.ets | 19 ++++-- .../entry/src/main/ets/pages/PageThree.ets | 17 ++++- .../entry/src/main/ets/pages/PageTwo.ets | 18 +++++- .../src/main/ets/utils/CameraServiceOne.ets | 22 +++++-- .../src/main/ets/utils/CameraServiceThree.ets | 10 ++- .../src/main/ets/utils/CameraServiceTwo.ets | 40 ++++++++---- .../main/ets/entryability/EntryAbility.ets | 8 ++- .../entry/src/main/ets/pages/Index.ets | 63 ++++++++++++++++--- .../src/main/ets/pages/sample1/Sample1.ets | 20 +++++- .../src/main/ets/pages/sample2/Sample2.ets | 22 +++++-- .../src/main/ets/pages/sample3/Sample3.ets | 31 +++++++-- .../src/main/ets/pages/sample4/Sample4.ets | 16 ++++- .../src/main/ets/pages/sample5/Sample5.ets | 26 +++++--- .../entry/src/main/ets/pages/test.ets | 6 +- 19 files changed, 337 insertions(+), 83 deletions(-) diff --git a/ComponentEncapsulation/entry/src/main/ets/entryability/EntryAbility.ets b/ComponentEncapsulation/entry/src/main/ets/entryability/EntryAbility.ets index 2dae1b50..89f547e6 100644 --- a/ComponentEncapsulation/entry/src/main/ets/entryability/EntryAbility.ets +++ b/ComponentEncapsulation/entry/src/main/ets/entryability/EntryAbility.ets @@ -13,6 +13,7 @@ * limitations under the License. */ import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; @@ -20,7 +21,12 @@ const DOMAIN = 0x0000; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { - this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + try { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); } diff --git a/ComponentEncapsulation/entry/src/main/ets/pages/Index.ets b/ComponentEncapsulation/entry/src/main/ets/pages/Index.ets index 550bf16f..9730d0f2 100644 --- a/ComponentEncapsulation/entry/src/main/ets/pages/Index.ets +++ b/ComponentEncapsulation/entry/src/main/ets/pages/Index.ets @@ -1,3 +1,5 @@ +import { hilog } from '@kit.PerformanceAnalysisKit'; + /* * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -12,6 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +import { BusinessError } from '@kit.BasicServicesKit'; + @Entry @Component struct Index { @@ -21,26 +26,56 @@ struct Index { .width(120).margin({ top: 16 }) .onClick(() => { this.getUIContext().getRouter().pushUrl({ url: 'pages/BuilderParamPage' }) + .then(() => { + hilog.info(0x000, 'testTag', 'pushUrl success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `pushUrl failed, code=${err.code}, message=${err.message}`); + }) }) Button('ControllerCallPage') .width(120).margin({ top: 16 }) .onClick(() => { this.getUIContext().getRouter().pushUrl({ url: 'pages/ControllerCallPage' }) + .then(() => { + hilog.info(0x000, 'testTag', 'pushUrl success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `pushUrl failed, code=${err.code}, message=${err.message}`); + }) }) Button('EmitterCallPage') .width(120).margin({ top: 16 }) .onClick(() => { this.getUIContext().getRouter().pushUrl({ url: 'pages/EmitterCallPage' }) + .then(() => { + hilog.info(0x000, 'testTag', 'pushUrl success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `pushUrl failed, code=${err.code}, message=${err.message}`); + }) }) Button('ParentCallPage') .width(120).margin({ top: 16 }) .onClick(() => { this.getUIContext().getRouter().pushUrl({ url: 'pages/ParentCallPage' }) + .then(() => { + hilog.info(0x000, 'testTag', 'pushUrl success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `pushUrl failed, code=${err.code}, message=${err.message}`); + }) }) Button('WatchCallPage') .width(120).margin({ top: 16 }) .onClick(() => { this.getUIContext().getRouter().pushUrl({ url: 'pages/WatchCallPage' }) + .then(() => { + hilog.info(0x000, 'testTag', 'pushUrl success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `pushUrl failed, code=${err.code}, message=${err.message}`); + }) }) } .height('100%') diff --git a/ComponentEncapsulation/entry/src/main/ets/pages/ParentCallPage.ets b/ComponentEncapsulation/entry/src/main/ets/pages/ParentCallPage.ets index c906ba05..2f5cc59d 100644 --- a/ComponentEncapsulation/entry/src/main/ets/pages/ParentCallPage.ets +++ b/ComponentEncapsulation/entry/src/main/ets/pages/ParentCallPage.ets @@ -13,6 +13,9 @@ * limitations under the License. */ // [Start parent_call] +import { BusinessError } from '@kit.BasicServicesKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; + @Component export struct ChildComponent { call = () => { @@ -32,7 +35,12 @@ export struct ChildComponent { @Component struct Index { parentAction() { - this.getUIContext().getPromptAction().showToast({ message: 'Parent Action' }) + try { + this.getUIContext().getPromptAction().showToast({ message: 'Parent Action' }); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `showToast failed, code=${err.code}, message=${err.message}`); + } } build() { diff --git a/CustomTitleBarWindowDrag/entry/src/main/ets/entryability/EntryAbility.ets b/CustomTitleBarWindowDrag/entry/src/main/ets/entryability/EntryAbility.ets index 77569cfe..1d430507 100644 --- a/CustomTitleBarWindowDrag/entry/src/main/ets/entryability/EntryAbility.ets +++ b/CustomTitleBarWindowDrag/entry/src/main/ets/entryability/EntryAbility.ets @@ -22,7 +22,12 @@ const DOMAIN = 0x0000; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { - this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + try { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); } @@ -42,8 +47,8 @@ export default class EntryAbility extends UIAbility { hilog.info(DOMAIN, 'testTag', 'Succeeded in loading the content.'); }); - try { - windowStage.getMainWindow().then((mainWindow: window.Window) => { + windowStage.getMainWindow() + .then((mainWindow: window.Window) => { try { mainWindow.resize(500, 400).then(() => { console.info('Succeeded in changing the window size.'); @@ -54,11 +59,11 @@ export default class EntryAbility extends UIAbility { console.error(`Failed to change the window size. Cause code: ${exception.code}, message: ${exception.message}`); } AppStorage.setOrCreate('mainWindow', mainWindow); - }); - } catch (exception) { - hilog.error(DOMAIN, 'testTag', 'Failed to set window system bar properties, Cause: %{public}s', - JSON.stringify(exception) ?? ''); - } + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `getMainWindow failed, code=${err.code}, message=${err.message}`); + }) + // cache the window manager into AppStorage AppStorage.setOrCreate('window', windowStage); } diff --git a/DealStrideSolution/entry/src/main/ets/entryability/EntryAbility.ets b/DealStrideSolution/entry/src/main/ets/entryability/EntryAbility.ets index dd56c05a..e27cc9f8 100644 --- a/DealStrideSolution/entry/src/main/ets/entryability/EntryAbility.ets +++ b/DealStrideSolution/entry/src/main/ets/entryability/EntryAbility.ets @@ -33,16 +33,26 @@ export default class EntryAbility extends UIAbility { onWindowStageCreate(windowStage: window.WindowStage): void { // Main window is created, set main page for this ability Logger.info(TAG, 'Ability onWindowStageCreate'); - windowStage.getMainWindow().then((win: window.Window): void => { - win.setWindowLayoutFullScreen(true).then((): void => { - }); - win.setWindowSystemBarProperties({ - // Navigation bar color - navigationBarColor: '#F1F3F5', - // Status bar color - statusBarColor: '#F1F3F5' + windowStage.getMainWindow() + .then((win: window.Window): void => { + win.setWindowLayoutFullScreen(true).then((): void => { + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `setWindowLayoutFullScreen failed, code=${err.code}, message=${err.message}`); + }) + win.setWindowSystemBarProperties({ + // Navigation bar color + navigationBarColor: '#F1F3F5', + // Status bar color + statusBarColor: '#F1F3F5' + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `setWindowSystemBarProperties failed, code=${err.code}, message=${err.message}`); + }) + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `getMainWindow failed, code=${err.code}, message=${err.message}`); }) - }); windowStage.loadContent('pages/Index', (err, data) => { if (err.code) { diff --git a/DealStrideSolution/entry/src/main/ets/pages/PageOne.ets b/DealStrideSolution/entry/src/main/ets/pages/PageOne.ets index a2145ff3..c50c265e 100644 --- a/DealStrideSolution/entry/src/main/ets/pages/PageOne.ets +++ b/DealStrideSolution/entry/src/main/ets/pages/PageOne.ets @@ -14,9 +14,10 @@ */ import { image } from '@kit.ImageKit'; +import { BusinessError } from '@kit.BasicServicesKit'; import CameraService from '../utils/CameraServiceOne'; import { CommonConstants } from '../common/CommonConstants'; -import { promptAction } from '@kit.ArkUI'; +import { hilog } from '@kit.PerformanceAnalysisKit'; @Builder export function PageOneBuilder() { @@ -46,7 +47,7 @@ export struct PageOne { } @Builder - navDestinationTitleImg(res:Resource,fun:()=>void) { + navDestinationTitleImg(res: Resource, fun: () => void) { Image(res) .padding(8) .width(40) @@ -76,7 +77,12 @@ export struct PageOne { .layoutWeight(1) this.navDestinationTitleImg($r('app.media.more'), () => { - this.getUIContext().getPromptAction().showToast({ message: $r('app.string.only_show_for_ux') }) + try { + this.getUIContext().getPromptAction().showToast({ message: $r('app.string.only_show_for_ux') }) + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `showToast failed, code=${err.code}, message=${err.message}`); + } }) } .width('100%') @@ -150,7 +156,12 @@ export struct PublishView { right: 18 }) .onClick(() => { - this.getUIContext().getPromptAction().showToast({ message: $r('app.string.only_show_for_ux') }); + try { + this.getUIContext().getPromptAction().showToast({ message: $r('app.string.only_show_for_ux') }); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `showToast failed, code=${err.code}, message=${err.message}`); + } }) } } \ No newline at end of file diff --git a/DealStrideSolution/entry/src/main/ets/pages/PageThree.ets b/DealStrideSolution/entry/src/main/ets/pages/PageThree.ets index 361dfdfb..4a00c647 100644 --- a/DealStrideSolution/entry/src/main/ets/pages/PageThree.ets +++ b/DealStrideSolution/entry/src/main/ets/pages/PageThree.ets @@ -14,9 +14,10 @@ */ import { image } from '@kit.ImageKit'; +import { BusinessError } from '@kit.BasicServicesKit'; import CameraService from '../utils/CameraServiceThree'; import { CommonConstants } from '../common/CommonConstants'; -import { promptAction } from '@kit.ArkUI'; +import { hilog } from '@kit.PerformanceAnalysisKit'; @Builder export function PageThreeBuilder() { @@ -78,7 +79,12 @@ export struct PageThree { .layoutWeight(1) this.navDestinationTitleImg($r('app.media.more'), () => { - this.getUIContext().getPromptAction().showToast({ message: $r('app.string.only_show_for_ux') }) + try { + this.getUIContext().getPromptAction().showToast({ message: $r('app.string.only_show_for_ux') }) + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `showToast failed, code=${err.code}, message=${err.message}`); + } }) } .width('100%') @@ -158,7 +164,12 @@ export struct PublishView { right: 18 }) .onClick(() => { - this.getUIContext().getPromptAction().showToast({ message: $r('app.string.only_show_for_ux') }); + try { + this.getUIContext().getPromptAction().showToast({ message: $r('app.string.only_show_for_ux') }); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `showToast failed, code=${err.code}, message=${err.message}`); + } }) } } \ No newline at end of file diff --git a/DealStrideSolution/entry/src/main/ets/pages/PageTwo.ets b/DealStrideSolution/entry/src/main/ets/pages/PageTwo.ets index 93c0fad3..c4ced48b 100644 --- a/DealStrideSolution/entry/src/main/ets/pages/PageTwo.ets +++ b/DealStrideSolution/entry/src/main/ets/pages/PageTwo.ets @@ -14,9 +14,10 @@ */ import { image } from '@kit.ImageKit'; +import { BusinessError } from '@kit.BasicServicesKit'; import CameraService from '../utils/CameraServiceTwo'; import { CommonConstants } from '../common/CommonConstants'; -import { promptAction } from '@kit.ArkUI'; +import { hilog } from '@kit.PerformanceAnalysisKit'; @Builder export function PageTwoBuilder() { @@ -76,7 +77,12 @@ export struct PageTwo { .layoutWeight(1) this.navDestinationTitleImg($r('app.media.more'), () => { - this.getUIContext().getPromptAction().showToast({ message: $r('app.string.only_show_for_ux') }) + try { + this.getUIContext().getPromptAction().showToast({ message: $r('app.string.only_show_for_ux') }) + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `showToast failed, code=${err.code}, message=${err.message}`); + } }) } .width('100%') @@ -150,7 +156,13 @@ export struct PublishView { right: 18 }) .onClick(() => { - this.getUIContext().getPromptAction().showToast({ message: $r('app.string.only_show_for_ux') }); + try { + this.getUIContext().getPromptAction().showToast({ message: $r('app.string.only_show_for_ux') }); + + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `showToast failed, code=${err.code}, message=${err.message}`); + } }) } } \ No newline at end of file diff --git a/DealStrideSolution/entry/src/main/ets/utils/CameraServiceOne.ets b/DealStrideSolution/entry/src/main/ets/utils/CameraServiceOne.ets index 31a240f9..69bf1df1 100644 --- a/DealStrideSolution/entry/src/main/ets/utils/CameraServiceOne.ets +++ b/DealStrideSolution/entry/src/main/ets/utils/CameraServiceOne.ets @@ -20,6 +20,7 @@ import { image } from '@kit.ImageKit'; import { JSON } from '@kit.ArkTS'; import { photoAccessHelper } from '@kit.MediaLibraryKit'; import Logger from './Logger'; +import { hilog } from '@kit.PerformanceAnalysisKit'; const TAG: string = 'CameraService'; @@ -29,7 +30,8 @@ class CameraService { private cameraInput: camera.CameraInput | undefined = undefined; private previewOutput: camera.PreviewOutput | undefined = undefined; private session: camera.PhotoSession | camera.VideoSession | undefined = undefined; - handlePhotoAssetCb: (photoAsset: photoAccessHelper.PhotoAsset) => void = () => {}; + handlePhotoAssetCb: (photoAsset: photoAccessHelper.PhotoAsset) => void = () => { + }; private curCameraDevice: camera.CameraDevice | undefined = undefined; private receiver: image.ImageReceiver | undefined = undefined; frameStartFlag: number = 0; @@ -42,6 +44,7 @@ class CameraService { } }; surfaceId: string = ''; + // [Start Case1_start] onImageArrival(receiver: image.ImageReceiver): void { // [StartExclude Case1_start] @@ -70,7 +73,8 @@ class CameraService { // Positive example: Case 2.When width and stride are not equal, // At this time, the camera returned preview stream data component.byteBuffer to remove stride, // copy the new dstArr data, data processing to other do not support stride interface processing. - const dstBufferSize = width * height * 1.5; // Create a dstBufferSize space of width * height * 1.5. This is NV21 data format. + const dstBufferSize = width * height * + 1.5; // Create a dstBufferSize space of width * height * 1.5. This is NV21 data format. const dstArr = new Uint8Array(dstBufferSize); // Store the buffer after the stride is removed. // For each line of data read, the camera supports an even width and height profile, which does not involve rounding. for (let j = 0; j < height * 1.5; j++) { // Loop each row of dstArr data. @@ -94,6 +98,7 @@ class CameraService { }); }) } + // [End Case1_start] getPreviewProfile(cameraOutputCapability: camera.CameraOutputCapability): camera.Profile | undefined { @@ -118,7 +123,7 @@ class CameraService { * @param cameraDeviceIndex - Camera equipment index * @returns No return value */ - async initCamera(cameraDeviceIndex: number, uiContext:UIContext): Promise { + async initCamera(cameraDeviceIndex: number, uiContext: UIContext): Promise { Logger.debug(TAG, `initCamera cameraDeviceIndex: ${cameraDeviceIndex}`); try { await this.releaseCamera(); @@ -179,8 +184,13 @@ class CameraService { getPreviewRotation() { let previewRotation: camera.ImageRotation | undefined = camera.ImageRotation.ROTATION_0; - previewRotation = this.previewOutput?.getPreviewRotation(previewRotation); - AppStorage.set('previewRotation', previewRotation); + try { + previewRotation = this.previewOutput?.getPreviewRotation(previewRotation); + AppStorage.set('previewRotation', previewRotation); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } } /** @@ -220,7 +230,7 @@ class CameraService { /** * Get the Camera Manager instance */ - getCameraManagerFn(uiContext:UIContext): camera.CameraManager | undefined { + getCameraManagerFn(uiContext: UIContext): camera.CameraManager | undefined { if (this.cameraManager) { return this.cameraManager; } diff --git a/DealStrideSolution/entry/src/main/ets/utils/CameraServiceThree.ets b/DealStrideSolution/entry/src/main/ets/utils/CameraServiceThree.ets index 85035097..939c998e 100644 --- a/DealStrideSolution/entry/src/main/ets/utils/CameraServiceThree.ets +++ b/DealStrideSolution/entry/src/main/ets/utils/CameraServiceThree.ets @@ -20,6 +20,7 @@ import { image } from '@kit.ImageKit'; import { JSON } from '@kit.ArkTS'; import { photoAccessHelper } from '@kit.MediaLibraryKit'; import Logger from './Logger'; +import { hilog } from '@kit.PerformanceAnalysisKit'; const TAG: string = 'CameraService'; @@ -155,8 +156,13 @@ class CameraService { getPreviewRotation() { let previewRotation: camera.ImageRotation | undefined = camera.ImageRotation.ROTATION_0; - previewRotation = this.previewOutput?.getPreviewRotation(previewRotation); - AppStorage.set('previewRotation', previewRotation) + try { + previewRotation = this.previewOutput?.getPreviewRotation(previewRotation); + AppStorage.set('previewRotation', previewRotation); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } } /** diff --git a/DealStrideSolution/entry/src/main/ets/utils/CameraServiceTwo.ets b/DealStrideSolution/entry/src/main/ets/utils/CameraServiceTwo.ets index 36a1fe34..13434fa1 100644 --- a/DealStrideSolution/entry/src/main/ets/utils/CameraServiceTwo.ets +++ b/DealStrideSolution/entry/src/main/ets/utils/CameraServiceTwo.ets @@ -20,6 +20,7 @@ import { image } from '@kit.ImageKit'; import { JSON } from '@kit.ArkTS'; import { photoAccessHelper } from '@kit.MediaLibraryKit'; import Logger from './Logger'; +import { hilog } from '@kit.PerformanceAnalysisKit'; const TAG: string = 'CameraService'; @@ -29,7 +30,8 @@ class CameraService { private cameraInput: camera.CameraInput | undefined = undefined; private previewOutput: camera.PreviewOutput | undefined = undefined; private session: camera.PhotoSession | camera.VideoSession | undefined = undefined; - handlePhotoAssetCb: (photoAsset: photoAccessHelper.PhotoAsset) => void = () => {}; + handlePhotoAssetCb: (photoAsset: photoAccessHelper.PhotoAsset) => void = () => { + }; private curCameraDevice: camera.CameraDevice | undefined = undefined; private receiver: image.ImageReceiver | undefined = undefined; frameStartFlag: number = 0; @@ -42,6 +44,7 @@ class CameraService { } }; surfaceId: string = ''; + // [Start Case2_start] onImageArrival(receiver: image.ImageReceiver): void { receiver.on('imageArrival', () => { @@ -72,14 +75,19 @@ class CameraService { srcPixelFormat: 8, }) // 2. then call the cropSync method of PixelMap to crop out the excess pixels. - pixelMap.cropSync({ - size: { width: width, height: height }, - x: 0, - y: 0 - }) // Crop the image according to the size entered, starting with (0,0), crop the area of width*height bytes. - let pixelBefore: PixelMap | undefined = AppStorage.get('stridePixel'); - await pixelBefore?.release(); - AppStorage.setOrCreate('stridePixel', pixelMap); + try { + pixelMap.cropSync({ + size: { width: width, height: height }, + x: 0, + y: 0 + }) // Crop the image according to the size entered, starting with (0,0), crop the area of width*height bytes. + let pixelBefore: PixelMap | undefined = AppStorage.get('stridePixel'); + await pixelBefore?.release(); + AppStorage.setOrCreate('stridePixel', pixelMap); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } } nextImage.release(); }) @@ -87,6 +95,7 @@ class CameraService { }); }) } + // [End Case2_start] getPreviewProfile(cameraOutputCapability: camera.CameraOutputCapability): camera.Profile | undefined { @@ -111,7 +120,7 @@ class CameraService { * @param cameraDeviceIndex - Camera equipment index * @returns No return value */ - async initCamera(cameraDeviceIndex: number, uiContext:UIContext): Promise { + async initCamera(cameraDeviceIndex: number, uiContext: UIContext): Promise { Logger.debug(TAG, `initCamera cameraDeviceIndex: ${cameraDeviceIndex}`); try { await this.releaseCamera(); @@ -172,8 +181,13 @@ class CameraService { getPreviewRotation() { let previewRotation: camera.ImageRotation | undefined = camera.ImageRotation.ROTATION_0; - previewRotation = this.previewOutput?.getPreviewRotation(previewRotation); - AppStorage.set('previewRotation', previewRotation) + try { + previewRotation = this.previewOutput?.getPreviewRotation(previewRotation); + AppStorage.set('previewRotation', previewRotation); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } } /** @@ -213,7 +227,7 @@ class CameraService { /** * Get the Camera Manager instance */ - getCameraManagerFn(uiContext:UIContext): camera.CameraManager | undefined { + getCameraManagerFn(uiContext: UIContext): camera.CameraManager | undefined { if (this.cameraManager) { return this.cameraManager; } diff --git a/ExpandSafeArea/entry/src/main/ets/entryability/EntryAbility.ets b/ExpandSafeArea/entry/src/main/ets/entryability/EntryAbility.ets index d3ee54d2..6e8ddad7 100644 --- a/ExpandSafeArea/entry/src/main/ets/entryability/EntryAbility.ets +++ b/ExpandSafeArea/entry/src/main/ets/entryability/EntryAbility.ets @@ -14,6 +14,7 @@ */ import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; @@ -21,7 +22,12 @@ const DOMAIN = 0x0000; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { - this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + try { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `setColorMode failed, code=${err.code}, message=${err.message}`); + } hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); } diff --git a/TaskPoolPractice/entry/src/main/ets/pages/Index.ets b/TaskPoolPractice/entry/src/main/ets/pages/Index.ets index ee9df1ab..42aa01fe 100644 --- a/TaskPoolPractice/entry/src/main/ets/pages/Index.ets +++ b/TaskPoolPractice/entry/src/main/ets/pages/Index.ets @@ -12,7 +12,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { router } from '@kit.ArkUI'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { BusinessError } from '@kit.BasicServicesKit'; @Entry @Component @@ -28,42 +29,90 @@ struct Index { .height(40) .width('100%') .onClick(() => { - this.getUIContext().getRouter().pushUrl({url: "pages/sample1/Sample1"}) + this.getUIContext() + .getRouter() + .pushUrl({ url: "pages/sample1/Sample1" }) + .then(() => { + hilog.info(0x000, 'testTag', 'pushUrl success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `pushUrl failed, code=${err.code}, message=${err.message}`); + }) }) Button('Sample2') .height(40) .width('100%') .onClick(() => { - this.getUIContext().getRouter().pushUrl({url: "pages/sample2/Sample2"}) + this.getUIContext() + .getRouter() + .pushUrl({ url: "pages/sample2/Sample2" }) + .then(() => { + hilog.info(0x000, 'testTag', 'pushUrl success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `pushUrl failed, code=${err.code}, message=${err.message}`); + }) }) Button('Sample3') .height(40) .width('100%') .onClick(() => { - this.getUIContext().getRouter().pushUrl({url: "pages/sample3/Sample3"}) + this.getUIContext() + .getRouter() + .pushUrl({ url: "pages/sample3/Sample3" }) + .then(() => { + hilog.info(0x000, 'testTag', 'pushUrl success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `pushUrl failed, code=${err.code}, message=${err.message}`); + }) }) Button('Sample4') .height(40) .width('100%') .onClick(() => { - this.getUIContext().getRouter().pushUrl({url: "pages/sample4/Sample4"}) + this.getUIContext() + .getRouter() + .pushUrl({ url: "pages/sample4/Sample4" }) + .then(() => { + hilog.info(0x000, 'testTag', 'pushUrl success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `pushUrl failed, code=${err.code}, message=${err.message}`); + }) }) Button('Sample5') .height(40) .width('100%') .onClick(() => { - this.getUIContext().getRouter().pushUrl({url: "pages/sample5/Sample5"}) + this.getUIContext() + .getRouter() + .pushUrl({ url: "pages/sample5/Sample5" }) + .then(() => { + hilog.info(0x000, 'testTag', 'pushUrl success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `pushUrl failed, code=${err.code}, message=${err.message}`); + }) }) Button('Sample6') .height(40) .width('100%') .onClick(() => { - this.getUIContext().getRouter().pushUrl({url: "pages/sample6/Sample6"}) + this.getUIContext() + .getRouter() + .pushUrl({ url: "pages/sample6/Sample6" }) + .then(() => { + hilog.info(0x000, 'testTag', 'pushUrl success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `pushUrl failed, code=${err.code}, message=${err.message}`); + }) }) } .height('100%') diff --git a/TaskPoolPractice/entry/src/main/ets/pages/sample1/Sample1.ets b/TaskPoolPractice/entry/src/main/ets/pages/sample1/Sample1.ets index 423e3d3c..adc915fe 100644 --- a/TaskPoolPractice/entry/src/main/ets/pages/sample1/Sample1.ets +++ b/TaskPoolPractice/entry/src/main/ets/pages/sample1/Sample1.ets @@ -1,4 +1,3 @@ - // [Start bar] // Sample1.ets import { Bar } from './wrong/a'; @@ -6,6 +5,7 @@ import { BusinessError } from '@ohos.base'; import { taskpool } from '@kit.ArkTS'; import { Foo } from './correct/b'; import { hilog } from '@kit.PerformanceAnalysisKit'; + // [End bar] // [Start wrong] @@ -19,6 +19,7 @@ function wrongConcurrentFunc() { hilog.error(0xFF00, 'sampleTag', 'error occur: ' + error.message); } } + // [End wrong] // [Start sample_fun] @@ -27,6 +28,7 @@ function wrongConcurrentFunc() { function correctConcurrentFunc() { let foo: Foo = new Foo; } + // [End sample_fun] @Entry @@ -44,7 +46,13 @@ struct Sample1 { .onClick(() => { // [Start task_pool] // Sample1.ets - taskpool.execute(wrongConcurrentFunc); + taskpool.execute(wrongConcurrentFunc) + .then(() => { + hilog.info(0x000, 'testTag', 'execute success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `execute failed, code=${err.code}, message=${err.message}`); + }) // [End task_pool] }) @@ -54,7 +62,13 @@ struct Sample1 { .onClick(() => { // [Start correct_fun] // Sample1.ets - taskpool.execute(correctConcurrentFunc); + taskpool.execute(correctConcurrentFunc) + .then(() => { + hilog.info(0x000, 'testTag', 'execute success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `execute failed, code=${err.code}, message=${err.message}`); + }) // [End correct_fun] }) } diff --git a/TaskPoolPractice/entry/src/main/ets/pages/sample2/Sample2.ets b/TaskPoolPractice/entry/src/main/ets/pages/sample2/Sample2.ets index 4d30e0f4..f28ef6d5 100644 --- a/TaskPoolPractice/entry/src/main/ets/pages/sample2/Sample2.ets +++ b/TaskPoolPractice/entry/src/main/ets/pages/sample2/Sample2.ets @@ -3,6 +3,7 @@ import { http } from '@kit.NetworkKit'; import { taskpool } from '@kit.ArkTS'; import { hilog } from '@kit.PerformanceAnalysisKit'; +import { BusinessError } from '@kit.BasicServicesKit'; @Concurrent function concurrentFunc() { @@ -15,6 +16,7 @@ function concurrentFunc() { hilog.info(0xFF00, 'sampleTag', 'No more data in response, data receive end'); }); } + // [End con_1] @Entry @@ -32,7 +34,13 @@ struct Sample2 { .onClick(() => { // [Start con_2] // Sample2.ets - taskpool.execute(concurrentFunc); + taskpool.execute(concurrentFunc) + .then(() => { + hilog.info(0x000, 'testTag', 'execute success'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `execute failed, code=${err.code}, message=${err.message}`); + }) // [End con_2] }) @@ -43,10 +51,14 @@ struct Sample2 { // [Start task_1] // Sample2.ets let task: taskpool.LongTask = new taskpool.LongTask(concurrentFunc); - taskpool.execute(task).then(() => { - hilog.info(0xFF00, 'sampleTag', 'receive http msg success.'); - taskpool.terminateTask(task); - }) + taskpool.execute(task) + .then(() => { + hilog.info(0xFF00, 'sampleTag', 'receive http msg success.'); + taskpool.terminateTask(task); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `execute failed, code=${err.code}, message=${err.message}`); + }) // [End task_1] }) } diff --git a/TaskPoolPractice/entry/src/main/ets/pages/sample3/Sample3.ets b/TaskPoolPractice/entry/src/main/ets/pages/sample3/Sample3.ets index 8e057f99..205bb6eb 100644 --- a/TaskPoolPractice/entry/src/main/ets/pages/sample3/Sample3.ets +++ b/TaskPoolPractice/entry/src/main/ets/pages/sample3/Sample3.ets @@ -1,5 +1,5 @@ import { taskpool } from '@kit.ArkTS'; -import { emitter } from '@kit.BasicServicesKit'; +import { BusinessError, emitter } from '@kit.BasicServicesKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; // [Start wrong_1] @@ -8,9 +8,15 @@ import { hilog } from '@kit.PerformanceAnalysisKit'; function wrongConcurrentFunc() { let promise = Promise.resolve(); promise.then(() => { - taskpool.Task.sendData(); + try { + taskpool.Task.sendData(); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `sendData failed, code=${err.code}, message=${err.message}`); + } }) } + // [End wrong_1] // [Start correct_fun_1] @@ -19,9 +25,10 @@ function wrongConcurrentFunc() { function correctConcurrentFunc() { let promise = Promise.resolve(); promise.then(() => { - emitter.emit("1", {data: {name: "anonymous"}}); + emitter.emit("1", { data: { name: "anonymous" } }); }) } + // [End correct_fun_1] @Entry @@ -43,7 +50,14 @@ struct Sample3 { task.onReceiveData(() => { hilog.info(0xFF00, 'sampleTag', "onReceiveData has been called"); }) - taskpool.execute(task); + taskpool.execute(task) + .then(() => { + hilog.info(0xFF00, 'sampleTag', 'receive http msg success.'); + taskpool.terminateTask(task); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `execute failed, code=${err.code}, message=${err.message}`); + }) // [End task_pool_1] }) @@ -59,7 +73,14 @@ struct Sample3 { emitter.off("1") taskpool.terminateTask(task) }) - taskpool.execute(task); + taskpool.execute(task) + .then(() => { + hilog.info(0xFF00, 'sampleTag', 'receive http msg success.'); + taskpool.terminateTask(task); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `execute failed, code=${err.code}, message=${err.message}`); + }) // [End task_7] }) } diff --git a/TaskPoolPractice/entry/src/main/ets/pages/sample4/Sample4.ets b/TaskPoolPractice/entry/src/main/ets/pages/sample4/Sample4.ets index 3afb2843..6a3b97e4 100644 --- a/TaskPoolPractice/entry/src/main/ets/pages/sample4/Sample4.ets +++ b/TaskPoolPractice/entry/src/main/ets/pages/sample4/Sample4.ets @@ -59,7 +59,13 @@ struct Sample4 { // [Start sample_5] // Sample4.ets let task: taskpool.Task = new taskpool.Task(correctConcurrentFunc); - taskpool.execute(task); + taskpool.execute(task) + .then(() => { + hilog.info(0xFF00, 'sampleTag', 'receive http msg success.'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `execute failed, code=${err.code}, message=${err.message}`); + }) // [End sample_5] }) @@ -71,7 +77,13 @@ struct Sample4 { // Sample4.ets try { let foo = new Foo(); - taskpool.execute(correctConcurrentFunc1, foo); + taskpool.execute(correctConcurrentFunc1, foo) + .then(() => { + hilog.info(0xFF00, 'sampleTag', 'receive http msg success.'); + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `execute failed, code=${err.code}, message=${err.message}`); + }) } catch (e) { let error: ErrorEvent = e; hilog.error(0xFF00, 'sampleTag', "error info: " + error.message); diff --git a/TaskPoolPractice/entry/src/main/ets/pages/sample5/Sample5.ets b/TaskPoolPractice/entry/src/main/ets/pages/sample5/Sample5.ets index 624635f8..3bf1642f 100644 --- a/TaskPoolPractice/entry/src/main/ets/pages/sample5/Sample5.ets +++ b/TaskPoolPractice/entry/src/main/ets/pages/sample5/Sample5.ets @@ -1,7 +1,8 @@ - // [Start pool_1] // Sample5.ets import { taskpool } from '@kit.ArkTS'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; @Concurrent function imageProcessing(dataSlice: ArrayBuffer): ArrayBuffer { @@ -17,14 +18,25 @@ function histogramStatistic(pixelBuffer: ArrayBuffer): void { let buffer3: ArrayBuffer = pixelBuffer.slice(number * 2); let group: taskpool.TaskGroup = new taskpool.TaskGroup(); - group.addTask(imageProcessing, buffer1); - group.addTask(imageProcessing, buffer2); - group.addTask(imageProcessing, buffer3); + try { + group.addTask(imageProcessing, buffer1); + group.addTask(imageProcessing, buffer2); + group.addTask(imageProcessing, buffer3); + } catch (error) { + let err = error as BusinessError; + hilog.warn(0x000, 'testTag', `addTask failed, code=${err.code}, message=${err.message}`); + } + + taskpool.execute(group, taskpool.Priority.HIGH) + .then((ret: Object) => { + // Step 3: Summarize the result array. + }) + .catch((err: BusinessError) => { + hilog.error(0x000, 'testTag', `execute failed, code=${err.code}, message=${err.message}`); + }) - taskpool.execute(group, taskpool.Priority.HIGH).then((ret: Object) => { - // Step 3: Summarize the result array. - }) } + // [End pool_1] @Entry diff --git a/TaskPoolPractice/entry/src/main/ets/pages/test.ets b/TaskPoolPractice/entry/src/main/ets/pages/test.ets index 8a9181f5..87ca9057 100644 --- a/TaskPoolPractice/entry/src/main/ets/pages/test.ets +++ b/TaskPoolPractice/entry/src/main/ets/pages/test.ets @@ -1,7 +1,7 @@ // [Start abc] -import { a } from './a' -import { b } from './b' -import { c } from './c' +import { a } from './a'; +import { b } from './b'; +import { c } from './c'; // [End abc] import { hilog } from '@kit.PerformanceAnalysisKit'; // [Start err] -- Gitee