From 8999f3be9303a70f8b65b616a58969f4b270eef3 Mon Sep 17 00:00:00 2001 From: RayShih Date: Wed, 2 Aug 2023 20:50:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5RN=E9=99=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: RayShih --- zh-cn/release-notes/OpenHarmony-v4.0-beta2.md | 447 ++++++ .../api-diff/v4.0-beta2/Readme-CN.md | 34 + .../api-diff/v4.0-beta2/js-apidiff-ability.md | 746 ++++++++++ .../api-diff/v4.0-beta2/js-apidiff-account.md | 17 + .../api-diff/v4.0-beta2/js-apidiff-ai.md | 52 + .../v4.0-beta2/js-apidiff-application.md | 19 + .../api-diff/v4.0-beta2/js-apidiff-arkui.md | 833 +++++++++++ .../api-diff/v4.0-beta2/js-apidiff-battery.md | 15 + .../api-diff/v4.0-beta2/js-apidiff-bundle.md | 38 + .../v4.0-beta2/js-apidiff-communication.md | 605 ++++++++ .../js-apidiff-compiler-and-runtime.md | 51 + .../v4.0-beta2/js-apidiff-customization.md | 64 + .../api-diff/v4.0-beta2/js-apidiff-dfx.md | 54 + .../v4.0-beta2/js-apidiff-distributed-data.md | 123 ++ .../js-apidiff-distributed-hardware.md | 158 +++ .../v4.0-beta2/js-apidiff-download-upload.md | 111 ++ .../api-diff/v4.0-beta2/js-apidiff-driver.md | 20 + .../v4.0-beta2/js-apidiff-file-management.md | 448 ++++++ .../v4.0-beta2/js-apidiff-geolocation.md | 22 + .../api-diff/v4.0-beta2/js-apidiff-global.md | 34 + .../api-diff/v4.0-beta2/js-apidiff-misc.md | 61 + .../api-diff/v4.0-beta2/js-apidiff-msdp.md | 15 + .../js-apidiff-multi-modal-input.md | 90 ++ .../v4.0-beta2/js-apidiff-multimedia.md | 410 ++++++ .../v4.0-beta2/js-apidiff-notification.md | 250 ++++ .../js-apidiff-resource-scheduler.md | 9 + .../v4.0-beta2/js-apidiff-security.md | 131 ++ .../api-diff/v4.0-beta2/js-apidiff-sensor.md | 30 + .../v4.0-beta2/js-apidiff-start-up.md | 34 + .../v4.0-beta2/js-apidiff-telephony.md | 1254 +++++++++++++++++ .../api-diff/v4.0-beta2/js-apidiff-unitest.md | 12 + .../api-diff/v4.0-beta2/js-apidiff-usb.md | 3 + .../api-diff/v4.0-beta2/js-apidiff-web.md | 19 + .../api-diff/v4.0-beta2/js-apidiff-window.md | 64 + .../changelog-LocalStorage.md | 116 -- .../changelog-security.md | 475 ------- .../changelogs-ability.md | 140 -- .../changelogs-container.md | 23 - .../changelogs-distributeddatamgr.md | 160 --- .../changelogs-multimedia.md | 53 - .../changelogs-notification.md | 48 - .../OpenHarmony_3.2.10.1/changelogs-time.md | 336 ----- .../OpenHarmony_3.2.10.1/changelogs-url.md | 70 - .../changelog-bundlemanager.md | 60 - .../OpenHarmony_3.2.10.12/changelog-imf.md | 21 - .../changelog-screenlock.md | 155 -- .../changelog-wallpaper.md | 304 ---- .../changelogs-bundlemanager.md | 34 - .../changelogs-account_os_account.md | 96 -- .../changelogs-bundlemanager.md | 17 - .../changelogs-camera-sync.md | 522 ------- .../OpenHarmony_3.2.10.3/changelogs-nfc.md | 61 - .../changelog-resourceschedule.md | 111 -- .../OpenHarmony_3.2.10.5/changelogs-arkui.md | 215 --- .../changelogs-bundlemanager.md | 94 -- .../changelogs-filemanagement.md | 189 --- .../changelogs-inputmethod-framworks.md | 30 - .../changelogs-ohos-geoLocationManager.md | 107 -- .../changelogs-ohos-geolocation.md | 92 -- .../changelogs-system-geolocation.md | 50 - .../changelogs-useriam.md | 17 - .../OpenHarmony_3.2.10.5/changelogs-window.md | 63 - .../changelogs-ability.md | 36 - .../changelogs-mediaLibrary.md | 272 ---- .../changelogs-request.md | 42 - .../changelogs-telephony.md | 59 - .../changelog-resourceschedule.md | 21 - .../changelog-telephony.md | 223 --- .../OpenHarmony_3.2.10.7/changelog-web.md | 528 ------- .../changelogs-ability.md | 291 ---- .../OpenHarmony_3.2.10.7/changelogs-arkui.md | 306 ---- .../changelogs-bundlemanager.md | 245 ---- .../OpenHarmony_3.2.10.7/changelogs-util.md | 99 -- .../OpenHarmony_3.2.12.2/changelog-ability.md | 35 - .../changelog-notification.md | 22 - .../changelog-bundlemanager.md | 686 --------- .../changelogs-account_os_account.md | 124 -- .../OpenHarmony_3.2.9.1/changelog-dmsfwk.md | 21 - .../OpenHarmony_3.2.9.2/changelog-x-x.md | 31 - .../OpenHarmony_3.2.9.3/changelog-x-x.md | 31 - .../OpenHarmony_3.2.9.3/changelogs-useriam.md | 39 - .../changelogs-account_os_account.md | 20 - .../changelogs-geoLocationManager.md | 18 - .../changelogs-wifiManager.md | 62 - .../OpenHarmony_4.0.2.1/changelog-web.md | 65 - .../OpenHarmony_4.0.2.1/changelogs-ability.md | 140 -- .../changelogs-bluetooth.md | 173 --- .../changelogs-distributeddatamgr.md | 48 - .../changelogs-filemanagement.md | 145 -- .../OpenHarmony_4.0.2.1/changelogs-global.md | 41 - .../OpenHarmony_4.0.2.1/changelogs-media.md | 312 ---- .../changelogs-testfwk_arkxtest.md | 42 - .../OpenHarmony_4.0.2.1/changelogs-usb.md | 28 - .../OpenHarmony_4.0.2.2/changelog-web.md | 63 - .../changelogs-bundlemanager.md | 14 - .../OpenHarmony_4.0.2.2/changelogs-global.md | 57 - .../OpenHarmony_4.0.2.3/changelogs-ability.md | 36 - .../OpenHarmony_4.0.2.3/changelogs-ans.md | 21 - .../OpenHarmony_4.0.2.3/changelogs-arkui.md | 328 ----- .../OpenHarmony_4.0.2.3/changelogs-usb.md | 37 - .../changelogs-telephony.md | 130 -- .../changelog-accesstoken.md | 33 - .../OpenHarmony_4.0.3.2/changelog-security.md | 87 -- .../OpenHarmony_4.0.3.2/changelog-softbus.md | 27 - .../OpenHarmony_4.0.3.2/changelog-web.md | 467 ------ .../changelogs-account_os_account.md | 391 ----- .../OpenHarmony_4.0.3.2/changelogs-arkui.md | 85 -- .../changelogs-bundlemanager.md | 27 - .../OpenHarmony_4.0.3.2/changelogs-ces.md | 55 - .../changelogs-filemanagement.md | 23 - .../changelogs-pasteboard.md | 66 - .../OpenHarmony_4.0.3.2/changelogs-power.md | 82 -- .../OpenHarmony_4.0.3.2/changelogs-sensor.md | 49 - .../OpenHarmony_4.0.3.2/changelogs-startup.md | 16 - .../changelogs-bundlemanager.md | 111 -- .../changelog-resourceschedule.md | 32 - .../OpenHarmony_4.0.5.2/changelogs-ability.md | 64 - .../changelogs-miscdevice.md | 95 -- .../OpenHarmony_4.0.5.3/changelog-imf.md | 21 - .../changelog-screenlock.md | 155 -- .../changelog-wallpaper.md | 304 ---- .../OpenHarmony_4.0.5.5/changelogs-arkui.md | 45 - .../OpenHarmony_4.0.6.1/changelog-huks.md | 31 - .../OpenHarmony_4.0.6.1/changelog-web.md | 33 - .../OpenHarmony_4.0.6.1/changelogs-usb.md | 23 - .../OpenHarmony_4.0.6.2/changelogs-global.md | 46 - .../OpenHarmony_4.0.6.3/changelogs-arkui.md | 30 - .../figures/stack_after.jpg | Bin 13672 -> 0 bytes .../figures/stack_before.jpg | Bin 14566 -> 0 bytes .../OpenHarmony_4.0.7.1/changelog-huks.md | 98 -- .../changelog-resourceschedule.md | 75 - .../OpenHarmony_4.0.7.2/changelogs-arkui.md | 60 - .../changelog-arkcompiler.md | 164 --- .../OpenHarmony_4.0.7.3/changelog-web.md | 126 -- .../OpenHarmony_4.0.7.5/changelogs-arkui.md | 26 - .../changelogs-arkcompiler.md | 23 - .../OpenHarmony_4.0.8.1/changelogs-arkui.md | 21 - .../changelogs-distributeddatamgr.md | 57 - .../OpenHarmony_4.0.8.2/changelogs-arkui.md | 213 --- .../changelogs-datashare.md | 39 - .../changelogs-device_manager.md | 110 -- .../changelogs-distributeddatamgr.md | 192 --- .../changelogs-mediaLibrary.md | 147 -- .../changelogs-miscdevice.md | 80 -- .../OpenHarmony_4.0.8.3/changelogs-arkui.md | 9 - .../OpenHarmony_4.0.8.5/changelogs-arkui.md | 83 -- .../figures/api10_and_later.png | Bin 6449 -> 0 bytes .../figures/api10filltext.jpeg | Bin 65703 -> 0 bytes .../OpenHarmony_4.0.8.5/figures/api9.png | Bin 7184 -> 0 bytes .../figures/api9filltext.jpeg | Bin 79905 -> 0 bytes .../changelogs-multimedia.md | 17 - .../changelogs-accessToken.md | 71 - .../changelogs-arkcompiler.md | 23 - .../OpenHarmony_4.0.9.1/changelogs-arkui.md | 132 -- .../changelogs-bundlemanager.md | 111 -- .../changelogs-security.md | 279 ---- ...api10_sdk_arkcompiler_component_change.png | Bin 38376 -> 0 bytes .../OpenHarmony_4.0.9.2/changelogs-arkui.md | 80 -- .../changelogs-distributedDeviceManager.md | 47 - .../changelogs-geoLocationManager.md | 37 - .../OpenHarmony_4.0.9.2/changelogs-imf.md | 37 - .../changelogs-multimedia.md | 330 ----- .../changelogs-screenlock.md | 54 - .../OpenHarmony_4.0.9.2/changlogs-arkui.md | 33 - .../OpenHarmony_4.0.9.3/changelog-@Prop.md | 122 -- .../OpenHarmony_4.0.9.3/changelogs-arkui.md | 229 --- .../changelogs-bundlemanager.md | 13 - .../OpenHarmony_4.0.9.3/changelogs-media.md | 24 - .../changelogs-multimedia.md | 29 - .../figures/api10onReady.gif | Bin 97177 -> 0 bytes .../figures/api9onReady.gif | Bin 104832 -> 0 bytes .../figures/zh-cn_image_0000001588291546.png | Bin 57640 -> 0 bytes .../OpenHarmony_4.0.9.5/changelogs-arkui.md | 73 - .../OpenHarmony_4.0.9.5/changelogs-formfwk.md | 144 -- .../figures/navigation_menu_api10.png | Bin 28490 -> 0 bytes .../figures/navigation_menu_api9.png | Bin 32483 -> 0 bytes .../navigation_title_mode_free_sdk10.png | Bin 20677 -> 0 bytes .../navigation_title_mode_free_sdk9.png | Bin 24949 -> 0 bytes .../changelogs/v3.2-beta4/Readme.md | 29 + .../changelog-x-x.md | 0 .../changelogs-ability.md | 0 .../changelogs-account_os_account.md | 339 +++-- .../changelogs-arkui.md | 4 +- .../changelogs-camera.md | 2 - .../changelogs-device-manager.md | 0 .../changelogs-device-usb.md | 52 +- .../changelogs-dmsfwk.md} | 22 +- .../changelogs-dsoftbus.md | 288 ++-- ...changelogs-enterprise_device_management.md | 2 - .../changelogs-filemanagement.md | 0 .../changelogs-geolocation.md | 0 .../changelogs-global.md | 0 .../changelogs-inputmethod-framworks.md | 0 .../changelogs-multimedia.md | 0 .../changelogs-multimodalinput.md | 0 .../changelogs-notification.md | 0 .../changelogs-power.md | 0 .../changelogs-request.md | 2 - .../changelogs-resource-manager.md | 0 .../changelogs-resourceschedule.md} | 632 ++++----- .../changelogs-telephony.md | 130 +- .../changelogs-testfwk_arkxtest.md | 0 .../changelogs-theme.md | 296 ++-- .../changelogs-useriam.md | 0 .../changelogs-wantAgent.md | 8 +- .../changelogs-web.md} | 2 - .../changelogs-wifi.md} | 0 .../v3.2-beta5/changelogs-filemanagement.md | 12 +- 208 files changed, 7267 insertions(+), 15182 deletions(-) create mode 100644 zh-cn/release-notes/OpenHarmony-v4.0-beta2.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/Readme-CN.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-ability.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-account.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-ai.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-application.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-arkui.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-battery.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-bundle.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-communication.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-compiler-and-runtime.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-customization.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-dfx.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-distributed-data.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-distributed-hardware.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-download-upload.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-driver.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-file-management.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-geolocation.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-global.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-misc.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-msdp.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-multi-modal-input.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-multimedia.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-notification.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-resource-scheduler.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-security.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-sensor.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-start-up.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-telephony.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-unitest.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-usb.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-web.md create mode 100644 zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-window.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelog-LocalStorage.md delete mode 100755 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelog-security.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-ability.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-container.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-distributeddatamgr.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-multimedia.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-notification.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-time.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-url.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.12/changelog-bundlemanager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.12/changelog-imf.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.12/changelog-screenlock.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.12/changelog-wallpaper.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.2/changelogs-bundlemanager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-account_os_account.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-bundlemanager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-camera-sync.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-nfc.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelog-resourceschedule.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-arkui.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-filemanagement.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-inputmethod-framworks.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-ohos-geoLocationManager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-ohos-geolocation.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-system-geolocation.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-useriam.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-window.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.6/changelogs-ability.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.6/changelogs-mediaLibrary.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.6/changelogs-request.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.6/changelogs-telephony.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-resourceschedule.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-telephony.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-web.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelogs-ability.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelogs-arkui.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelogs-bundlemanager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelogs-util.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.12.2/changelog-ability.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.12.2/changelog-notification.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.2/changelog-bundlemanager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-account_os_account.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelog-dmsfwk.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.2/changelog-x-x.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.3/changelog-x-x.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.3/changelogs-useriam.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.1.1/changelogs-account_os_account.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.1.5/changelogs-geoLocationManager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.1.5/changelogs-wifiManager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelog-web.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-ability.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-bluetooth.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-distributeddatamgr.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-filemanagement.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-global.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-media.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-testfwk_arkxtest.md delete mode 100755 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-usb.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.2/changelog-web.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.2/changelogs-bundlemanager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.2/changelogs-global.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.3/changelogs-ability.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.3/changelogs-ans.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.3/changelogs-arkui.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.3/changelogs-usb.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.5/changelogs-telephony.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-accesstoken.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-security.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-softbus.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-web.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-account_os_account.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-arkui.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-bundlemanager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-ces.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-filemanagement.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-pasteboard.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-power.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-sensor.md delete mode 100755 zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-startup.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.3/changelogs-bundlemanager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.1/changelog-resourceschedule.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.2/changelogs-ability.md delete mode 100755 zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.2/changelogs-miscdevice.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.3/changelog-imf.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.3/changelog-screenlock.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.3/changelog-wallpaper.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.5/changelogs-arkui.md delete mode 100755 zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.1/changelog-huks.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.1/changelog-web.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.1/changelogs-usb.md delete mode 100755 zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.2/changelogs-global.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.3/changelogs-arkui.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.3/figures/stack_after.jpg delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.3/figures/stack_before.jpg delete mode 100755 zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.1/changelog-huks.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.1/changelog-resourceschedule.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.2/changelogs-arkui.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.3/changelog-arkcompiler.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.3/changelog-web.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.5/changelogs-arkui.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.1/changelogs-arkcompiler.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.1/changelogs-arkui.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.1/changelogs-distributeddatamgr.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-arkui.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-datashare.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-device_manager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-distributeddatamgr.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-mediaLibrary.md delete mode 100755 zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-miscdevice.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.3/changelogs-arkui.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.5/changelogs-arkui.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.5/figures/api10_and_later.png delete mode 100755 zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.5/figures/api10filltext.jpeg delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.5/figures/api9.png delete mode 100755 zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.5/figures/api9filltext.jpeg delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.6/changelogs-multimedia.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-accessToken.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-arkcompiler.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-arkui.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-bundlemanager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-security.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/figures/api10_sdk_arkcompiler_component_change.png delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-arkui.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-distributedDeviceManager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-geoLocationManager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-imf.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-multimedia.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-screenlock.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changlogs-arkui.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelog-@Prop.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-arkui.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-bundlemanager.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-media.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-multimedia.md delete mode 100755 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/figures/api10onReady.gif delete mode 100755 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/figures/api9onReady.gif delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/figures/zh-cn_image_0000001588291546.png delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.5/changelogs-arkui.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.5/changelogs-formfwk.md delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.5/figures/navigation_menu_api10.png delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.5/figures/navigation_menu_api9.png delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.5/figures/navigation_title_mode_free_sdk10.png delete mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.5/figures/navigation_title_mode_free_sdk9.png create mode 100644 zh-cn/release-notes/changelogs/v3.2-beta4/Readme.md rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.9.1 => v3.2-beta4}/changelog-x-x.md (100%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.3 => v3.2-beta4}/changelogs-ability.md (100%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.1 => v3.2-beta4}/changelogs-account_os_account.md (58%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.9.1 => v3.2-beta4}/changelogs-arkui.md (94%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.1 => v3.2-beta4}/changelogs-camera.md (99%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.1 => v3.2-beta4}/changelogs-device-manager.md (100%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.1 => v3.2-beta4}/changelogs-device-usb.md (96%) mode change 100755 => 100644 rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.3/changelog-dmsfwk.md => v3.2-beta4/changelogs-dmsfwk.md} (81%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.1 => v3.2-beta4}/changelogs-dsoftbus.md (98%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.3 => v3.2-beta4}/changelogs-enterprise_device_management.md (99%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.1 => v3.2-beta4}/changelogs-filemanagement.md (100%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.3 => v3.2-beta4}/changelogs-geolocation.md (100%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.1 => v3.2-beta4}/changelogs-global.md (100%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.1 => v3.2-beta4}/changelogs-inputmethod-framworks.md (100%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.3 => v3.2-beta4}/changelogs-multimedia.md (100%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.1 => v3.2-beta4}/changelogs-multimodalinput.md (100%) mode change 100755 => 100644 rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.3 => v3.2-beta4}/changelogs-notification.md (100%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.1 => v3.2-beta4}/changelogs-power.md (100%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.1 => v3.2-beta4}/changelogs-request.md (99%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.1 => v3.2-beta4}/changelogs-resource-manager.md (100%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.2/changelog-resourceschedule.md => v3.2-beta4/changelogs-resourceschedule.md} (99%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.9.1 => v3.2-beta4}/changelogs-telephony.md (95%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.1 => v3.2-beta4}/changelogs-testfwk_arkxtest.md (100%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.1 => v3.2-beta4}/changelogs-theme.md (97%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.3 => v3.2-beta4}/changelogs-useriam.md (100%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.9.1 => v3.2-beta4}/changelogs-wantAgent.md (90%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.9.1/changelog-web.md => v3.2-beta4/changelogs-web.md} (96%) rename zh-cn/release-notes/changelogs/{OpenHarmony_3.2.8.3/changelog-wifi.md => v3.2-beta4/changelogs-wifi.md} (100%) diff --git a/zh-cn/release-notes/OpenHarmony-v4.0-beta2.md b/zh-cn/release-notes/OpenHarmony-v4.0-beta2.md new file mode 100644 index 0000000000..42ac4bc63c --- /dev/null +++ b/zh-cn/release-notes/OpenHarmony-v4.0-beta2.md @@ -0,0 +1,447 @@ +# OpenHarmony 4.0 Beta2 + +## 版本概述 + +## 特性说明 + + +### 应用框架 + +- 更新ArkTS卡片刷新方式,支持通过数据代理的方式刷新内容。 + +- ArkTS卡片支持静态卡片配置、静态图展示。 + + +### ArkUI + +- Xcomponent组件支持Texture模式绘制、popup支持位置自定义、弹框支持通过键盘ESC键逐层退出、ListItem支持长距离左滑删除手势、ArkTS/JS卡片支持渲染完成回调、Image/Text组件支持隐私遮罩、ContextMenu支持分段显示能力。 + +- 动画效果增强,包括:布局属性、背景图片大小位置属性、显隐属性支持隐式动效,list支持scrollToIndex动效、Tabs模糊动效、popup出现/消失动效,支持自定义动画,满足开发者多种多样动画诉求。 + +- 开发效率增强:支持命名路由的能力,借助此能力可针对不同页面设置不同的切换动效;轻量级ArkUI框架支持定义全局数据对象,可进行应用内页面间的数据共享。 + +- 全局API支持Stage模型多实例场景。 + + +### 应用包管理 + +- 支持对应用分发类型和附件信息的设置和查询。 + +- 支持通过文件扩展名列出支持打开该文件的应用列表,实现了文件扩展名与应用的匹配关系。 + +- 支持企业应用的安装管理,对于证书类型为“enterprise”的应用,安装需要申请“ohos.permission.INSTALL_ENTERPRISE_BUNDLE”。 + + +### 分布式数据管理 + +- UDMF(统一数据管理框架)支持跨设备拖拽场景下对分布式目录的文件临时授权。 + +- 提供RDBstore NDK接口 :包含增/删/改/查/事务、数据加密、数据分级保护、备份/恢复能力。 + +- Key-Value和分布式数据对象支持根据数据量自动选择数据同步的通道。系统会根据数据量大小自动选择蓝牙通道或基于WiFi的P2P通道进行数据的同步。 + + +### 分布式软总线 + +- 支持对基于软总线连接的link信息进行管理。 + +- 支持会话级的传输能力协商,可通过协商确定设备间传输的能力。 + + +### 分布式硬件 + +- 分布式场景下的音频录制时延性能得到优化。 + +- 分布式文件系统支持在以蓝牙引导的P2P连接环境下进行文件互访。 + +- 支持组网设备名称变化的监听。 + + +### 文件管理 + +- 支持公共图片文件在设备端和云端进行同步(设备登录的帐号需开通云端服务),支持通过picker选择云端的图片。 + +- 支持应用定制备份恢复的目录。 + +- 支持公共图片的分类管理,用户可以在图库中通过相册对用户图片进行组织分类。 + +- 支持应用监听沙箱内的文件的增改删。 + +- 支持应用跨设备分享沙箱内的文件。 + + +### 图形显示及窗口 + +**图形** + +- 支持对选定区域取色,可选定区域后获得该区域的主色值、平均色值等参数并按需使用。 + +- 支持设置旋转中心在Z轴锚点的偏移,允许在旋转过程中修改渲染的锚点。 + +- 图形处理依赖的渲染库升级至Skia 0310新版本,提升了显示性能。 + +**窗口** + +- 优化了display模块的参数值获取方式,从原先软件方式优化为从硬件直接获取真实值。 + +- 窗口控件化能力增强:窗口以控件化的方式支持窗口属性、子窗口、模态窗口、窗口效果、窗口装饰、亮灭屏流程、截屏录屏。 + + +### 媒体 + +**音频** + +- 支持音效框架:南向厂商可配置音效策略和加载自定义音效;应用可查询音频输出的音效模式,切换或关闭音效模式。 + +- 支持系统内录音能力:可根据音频场景属性筛选,录制系统内播放的音频数据。 + +- 支持获取音频设备显示名:播放对象详细信息内可获取当前播放输出归属的设备名。 + +**媒体播放** + +支持音效参数配置,可以在音频框架支持音效的能力基础上进一步配置音效。 + +**音视频编解码** + +- 支持通过Native API查询系统的音视频编解码能力。 + +- 支持通过Native API完成音视频封装,即将音频、视频等编码后的媒体数据,按一定的格式存储到文件里。 + +- 支持通过Native API完成音视频解封装,即从比特流数据中取出音频、视频等媒体帧数据。 + + +### 事件通知 + +- 支持选定通知并批量删除通知。 + +- emitter支持取消按条件指定订阅回调能力。 + + +### 基础通信 + +- WiFi支持后台扫描的能力。 + +- WiFi支持STA模式下的随机MAC能力。 + + +### 网络与通信 + +- 支持与服务器端通过TCP Socket进行通信。 + +- 支持用户将数据传送到远程服务器。 + +- 支持HTTPS证书的管理适配。 + +- 支持网卡代理。 + + +### 系统服务管理 + +- 支持系统服务按需启动,例如外部调用、事件触发,同时支持在设备空闲时自动退出系统服务。 + +- 系统服务配置格式优化,使用JSON格式替代XML格式。 + + +### 电源 + +- 新增接口,支持设置系统立即进入睡眠状态。 + +- 新增休眠源定制能力,支持根据不同的休眠源定制事件及行为。 + +- 新增唤醒源定制能力,支持根据不同的唤醒源定制唤醒事件。 + + +### 多模输入 + +- 支持将键盘输入设备的原始事件映射为归一化交互的意图事件,使开发者在开发应用时无需关注输入行为是来自触控还是键盘。 + +- 支持用户根据个人习惯设置触控板功能的个性化配置: + - 支持两种触发模式映射鼠标左键功能: 按压、轻点。 + - 支持两种触发模式映射鼠标右键功能:点按左/右下角、双指点按或轻点。 + - 跟踪速度:支持10档速度调节。 + - 支持两种交互模式映射鼠标滚轮功能:内容随手指移动方向、内容随手指反向移动。 + + +### 主题框架 + +- 锁屏管理服务支持锁屏事件回调机制、静态/动态壁纸、查询锁屏时的业务状态。 + +- 壁纸管理服务支持自定义壁纸、锁屏/解锁操作、重置壁纸。 + + +### 上传下载 + +支持查询上传和下载的任务、任务状态信息同步和任务记录持久化、任务状态查询和异常的恢复。 + + +### 安全 + +**加解密算法库框架** + +- 提供DSA数字签名算法能力。 + +- 提供DSA、ECC、RSA密钥解析和密钥参数的获取能力。 + +- 提供安全随机数生成算法类型的获取能力。 + +- 提供SM4密钥的随机生成与转换,以及加密解密能力。 + +- 提供SM3密钥的HMAC和HASH的能力。 + +- 提供SM2密钥的随机生成与转换、签名及验签、以及加密解密能力。 + +**密钥管理** + +- 支持HUKS密钥加密保护。 + +- 支持KeyAttestation公钥证书中增加对密钥所属业务身份字段。 + +- 支持标准HDI南向接口。 + +**设备互信认证** + +支持在以下两种场景的设备间互信认证流程中生成假名,支持识别及和标识设备的假名化名称。 + +- 对使用同帐号登录的多个设备进行互信认证。 + +- 对非同帐号的点对点互联的两个设备进行互信认证。 + + +### 程序访问控制 + +- 优化权限管理的菜单呈现,拆分媒体和文件的权限组,相应权限的授权粒度更加精细化。 + +- 支持treble架构下对SELinux的兼容能力。 + + +### 帐号 + +- 支持帐号授权能力扩展和三方应用使用帐号授权能力。 + +- 支持对域帐号插件的管理,从而支持域帐号管理和认证能力。 + + +### WebView + +- W3C能力补充完善:补充Web Camera能力,以及bindContextMenu、Select、date类型input等H5标签能力。 + +- 支持多渲染进程的进程拆分。 + +- 支持文字、图片基础拖拽能力。 + +- 支持WebRTC的视频会议能力(不含摄像头共享)。 + +- 支持渲染进程独立SELinux标签,增强安全基础能力。 + + +### ArkCompiler + +- 方舟运行时支持JSContext功能;支持动态PGO功能,可采集运行期的类型和函数热点信息,并生成AP文件;支持动态import加载NAPI库。 + +- 方舟编译器type编译模式下前端编译工具链切换到es2abc。 + +- NAPI buffer、object、arraybuffer、object type接口功能补齐。 + +- Taskpool支持任务中断和取消,支持定义任务组(TaskGroup),支持对任务的状态和调度信息进行打点,支持超长等待的任务进行识别和恢复。 + +- 编译构建能力提供OpenHarmony系统user和root不同权限版本的构建,user版本能力同步支持Wukong测试工具和XTS测试能力。 + +- 编译工具链支持预览器上的调试能力。 + + +### DFX + +- 提供统一的采集框架能力,方便开发者对应用的调试调测。 + +- 提供统一的trace采集能力。 + +- 提供Native的HiTraceMeter打点接口。 + +- 性能雷达提供工具类,方便各业务模块(子系统)在业务流程上传递性能埋点记录及结算性能数据。 + + +### 内核 + +代码执行权限管控能力增强,新增了以下能力: + +- 支持安全内存机制。 + +- 提供满足不同场景的代码执行权限管控策略。 + +- 提供代码执行权限管控的全生命周期管理能力。 + +- 支持解析可执行文件获取代码段信息。 + +- 支持代码页的完整性保护能力。 + + +### 驱动 + +- 扩展设备驱动框架提供以下能力: + - 扩展设备驱动框架基于“驱动扩展Ability(DriverExtensionAbility)”的能力,构建应用态扩展驱动包的开发、部署、安装、更新、卸载、运行能力,开放全流程生命周期管理能力。 + - 支持三方设备厂商开发的非标准协议的可插拔USB设备扩展驱动包,正常安装到OpenHarmony系统。插入USB设备后,能正常识别USB设备并与扩展驱动包匹配。 + - 支持三方应用通过扩展外部设备管理框架查询并绑定USB设备扩展驱动包,完成对扩展驱动包定制功能的操作。 + +- 相机驱动提供以下能力: + - 提供USB相机热插拔识别能力,支持开机启动检查识别和启动后热插拔识别。 + - 支持USB相机的预览、拍照、录像能力,提供相机格式、分辨率查询和配置能力。 + +- 编解码驱动提供JPEG图片硬件解码加速能力,包括获取硬件解码信息,初始化/去初始化,解码,申请/释放buffer,提升用户浏览图片流畅度体验。 + +- 传感器驱动提供温湿度传感器设备驱动能力,支持小型设备温湿度器件查询,器件使能/去使能,数据查询能力,丰富智能设备传感器能力。 + + +## 配套关系 + +**表1** 版本软件和工具配套关系 + +| 软件 | 版本 | 备注 | +| -------- | -------- | -------- | +| OpenHarmony | 4.0 Beta2 | NA | +| Public SDK | Ohos_sdk_public 4.0.9.6 (API Version 10 Beta2) | 面向应用开发者提供,不包含需要使用系统权限的系统接口。通过DevEco Studio默认获取的SDK为Public SDK。 | +| HUAWEI DevEco Studio(可选) | 4.0 Beta2 | OpenHarmony应用开发推荐使用。获取方式:
*待发布* | +| HUAWEI DevEco Device Tool(可选) | 4.0 Beta1 | OpenHarmony智能设备集成开发环境推荐使用。获取方式:
[点击跳转至下载页面](https://device.harmonyos.com/cn/develop/ide#download) | + + +## 源码获取 + + +### 前提条件 + +1. 注册码云gitee帐号。 + +2. 注册码云SSH公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191)。 + +3. 安装[git客户端](https://gitee.com/link?target=https%3A%2F%2Fgit-scm.com%2Fbook%2Fzh%2Fv2%2F%25E8%25B5%25B7%25E6%25AD%25A5-%25E5%25AE%2589%25E8%25A3%2585-Git)和[git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading)并配置用户信息。 + + ``` + git config --global user.name "yourname" + git config --global user.email "your-email-address" + git config --global credential.helper store + ``` + +4. 安装码云repo工具,可以执行如下命令。 + + ``` + curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo #如果没有权限,可下载至其他目录,并将其配置到环境变量中chmod a+x /usr/local/bin/repo + pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests + ``` + + +### 通过repo获取 + +**方式一(推荐)** + +通过repo + ssh 下载(需注册公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191))。 + +- 从版本分支获取源码。可获取该版本分支的最新源码,包括版本发布后在该分支的合入。 + ``` + repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-4.0-Beta2 --no-repo-verify + repo sync -c + repo forall -c 'git lfs pull' + ``` + +- 从版本发布Tag节点获取源码。可获取与版本发布时完全一致的源码。 + ``` + repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v4.0-Beta2 --no-repo-verify + repo sync -c + repo forall -c 'git lfs pull' + ``` + +**方式二** + +通过repo + https 下载。 + +- 从版本分支获取源码。可获取该版本分支的最新源码,包括版本发布后在该分支的合入。 + ``` + repo init -u https://gitee.com/openharmony/manifest -b OpenHarmony-4.0-Beta2 --no-repo-verify + repo sync -c + repo forall -c 'git lfs pull' + ``` + +- 从版本发布Tag节点获取源码。可获取与版本发布时完全一致的源码。 + ``` + repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v4.0-Beta2 --no-repo-verify + repo sync -c + repo forall -c 'git lfs pull' + ``` + + +### 从镜像站点获取 + + **表2** 获取源码路径 + +| 版本源码 | **版本信息** | **下载站点** | **SHA256校验码** | **软件包容量** | +| --------------------------------------- | ------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -------- | +| 全量代码(标准、轻量和小型系统) | 4.0 Beta2 | [站点](https://repo.huaweicloud.com/openharmony/os/4.0-Beta2/code-v4.0-Beta2.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/4.0-Beta2/code-v4.0-Beta2.tar.gz.sha256) | 26.2 GB | +| Hi3861解决方案(二进制) | 4.0 Beta2 | [站点](https://repo.huaweicloud.com/openharmony/os/4.0-Beta2/hispark_pegasus.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/4.0-Beta2/hispark_pegasus.tar.gz.sha256) | 25.1 MB | +| Hi3516解决方案-LiteOS(二进制) | 4.0 Beta2 | [站点](https://repo.huaweicloud.com/openharmony/os/4.0-Beta2/hispark_taurus_LiteOS.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/4.0-Beta2/hispark_taurus_LiteOS.tar.gz.sha256) | 287.6 MB | +| Hi3516解决方案-Linux(二进制) | 4.0 Beta2 | [站点](https://repo.huaweicloud.com/openharmony/os/4.0-Beta2/hispark_taurus_Linux.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/4.0-Beta2/hispark_taurus_Linux.tar.gz.sha256) | 186.4 MB | +| RK3568标准系统解决方案(二进制) | 4.0 Beta2 | [站点](https://repo.huaweicloud.com/openharmony/os/4.0-Beta2/dayu200_standard_arm32.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/4.0-Beta2/dayu200_standard_arm32.tar.gz.sha256) | 4.5 GB | +| 标准系统Public SDK包(Mac) | 4.0.9.6 | [站点](https://repo.huaweicloud.com/openharmony/os/4.0-Beta2/ohos-sdk-mac-public.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/4.0-Beta2/ohos-sdk-mac-public.tar.gz.sha256) | 718.2 MB | +| 标准系统Public SDK包(Mac-M1) | 4.0.9.6 | [站点](https://repo.huaweicloud.com/openharmony/os/4.0-Beta2/L2-SDK-MAC-M1-PUBLIC.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/4.0-Beta2/L2-SDK-MAC-M1-PUBLIC.tar.gz.sha256) | 673.2 MB | +| 标准系统Public SDK包(Windows/Linux) | 4.0.9.6 | [站点](https://repo.huaweicloud.com/openharmony/os/4.0-Beta2/ohos-sdk-windows_linux-public.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/4.0-Beta2/ohos-sdk-windows_linux-public.tar.gz.sha256) | 1.8 GB | + + +## 更新说明 + +本版本在OpenHarmony 4.0 Beta1的基础上有如下变更: + +### API + +OpenHarmony 4.0 Beta2的API范围相比4.0 Beta1,API变更的清单请参见“[API差异报告](https://gitee.com/openharmony/docs/blob/OpenHarmony-4.0-Beta2/zh-cn/release-notes/api-diff/v4.0-beta1/Readme-CN.md)”。极少量接口的变更可能影响到已开发的应用(使用API 9或更早版本API开发的应用),变更影响的说明和接口的适配指导请参见“[changelogs](https://gitee.com/openharmony/docs/blob/OpenHarmony-4.0-Beta1/zh-cn/release-notes/changelogs/v4.0-beta2/Readme-CN.md)”。 + + +### 特性变更 + +详见[版本概述](#版本概述)。 + +### 芯片及开发板适配 + +芯片及开发板适配状态请参考[SIG-Devboard](https://gitee.com/openharmony/community/blob/master/sig/sig-devboard/sig_devboard_cn.md)信息。 + + +### Samples + +**表3** 新增Samples + +| 子系统 | 名称 | 简介 | 开发语言 | +| -------- | -------- | -------- | -------- | +| 网络与连接 | [上传和下载](https://gitee.com/openharmony/applications_app_samples/tree/OpenHarmony-4.0-Beta2/code/BasicFeature/Connectivity/UploadAndDownLoad) | 本示例使用\@ohos.request接口创建上传和下载任务,实现上传、下载功能,hfs作为服务器,实现了文件的上传和下载和任务的查询功能。 | ArkTS | +| 文件管理 | [应用接入数据备份恢复](https://gitee.com/openharmony/applications_app_samples/tree/OpenHarmony-4.0-Beta2/code/BasicFeature/FileManagement/FileBackupExtension)
(Full SDK) | 应用接入数据备份恢复需要通过配置BackupExtensionAbility实现。
BackupExtensionAbility,是Stage模型中扩展组件ExtensionAbility的派生类。开发者可以通过修改配置文件定制备份恢复框架的行为,包括是否允许备份恢复,备份哪些文件等。
本sample主要给备份流程提供应用,用于生成数据和显示数据。 | ArkTS | +| 事件通知 | [自定义通知角标](https://gitee.com/openharmony/applications_app_samples/tree/OpenHarmony-4.0-Beta2/code/BasicFeature/Notification/CustomNotificationBadge) | 本示例主要展示了设定应用的桌面图标角标的功能,使用\@ohos.notificationManager 接口,进行桌面角标的设置,通知的发送,获取等。 | ArkTS | +| 事件通知 | [自定义通知推送](https://gitee.com/openharmony/applications_app_samples/tree/OpenHarmony-4.0-Beta2/code/BasicFeature/Notification/CustomNotificationPush)
(Full SDK) | 本示例主要展示了通知过滤回调管理的功能,使用\@ohos.notificationManager 接口,进行通知监听回调,决定应用通知是否发送。 | ArkTS | +| NDK | [Native Xcomponent](https://gitee.com/openharmony/applications_app_samples/tree/master/code/BasicFeature/Native/NdkXComponent)
(Native SDK) | 本示例中主要介绍开发者如何使用Native XComponent接口来获取NativeWindow实例、获取布局/事件信息、注册事件回调并通过OpenGL/EGL实现在页面上绘制形状。功能主要包括点击按钮绘制一个五角星,并可以通过点击XComponent区域改变五角星的颜色。 | Native C++ | +| 应用模型 | [数据代理卡片-数据库刷新](https://gitee.com/openharmony/applications_app_samples/tree/OpenHarmony-4.0-Beta2/code/SystemFeature/ApplicationModels/PersistentProxyForm)
(Full SDK) | 本示例主要展示了数据代理卡片的功能,使用\@ohos.application.DataShareExtensionAbility、\@ohos.data.dataShare、\@ohos.data.dataSharePredicates等接口,实现了修改卡片订阅信息后,当rdb数据库中的数据发生变化时,卡片中对应信息也发生相应变化的功能。 | ArkTS | +| 应用模型 | [数据代理卡片-仿push应用刷新](https://gitee.com/openharmony/applications_app_samples/tree/OpenHarmony-4.0-Beta2/code/SystemFeature/ApplicationModels/ProcessProxyForm)
(Full SDK) | 本示例主要展示了使用push应用形式的数据代理卡片功能,使用\@ohos.data.dataShare等接口,实现了数据代理卡片的修改订阅条件功能及卡片的发布数据功能。 | ArkTS | +| 应用模型 | [编辑应用](https://gitee.com/openharmony/applications_app_samples/tree/OpenHarmony-4.0-Beta2/code/SystemFeature/ApplicationModels/Receiver) | 本示例主要实现了基于UIExtension实现简单的分享功能。支持取消分享,点击“返回Share”按钮,返回调用方应用;支持完成分享,点击“留在编辑应用”按钮,留在当前接收分享结果应用。 | ArkTS | +| 应用模型 | [发起分享应用](https://gitee.com/openharmony/applications_app_samples/tree/OpenHarmony-4.0-Beta2/code/SystemFeature/ApplicationModels/Share)
(Full SDK) | 本示例主要实现了点击“分享”按钮发起分享,显示出分享文本应用图标和分享编辑应用图标,点击相对应应用图标可以发起分享并跳转到其对应应用显示。 | ArkTS | +| 应用模型 | [文本应用](https://gitee.com/openharmony/applications_app_samples/tree/OpenHarmony-4.0-Beta2/code/SystemFeature/ApplicationModels/Template)
(Full SDK) | 本示例主要实现了基于UIExtension实现简单的分享功能。支持取消分享,点击“返回Share”按钮,返回调用方应用;支持完成分享,点击“留在文本应用”按钮,留在当前文本应用。 | ArkTS | + +请访问[Samples](https://gitee.com/openharmony/applications_app_samples)仓了解更多信息。 + + +## 修复缺陷列表 + +**表4** 修复缺陷ISSUE列表 + +| ISSUE单 | 问题描述 | +| -------- | -------- | +| I6U4ZT | 拍照后立刻断电源,图库的第一张图片点击打不开。 | +| I79752 | 中概率由进程com.ohos.smartperf下的.ohos.smartperf线程导致libark_jsruntime.so出现cppcrash。 | +| I79P3K | 低概率由进程com.ohos.callui导致jscrash,栈名:onDestroy。 | +| I79TCB | 低概率由进程com.ohos.note下的VizCompositorTh线程导致libweb_engine.soTh出现cppcrash。 | +| I78CBC | 反复进入某相册的图片宫格浏览界面,导致libace.z.so出现内存泄露。 | +| I78C9W | 反复进入大图浏览界面后返回,导致libace.z.so出现内存泄露。 | + + +## 遗留缺陷列表 + +**表5** 遗留缺陷列表 + +| ISSUE | 问题描述 | 影响 | 计划解决日期 | +| -------- | -------- | -------- | -------- | +| I78CH7 | 反复在dock栏添加/移除应用,导致libace.z.so出现内存泄露。 | 非常用场景,应用重启后泄露问题消失,影响可控。 | 2023年8月30日 | +| I7BF3M | 长时间运行测试,launcher进程概率性出现appfreeze,原因是STRINGID:APPLICATION_BLOCK_INPUT卡在libeventhandler.z.so。 | 该问题不会引起系统重启,整体影响可控。 | 2023年8月30日 | +| I7M51R | 低概率出现进程com.ohos.systemui下的线程render_service出现cppcrash。 | 低概率问题,且render_service进程出现cppcrash后,系统会自动重新启动render_service进程,对业务影响可控。 | 2023年8月30日 | +| I7L2CF | SystemUI内存泄漏:反复执行下拉任务栏操作,压力测试执行24小时,泄露60MB。 | 单次执行下拉任务栏操作,泄露量在几KB,影响可控。 | 2023年8月30日 | \ No newline at end of file diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/Readme-CN.md b/zh-cn/release-notes/api-diff/v4.0-beta2/Readme-CN.md new file mode 100644 index 0000000000..0615e586b4 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/Readme-CN.md @@ -0,0 +1,34 @@ +# Readme + +- [元能力](js-apidiff-ability.md) +- [帐号](js-apidiff-account.md) +- [AI](js-apidiff-ai.md) +- [应用](js-apidiff-application.md) +- [ArkUI](js-apidiff-arkui.md) +- [电源管理](js-apidiff-battery.md) +- [包管理](js-apidiff-bundle.md) +- [网络与通信](js-apidiff-communication.md) +- [语言编译器运行时](js-apidiff-compiler-and-runtime.md) +- [定制](js-apidiff-customization.md) +- [DFX](js-apidiff-dfx.md) +- [分布式数据管理](js-apidiff-distributed-data.md) +- [分布式硬件](js-apidiff-distributed-hardware.md) +- [上传下载](js-apidiff-download-upload.md) +- [驱动](js-apidiff-driver.md) +- [文件管理](js-apidiff-file-management.md) +- [位置服务](js-apidiff-geolocation.md) +- [全球化](js-apidiff-global.md) +- [Misc软件](js-apidiff-misc.md) +- [MSDP](js-apidiff-msdp.md) +- [多模输入](js-apidiff-multi-modal-input.md) +- [媒体](js-apidiff-multimedia.md) +- [事件通知](js-apidiff-notification.md) +- [资源调度](js-apidiff-resource-scheduler.md) +- [安全](js-apidiff-security.md) +- [泛Sensor](js-apidiff-sensor.md) +- [启动](js-apidiff-start-up.md) +- [电话服务](js-apidiff-telephony.md) +- [测试框架](js-apidiff-unitest.md) +- [USB](js-apidiff-usb.md) +- [Web](js-apidiff-web.md) +- [窗口](js-apidiff-window.md) diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-ability.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-ability.md new file mode 100644 index 0000000000..9c30bf21e5 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-ability.md @@ -0,0 +1,746 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:LastExitReason;
方法or属性:CPP_CRASH = 3|@ohos.app.ability.AbilityConstant.d.ts| +|新增|NA|类名:LastExitReason;
方法or属性:JS_ERROR = 4|@ohos.app.ability.AbilityConstant.d.ts| +|新增|NA|类名:LastExitReason;
方法or属性:APP_FREEZE = 5|@ohos.app.ability.AbilityConstant.d.ts| +|新增|NA|类名:LastExitReason;
方法or属性:PERFORMANCE_CONTROL = 6|@ohos.app.ability.AbilityConstant.d.ts| +|新增|NA|类名:LastExitReason;
方法or属性:RESOURCE_CONTROL = 7|@ohos.app.ability.AbilityConstant.d.ts| +|新增|NA|类名:LastExitReason;
方法or属性:UPGRADE = 8|@ohos.app.ability.AbilityConstant.d.ts| +|新增|NA|类名:ContinueState;
方法or属性:ACTIVE = 0|@ohos.app.ability.AbilityConstant.d.ts| +|新增|NA|类名:ContinueState;
方法or属性:INACTIVE = 1|@ohos.app.ability.AbilityConstant.d.ts| +|新增|NA|类名:abilityManager;
方法or属性:function notifySaveAsResult(parameter: AbilityResult, requestCode: number, callback: AsyncCallback\): void;|@ohos.app.ability.abilityManager.d.ts| +|新增|NA|类名:abilityManager;
方法or属性:function notifySaveAsResult(parameter: AbilityResult, requestCode: number): Promise\;|@ohos.app.ability.abilityManager.d.ts| +|新增|NA|类名:ApplicationStateChangeCallback;
方法or属性:onApplicationForeground(): void;|@ohos.app.ability.ApplicationStateChangeCallback.d.ts| +|新增|NA|类名:ApplicationStateChangeCallback;
方法or属性:onApplicationBackground(): void;|@ohos.app.ability.ApplicationStateChangeCallback.d.ts| +|新增|NA|类名:appManager;
方法or属性:function getProcessMemoryByPid(pid: number): Promise\;|@ohos.app.ability.appManager.d.ts| +|新增|NA|类名:appManager;
方法or属性:function getProcessMemoryByPid(pid: number, callback: AsyncCallback\): void;|@ohos.app.ability.appManager.d.ts| +|新增|NA|类名:appManager;
方法or属性:function getRunningProcessInfoByBundleName(bundleName: string, callback: AsyncCallback\>): void;|@ohos.app.ability.appManager.d.ts| +|新增|NA|类名:appManager;
方法or属性:function getRunningProcessInfoByBundleName(bundleName: string, userId: number, callback: AsyncCallback\>): void;|@ohos.app.ability.appManager.d.ts| +|新增|NA|类名:appManager;
方法or属性:function getRunningProcessInfoByBundleName(bundleName: string): Promise\>;|@ohos.app.ability.appManager.d.ts| +|新增|NA|类名:appManager;
方法or属性:function getRunningProcessInfoByBundleName(bundleName: string, userId: number): Promise\>;|@ohos.app.ability.appManager.d.ts| +|新增|NA|类名:WindowRect;
方法or属性:left: number;|@ohos.app.ability.dialogRequest.d.ts| +|新增|NA|类名:WindowRect;
方法or属性:top: number;|@ohos.app.ability.dialogRequest.d.ts| +|新增|NA|类名:WindowRect;
方法or属性:width: number;|@ohos.app.ability.dialogRequest.d.ts| +|新增|NA|类名:WindowRect;
方法or属性:height: number;|@ohos.app.ability.dialogRequest.d.ts| +|新增|NA|类名:RequestInfo;
方法or属性:windowRect?: WindowRect|@ohos.app.ability.dialogRequest.d.ts| +|新增|NA|类名:RequestResult;
方法or属性:want?: Want;|@ohos.app.ability.dialogRequest.d.ts| +|新增|NA|类名:missionManager;
方法or属性:function moveMissionsToForeground(missionIds: Array\, callback: AsyncCallback\): void;|@ohos.app.ability.missionManager.d.ts| +|新增|NA|类名:missionManager;
方法or属性:function moveMissionsToForeground(missionIds: Array\, topMission: number, callback: AsyncCallback\): void;|@ohos.app.ability.missionManager.d.ts| +|新增|NA|类名:missionManager;
方法or属性:function moveMissionsToForeground(missionIds: Array\, topMission?: number): Promise\;|@ohos.app.ability.missionManager.d.ts| +|新增|NA|类名:missionManager;
方法or属性:function moveMissionsToBackground(missionIds: Array\, callback: AsyncCallback\>): void;|@ohos.app.ability.missionManager.d.ts| +|新增|NA|类名:missionManager;
方法or属性:function moveMissionsToBackground(missionIds: Array\): Promise\>;|@ohos.app.ability.missionManager.d.ts| +|新增|NA|类名:UIAbility;
方法or属性:onPrepareToTerminate(): boolean;|@ohos.app.ability.UIAbility.d.ts| +|新增|NA|类名:UIAbility;
方法or属性:onBackPressed(): boolean;|@ohos.app.ability.UIAbility.d.ts| +|新增|NA|类名:UIExtensionAbility;
方法or属性:context: UIExtensionContext;|@ohos.app.ability.UIExtensionAbility.d.ts| +|新增|NA|类名:UIExtensionAbility;
方法or属性:onCreate(): void;|@ohos.app.ability.UIExtensionAbility.d.ts| +|新增|NA|类名:UIExtensionAbility;
方法or属性:onSessionCreate(want: Want, session: UIExtensionContentSession): void;|@ohos.app.ability.UIExtensionAbility.d.ts| +|新增|NA|类名:UIExtensionAbility;
方法or属性:onSessionDestroy(session: UIExtensionContentSession): void;|@ohos.app.ability.UIExtensionAbility.d.ts| +|新增|NA|类名:UIExtensionAbility;
方法or属性:onForeground(): void;|@ohos.app.ability.UIExtensionAbility.d.ts| +|新增|NA|类名:UIExtensionAbility;
方法or属性:onBackground(): void;|@ohos.app.ability.UIExtensionAbility.d.ts| +|新增|NA|类名:UIExtensionAbility;
方法or属性:onDestroy(): void \| Promise\;|@ohos.app.ability.UIExtensionAbility.d.ts| +|新增|NA|类名:UIExtensionContentSession;
方法or属性:sendData(data: { [key: string]: Object }): void;|@ohos.app.ability.UIExtensionContentSession.d.ts| +|新增|NA|类名:UIExtensionContentSession;
方法or属性:setReceiveDataCallback(callback: (data: { [key: string]: Object }) => void): void;|@ohos.app.ability.UIExtensionContentSession.d.ts| +|新增|NA|类名:UIExtensionContentSession;
方法or属性:loadContent(path: string, storage?: LocalStorage): void;|@ohos.app.ability.UIExtensionContentSession.d.ts| +|新增|NA|类名:UIExtensionContentSession;
方法or属性:terminateSelf(callback: AsyncCallback\): void;|@ohos.app.ability.UIExtensionContentSession.d.ts| +|新增|NA|类名:UIExtensionContentSession;
方法or属性:terminateSelf(): Promise\;|@ohos.app.ability.UIExtensionContentSession.d.ts| +|新增|NA|类名:UIExtensionContentSession;
方法or属性:terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback\): void;|@ohos.app.ability.UIExtensionContentSession.d.ts| +|新增|NA|类名:UIExtensionContentSession;
方法or属性:terminateSelfWithResult(parameter: AbilityResult): Promise\;|@ohos.app.ability.UIExtensionContentSession.d.ts| +|新增|NA|类名:UIExtensionContentSession;
方法or属性:setWindowBackgroundColor(color: string): void;|@ohos.app.ability.UIExtensionContentSession.d.ts| +|新增|NA|类名:UIExtensionContentSession;
方法or属性:setWindowPrivacyMode(isPrivacyMode: boolean): Promise\;|@ohos.app.ability.UIExtensionContentSession.d.ts| +|新增|NA|类名:UIExtensionContentSession;
方法or属性:setWindowPrivacyMode(isPrivacyMode: boolean, callback: AsyncCallback\): void;|@ohos.app.ability.UIExtensionContentSession.d.ts| +|新增|NA|类名:Params;
方法or属性:SUPPORT_CONTINUE_PAGE_STACK_KEY = 'ohos.extra.param.key.supportContinuePageStack'|@ohos.app.ability.wantConstant.d.ts| +|新增|NA|类名:Params;
方法or属性:SUPPORT_CONTINUE_SOURCE_EXIT_KEY = 'ohos.extra.param.key.supportContinueSourceExit'|@ohos.app.ability.wantConstant.d.ts| +|新增|NA|类名:FormBindingData;
方法or属性:proxies?: Array\;|@ohos.app.form.formBindingData.d.ts| +|新增|NA|类名:ProxyData;
方法or属性:key: string;|@ohos.app.form.formBindingData.d.ts| +|新增|NA|类名:ProxyData;
方法or属性:subscriberId?: string;|@ohos.app.form.formBindingData.d.ts| +|新增|NA|类名:formHost;
方法or属性:function on(
type: 'notifyVisible',
observerCallback: Callback\>,
hostBundleName?: string
): void;|@ohos.app.form.formHost.d.ts| +|新增|NA|类名:formHost;
方法or属性:function on(
type: 'notifyInvisible',
observerCallback: Callback\>,
hostBundleName?: string
): void;|@ohos.app.form.formHost.d.ts| +|新增|NA|类名:formHost;
方法or属性:function off(
type: 'notifyVisible',
observerCallback?: Callback\>,
hostBundleName?: string
): void;|@ohos.app.form.formHost.d.ts| +|新增|NA|类名:formHost;
方法or属性:function off(
type: 'notifyInvisible',
observerCallback?: Callback\>,
hostBundleName?: string
): void;|@ohos.app.form.formHost.d.ts| +|新增|NA|类名:FormInfo;
方法or属性:isDynamic: boolean;|@ohos.app.form.formInfo.d.ts| +|新增|NA|类名:distributedMissionManager;
方法or属性:function on(type: 'continueStateChange', callback: Callback\<{ state: ContinueState, info: ContinuableInfo }>): void;|@ohos.distributedMissionManager.d.ts| +|新增|NA|类名:distributedMissionManager;
方法or属性:function off(type: 'continueStateChange', callback?: Callback\<{ state: ContinueState, info: ContinuableInfo }>): void;|@ohos.distributedMissionManager.d.ts| +|新增|NA|类名:distributedMissionManager;
方法or属性:function continueMission(parameter: ContinueMissionInfo, callback: AsyncCallback\): void;|@ohos.distributedMissionManager.d.ts| +|新增|NA|类名:distributedMissionManager;
方法or属性:function continueMission(parameter: ContinueMissionInfo): Promise\;|@ohos.distributedMissionManager.d.ts| +|新增|NA|类名:distributedMissionManager;
方法or属性:export type ContinuableInfo = _ContinuableInfo;|@ohos.distributedMissionManager.d.ts| +|新增|NA|类名:distributedMissionManager;
方法or属性:export type ContinueMissionInfo = _ContinueMissionInfo;|@ohos.distributedMissionManager.d.ts| +|新增|NA|类名:ContinueState;
方法or属性:ACTIVE = 0|@ohos.distributedMissionManager.d.ts| +|新增|NA|类名:ContinueState;
方法or属性:INACTIVE = 1|@ohos.distributedMissionManager.d.ts| +|新增|NA|类名:ApplicationContext;
方法or属性:on(type: 'applicationStateChange', callback: ApplicationStateChangeCallback): void;|ApplicationContext.d.ts| +|新增|NA|类名:ApplicationContext;
方法or属性:off(type: 'applicationStateChange', callback?: ApplicationStateChangeCallback): void;|ApplicationContext.d.ts| +|新增|NA|类名:BusinessAbilityInfo;
方法or属性:readonly bundleName: string;|BusinessAbilityInfo.d.ts| +|新增|NA|类名:BusinessAbilityInfo;
方法or属性:readonly moduleName: string;|BusinessAbilityInfo.d.ts| +|新增|NA|类名:BusinessAbilityInfo;
方法or属性:readonly name: string;|BusinessAbilityInfo.d.ts| +|新增|NA|类名:BusinessAbilityInfo;
方法or属性:readonly labelId: number;|BusinessAbilityInfo.d.ts| +|新增|NA|类名:BusinessAbilityInfo;
方法or属性:readonly descriptionId: number;|BusinessAbilityInfo.d.ts| +|新增|NA|类名:BusinessAbilityInfo;
方法or属性:readonly iconId: number;|BusinessAbilityInfo.d.ts| +|新增|NA|类名:BusinessAbilityInfo;
方法or属性:readonly businessType: businessAbilityRouter.BusinessType;|BusinessAbilityInfo.d.ts| +|新增|NA|类名:BusinessAbilityInfo;
方法or属性:readonly applicationInfo: ApplicationInfo;|BusinessAbilityInfo.d.ts| +|新增|NA|类名:Context;
方法or属性:getGroupDir(dataGroupID: string, callback: AsyncCallback\): void;|Context.d.ts| +|新增|NA|类名:Context;
方法or属性:getGroupDir(dataGroupID: string): Promise\;|Context.d.ts| +|新增|NA|类名:ContinuableInfo;
方法or属性:srcDeviceId: string;|ContinuableInfo.d.ts| +|新增|NA|类名:ContinuableInfo;
方法or属性:bundleName: string;|ContinuableInfo.d.ts| +|新增|NA|类名:ContinueMissionInfo;
方法or属性:srcDeviceId: string;|ContinueMissionInfo.d.ts| +|新增|NA|类名:ContinueMissionInfo;
方法or属性:dstDeviceId: string;|ContinueMissionInfo.d.ts| +|新增|NA|类名:ContinueMissionInfo;
方法or属性:bundleName: string;|ContinueMissionInfo.d.ts| +|新增|NA|类名:ContinueMissionInfo;
方法or属性:wantParam: { [key: string]: Object };|ContinueMissionInfo.d.ts| +|新增|NA|类名:FormExtensionContext;
方法or属性:connectServiceExtensionAbility(want: Want, options: ConnectOptions): number;|FormExtensionContext.d.ts| +|新增|NA|类名:FormExtensionContext;
方法or属性:disconnectServiceExtensionAbility(connection: number, callback: AsyncCallback\): void;|FormExtensionContext.d.ts| +|新增|NA|类名:FormExtensionContext;
方法or属性:disconnectServiceExtensionAbility(connection: number): Promise\;|FormExtensionContext.d.ts| +|新增|NA|类名:MissionInfo;
方法or属性:abilityState: number;|MissionInfo.d.ts| +|新增|NA|类名:MissionInfo;
方法or属性:unclearable: boolean;|MissionInfo.d.ts| +|新增|NA|类名:ProcessInformation;
方法or属性:state: appManager.ProcessState;|ProcessInformation.d.ts| +|新增|NA|类名:ServiceExtensionContext;
方法or属性:startAbilityAsCaller(want: Want, callback: AsyncCallback\): void;|ServiceExtensionContext.d.ts| +|新增|NA|类名:ServiceExtensionContext;
方法or属性:startAbilityAsCaller(want: Want, options: StartOptions, callback: AsyncCallback\): void;|ServiceExtensionContext.d.ts| +|新增|NA|类名:ServiceExtensionContext;
方法or属性:startAbilityAsCaller(want: Want, options?: StartOptions): Promise\;|ServiceExtensionContext.d.ts| +|新增|NA|类名:UIAbilityContext;
方法or属性:startAbilityAsCaller(want: Want, callback: AsyncCallback\): void;|UIAbilityContext.d.ts| +|新增|NA|类名:UIAbilityContext;
方法or属性:startAbilityAsCaller(want: Want, options: StartOptions, callback: AsyncCallback\): void;|UIAbilityContext.d.ts| +|新增|NA|类名:UIAbilityContext;
方法or属性:startAbilityAsCaller(want: Want, options?: StartOptions): Promise\;|UIAbilityContext.d.ts| +|新增|NA|类名:UIAbilityContext;
方法or属性:setMissionContinueState(state: AbilityConstant.ContinueState, callback: AsyncCallback\): void;|UIAbilityContext.d.ts| +|新增|NA|类名:UIAbilityContext;
方法or属性:setMissionContinueState(state: AbilityConstant.ContinueState): Promise\;|UIAbilityContext.d.ts| +|新增|NA|类名:UIAbilityContext;
方法or属性:reportDrawnCompleted(callback: AsyncCallback\): void;|UIAbilityContext.d.ts| +|新增|NA|类名:UIExtensionContext;
方法or属性:startAbility(want: Want, callback: AsyncCallback\): void;|UIExtensionContext.d.ts| +|新增|NA|类名:UIExtensionContext;
方法or属性:startAbility(want: Want, options: StartOptions, callback: AsyncCallback\): void;|UIExtensionContext.d.ts| +|新增|NA|类名:UIExtensionContext;
方法or属性:startAbility(want: Want, options?: StartOptions): Promise\;|UIExtensionContext.d.ts| +|新增|NA|类名:UIExtensionContext;
方法or属性:startAbilityForResult(want: Want, callback: AsyncCallback\): void;|UIExtensionContext.d.ts| +|新增|NA|类名:UIExtensionContext;
方法or属性:startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback\): void;|UIExtensionContext.d.ts| +|新增|NA|类名:UIExtensionContext;
方法or属性:startAbilityForResult(want: Want, options?: StartOptions): Promise\;|UIExtensionContext.d.ts| +|废弃版本有变化|类名:LastExitReason;
方法or属性:ABILITY_NOT_RESPONDING = 1
旧版本信息:|类名:LastExitReason;
方法or属性:ABILITY_NOT_RESPONDING = 1
新版本信息:10
代替接口: AbilityConstant.LastExitReason#APP_FREEZE|@ohos.app.ability.AbilityConstant.d.ts| +|废弃版本有变化|类名:continuationManager;
方法or属性:function off(type: 'deviceConnect', callback?: Callback\): void;
旧版本信息:|类名:continuationManager;
方法or属性:function off(type: 'deviceConnect', callback?: Callback\): void;
新版本信息:9
代替接口: ohos.continuation.continuationManager/continuationManager#off|@ohos.continuation.continuationManager.d.ts| +|废弃版本有变化|类名:continuationManager;
方法or属性:function off(type: 'deviceDisconnect', callback?: Callback\): void;
旧版本信息:|类名:continuationManager;
方法or属性:function off(type: 'deviceDisconnect', callback?: Callback\): void;
新版本信息:9
代替接口: ohos.continuation.continuationManager/continuationManager#off|@ohos.continuation.continuationManager.d.ts| +|废弃版本有变化|类名:continuationManager;
方法or属性:function register(options: ContinuationExtraParams, callback: AsyncCallback\): void;
旧版本信息:|类名:continuationManager;
方法or属性:function register(options: ContinuationExtraParams, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.continuation.continuationManager/continuationManager#registerContinuation|@ohos.continuation.continuationManager.d.ts| +|废弃版本有变化|类名:continuationManager;
方法or属性:function register(options?: ContinuationExtraParams): Promise\;
旧版本信息:|类名:continuationManager;
方法or属性:function register(options?: ContinuationExtraParams): Promise\;
新版本信息:9
代替接口: ohos.continuation.continuationManager/continuationManager#registerContinuation|@ohos.continuation.continuationManager.d.ts| +|废弃版本有变化|类名:continuationManager;
方法or属性:function unregister(token: number): Promise\;
旧版本信息:|类名:continuationManager;
方法or属性:function unregister(token: number): Promise\;
新版本信息:9
代替接口: ohos.continuation.continuationManager/continuationManager#unregisterContinuation|@ohos.continuation.continuationManager.d.ts| +|废弃版本有变化|类名:continuationManager;
方法or属性:function updateConnectStatus(token: number, deviceId: string, status: DeviceConnectState): Promise\;
旧版本信息:|类名:continuationManager;
方法or属性:function updateConnectStatus(token: number, deviceId: string, status: DeviceConnectState): Promise\;
新版本信息:9
代替接口: ohos.continuation.continuationManager/continuationManager#updateContinuationState|@ohos.continuation.continuationManager.d.ts| +|废弃版本有变化|类名:continuationManager;
方法or属性:function startDeviceManager(token: number, options: ContinuationExtraParams, callback: AsyncCallback\): void;
旧版本信息:|类名:continuationManager;
方法or属性:function startDeviceManager(token: number, options: ContinuationExtraParams, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.continuation.continuationManager/continuationManager#startContinuationDeviceManager|@ohos.continuation.continuationManager.d.ts| +|废弃版本有变化|类名:continuationManager;
方法or属性:function startDeviceManager(token: number, options?: ContinuationExtraParams): Promise\;
旧版本信息:|类名:continuationManager;
方法or属性:function startDeviceManager(token: number, options?: ContinuationExtraParams): Promise\;
新版本信息:9
代替接口: ohos.continuation.continuationManager/continuationManager#startContinuationDeviceManager|@ohos.continuation.continuationManager.d.ts| +|废弃版本有变化|类名:Context;
方法or属性:getExternalCacheDir(): Promise\;
旧版本信息:|类名:Context;
方法or属性:getExternalCacheDir(): Promise\;
新版本信息:7
代替接口:|context.d.ts| +|废弃版本有变化|类名:Context;
方法or属性:setShowOnLockScreen(show: boolean): Promise\;
旧版本信息:|类名:Context;
方法or属性:setShowOnLockScreen(show: boolean): Promise\;
新版本信息:9
代替接口: ohos.window/window.WindowStage#setShowOnLockScreen|context.d.ts| +|新增(错误码)|类名:continuationManager;
方法or属性:function off(type: 'deviceSelected', token: number): void;
旧版本信息:|类名:continuationManager;
方法or属性:function off(type: 'deviceSelected', token: number): void;
新版本信息:201,401,16600001,16600002,16600004|@ohos.continuation.continuationManager.d.ts| +|新增(错误码)|类名:continuationManager;
方法or属性:function off(type: 'deviceUnselected', token: number): void;
旧版本信息:|类名:continuationManager;
方法or属性:function off(type: 'deviceUnselected', token: number): void;
新版本信息:201,401,16600001,16600002,16600004|@ohos.continuation.continuationManager.d.ts| +|新增(错误码)|类名:continuationManager;
方法or属性:function registerContinuation(options: ContinuationExtraParams, callback: AsyncCallback\): void;
旧版本信息:|类名:continuationManager;
方法or属性:function registerContinuation(options: ContinuationExtraParams, callback: AsyncCallback\): void;
新版本信息:201,401,16600001,16600003|@ohos.continuation.continuationManager.d.ts| +|新增(错误码)|类名:continuationManager;
方法or属性:function registerContinuation(options?: ContinuationExtraParams): Promise\;
旧版本信息:|类名:continuationManager;
方法or属性:function registerContinuation(options?: ContinuationExtraParams): Promise\;
新版本信息:201,401,16600001,16600003|@ohos.continuation.continuationManager.d.ts| +|新增(错误码)|类名:continuationManager;
方法or属性:function unregisterContinuation(token: number): Promise\;
旧版本信息:|类名:continuationManager;
方法or属性:function unregisterContinuation(token: number): Promise\;
新版本信息:201,401,16600001,16600002|@ohos.continuation.continuationManager.d.ts| +|新增(错误码)|类名:continuationManager;
方法or属性:function updateContinuationState(token: number, deviceId: string, status: DeviceConnectState): Promise\;
旧版本信息:|类名:continuationManager;
方法or属性:function updateContinuationState(token: number, deviceId: string, status: DeviceConnectState): Promise\;
新版本信息:201,401,16600001,16600002|@ohos.continuation.continuationManager.d.ts| +|新增(错误码)|类名:continuationManager;
方法or属性:function startContinuationDeviceManager(
token: number,
options: ContinuationExtraParams,
callback: AsyncCallback\
): void;
旧版本信息:|类名:continuationManager;
方法or属性:function startContinuationDeviceManager(
token: number,
options: ContinuationExtraParams,
callback: AsyncCallback\
): void;
新版本信息:201,401,16600001,16600002|@ohos.continuation.continuationManager.d.ts| +|新增(错误码)|类名:continuationManager;
方法or属性:function startContinuationDeviceManager(token: number, options?: ContinuationExtraParams): Promise\;
旧版本信息:|类名:continuationManager;
方法or属性:function startContinuationDeviceManager(token: number, options?: ContinuationExtraParams): Promise\;
新版本信息:201,401,16600001,16600002|@ohos.continuation.continuationManager.d.ts| +|新增(错误码)|类名:distributedMissionManager;
方法or属性:function startSyncRemoteMissions(parameter: MissionParameter): Promise\;
旧版本信息:|类名:distributedMissionManager;
方法or属性:function startSyncRemoteMissions(parameter: MissionParameter): Promise\;
新版本信息:201,401|@ohos.distributedMissionManager.d.ts| +|新增(错误码)|类名:distributedMissionManager;
方法or属性:function stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise\;
旧版本信息:|类名:distributedMissionManager;
方法or属性:function stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise\;
新版本信息:201,401|@ohos.distributedMissionManager.d.ts| +|新增(错误码)|类名:distributedMissionManager;
方法or属性:function registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback): Promise\;
旧版本信息:|类名:distributedMissionManager;
方法or属性:function registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback): Promise\;
新版本信息:201,401|@ohos.distributedMissionManager.d.ts| +|新增(错误码)|类名:distributedMissionManager;
方法or属性:function unRegisterMissionListener(parameter: MissionDeviceInfo): Promise\;
旧版本信息:|类名:distributedMissionManager;
方法or属性:function unRegisterMissionListener(parameter: MissionDeviceInfo): Promise\;
新版本信息:201,401|@ohos.distributedMissionManager.d.ts| +|新增(错误码)|类名:distributedMissionManager;
方法or属性:function continueMission(parameter: ContinueDeviceInfo, options: ContinueCallback): Promise\;
旧版本信息:|类名:distributedMissionManager;
方法or属性:function continueMission(parameter: ContinueDeviceInfo, options: ContinueCallback): Promise\;
新版本信息:201,202,401,16300501,16300502,16300503,16300504,16300505,16300506|@ohos.distributedMissionManager.d.ts| +|错误码有变化|类名:uriPermissionManager;
方法or属性:function grantUriPermission(

uri: string,

flag: wantConstant.Flags,

targetBundleName: string,

callback: AsyncCallback\

): void;
旧版本信息:201,202,401,16000050,16000058,16000059|类名:uriPermissionManager;
方法or属性:function grantUriPermission(

uri: string,

flag: wantConstant.Flags,

targetBundleName: string,

callback: AsyncCallback\

): void;
新版本信息:201,202,401,16000050,16000058,16000059,16000060|@ohos.application.uriPermissionManager.d.ts| +|错误码有变化|类名:uriPermissionManager;
方法or属性:function grantUriPermission(uri: string, flag: wantConstant.Flags, targetBundleName: string): Promise\;
旧版本信息:201,202,401,16000050,16000058,16000059|类名:uriPermissionManager;
方法or属性:function grantUriPermission(uri: string, flag: wantConstant.Flags, targetBundleName: string): Promise\;
新版本信息:201,202,401,16000050,16000058,16000059,16000060|@ohos.application.uriPermissionManager.d.ts| +|错误码有变化|类名:distributedMissionManager;
方法or属性:function continueMission(

parameter: ContinueDeviceInfo,

options: ContinueCallback,

callback: AsyncCallback\

): void;
旧版本信息:201,401,16300501,16300502,16300503,16300504,16300505,16300506|类名:distributedMissionManager;
方法or属性:function continueMission(

parameter: ContinueDeviceInfo,

options: ContinueCallback,

callback: AsyncCallback\

): void;
新版本信息:201,202,401,16300501,16300502,16300503,16300504,16300505,16300506|@ohos.distributedMissionManager.d.ts| +|错误码有变化|类名:AbilityDelegator;
方法or属性:startAbility(want: Want, callback: AsyncCallback\): void;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:AbilityDelegator;
方法or属性:startAbility(want: Want, callback: AsyncCallback\): void;
新版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|AbilityDelegator.d.ts| +|错误码有变化|类名:AbilityDelegator;
方法or属性:startAbility(want: Want): Promise\;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:AbilityDelegator;
方法or属性:startAbility(want: Want): Promise\;
新版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|AbilityDelegator.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:startAbility(want: Want, callback: AsyncCallback\): void;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:ServiceExtensionContext;
方法or属性:startAbility(want: Want, callback: AsyncCallback\): void;
新版本信息:201,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:startAbility(want: Want, options: StartOptions, callback: AsyncCallback\): void;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:ServiceExtensionContext;
方法or属性:startAbility(want: Want, options: StartOptions, callback: AsyncCallback\): void;
新版本信息:201,401,16000001,16000004,16000005,16000006,16000008,16000009,16000011,16000012,16000013,16000050,16000053,16000055,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:startAbility(want: Want, options?: StartOptions): Promise\;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:ServiceExtensionContext;
方法or属性:startAbility(want: Want, options?: StartOptions): Promise\;
新版本信息:201,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
旧版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:ServiceExtensionContext;
方法or属性:startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback\): void;
旧版本信息:16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001,201,202,401|类名:ServiceExtensionContext;
方法or属性:startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback\): void;
新版本信息:16000001,16000004,16000005,16000006,16000008,16000009,16000011,16000012,16000013,16000050,16000053,16000055,16200001,201,202,401|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\;
旧版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:ServiceExtensionContext;
方法or属性:startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:startServiceExtensionAbility(want: Want, callback: AsyncCallback\): void;
旧版本信息:201,202,401,16000001,16000002,16000005,16000006,16000008,16000011,16000050,16200001|类名:ServiceExtensionContext;
方法or属性:startServiceExtensionAbility(want: Want, callback: AsyncCallback\): void;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000012,16000013,16000050,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:startServiceExtensionAbility(want: Want): Promise\;
旧版本信息:201,202,401,16000001,16000002,16000005,16000006,16000008,16000011,16000050,16200001|类名:ServiceExtensionContext;
方法or属性:startServiceExtensionAbility(want: Want): Promise\;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000012,16000013,16000050,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
旧版本信息:201,202,401,16000001,16000002,16000005,16000006,16000008,16000011,16000050,16200001|类名:ServiceExtensionContext;
方法or属性:startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000012,16000013,16000050,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\;
旧版本信息:201,202,401,16000001,16000002,16000005,16000006,16000008,16000011,16000050,16200001|类名:ServiceExtensionContext;
方法or属性:startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000012,16000013,16000050,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:stopServiceExtensionAbility(want: Want, callback: AsyncCallback\): void;
旧版本信息:202,401,16000001,16000002,16000005,16000006,16000011,16000050,16200001|类名:ServiceExtensionContext;
方法or属性:stopServiceExtensionAbility(want: Want, callback: AsyncCallback\): void;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000011,16000050,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:stopServiceExtensionAbility(want: Want): Promise\;
旧版本信息:202,401,16000001,16000002,16000005,16000006,16000011,16000050,16200001|类名:ServiceExtensionContext;
方法or属性:stopServiceExtensionAbility(want: Want): Promise\;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000011,16000050,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
旧版本信息:201,202,401,16000001,16000002,16000005,16000006,16000011,16000050,16200001|类名:ServiceExtensionContext;
方法or属性:stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000011,16000050,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\;
旧版本信息:201,202,401,16000001,16000002,16000005,16000006,16000011,16000050,16200001|类名:ServiceExtensionContext;
方法or属性:stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000011,16000050,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:terminateSelf(callback: AsyncCallback\): void;
旧版本信息:401,16000001,16000004,16000005,16000009,16000011,16000050|类名:ServiceExtensionContext;
方法or属性:terminateSelf(callback: AsyncCallback\): void;
新版本信息:401,16000009,16000011,16000050|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:terminateSelf(): Promise\;
旧版本信息:16000001,16000004,16000005,16000009,16000011,16000050|类名:ServiceExtensionContext;
方法or属性:terminateSelf(): Promise\;
新版本信息:16000009,16000011,16000050|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:connectServiceExtensionAbility(want: Want, options: ConnectOptions): number;
旧版本信息:201,401,16000001,16000005,16000011,16000050|类名:ServiceExtensionContext;
方法or属性:connectServiceExtensionAbility(want: Want, options: ConnectOptions): number;
新版本信息:201,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000050,16000053,16000055|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:connectServiceExtensionAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number;
旧版本信息:201,202,401,16000001,16000005,16000011,16000050|类名:ServiceExtensionContext;
方法or属性:connectServiceExtensionAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000050,16000053,16000055|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:startAbilityByCall(want: Want): Promise\;
旧版本信息:201,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000050,16200001|类名:ServiceExtensionContext;
方法or属性:startAbilityByCall(want: Want): Promise\;
新版本信息:201,401,16000001,16000002,16000004,16000006,16000008,16000011,16000050|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:startAbilityByCallWithAccount(want: Want, accountId: number): Promise\;
旧版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000050,16200001|类名:ServiceExtensionContext;
方法or属性:startAbilityByCallWithAccount(want: Want, accountId: number): Promise\;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000012,16000013,16000050,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:startRecentAbility(want: Want, callback: AsyncCallback\): void;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:ServiceExtensionContext;
方法or属性:startRecentAbility(want: Want, callback: AsyncCallback\): void;
新版本信息:201,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:startRecentAbility(want: Want, options: StartOptions, callback: AsyncCallback\): void;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:ServiceExtensionContext;
方法or属性:startRecentAbility(want: Want, options: StartOptions, callback: AsyncCallback\): void;
新版本信息:201,401,16000001,16000004,16000005,16000006,16000008,16000009,16000011,16000050,16000053,16000055,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:ServiceExtensionContext;
方法or属性:startRecentAbility(want: Want, options?: StartOptions): Promise\;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:ServiceExtensionContext;
方法or属性:startRecentAbility(want: Want, options?: StartOptions): Promise\;
新版本信息:201,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|ServiceExtensionContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startAbility(want: Want, callback: AsyncCallback\): void;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:UIAbilityContext;
方法or属性:startAbility(want: Want, callback: AsyncCallback\): void;
新版本信息:201,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startAbility(want: Want, options: StartOptions, callback: AsyncCallback\): void;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:UIAbilityContext;
方法or属性:startAbility(want: Want, options: StartOptions, callback: AsyncCallback\): void;
新版本信息:201,401,16000001,16000004,16000005,16000006,16000008,16000009,16000011,16000012,16000013,16000050,16000053,16000055,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startAbility(want: Want, options?: StartOptions): Promise\;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:UIAbilityContext;
方法or属性:startAbility(want: Want, options?: StartOptions): Promise\;
新版本信息:201,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startAbilityByCall(want: Want): Promise\;
旧版本信息:16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000050,16200001,201,401|类名:UIAbilityContext;
方法or属性:startAbilityByCall(want: Want): Promise\;
新版本信息:16000001,16000002,16000004,16000006,16000008,16000011,16000012,16000013,16000050,201,401|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startAbilityByCallWithAccount(want: Want, accountId: number): Promise\;
旧版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000050,16200001|类名:UIAbilityContext;
方法or属性:startAbilityByCallWithAccount(want: Want, accountId: number): Promise\;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000012,16000013,16000050,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
旧版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:UIAbilityContext;
方法or属性:startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback\): void;
旧版本信息:16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001,201,202,401|类名:UIAbilityContext;
方法or属性:startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback\): void;
新版本信息:16000001,16000004,16000005,16000006,16000008,16000009,16000011,16000012,16000013,16000050,16000053,16000055,16200001,201,202,401|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\;
旧版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:UIAbilityContext;
方法or属性:startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startAbilityForResult(want: Want, callback: AsyncCallback\): void;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:UIAbilityContext;
方法or属性:startAbilityForResult(want: Want, callback: AsyncCallback\): void;
新版本信息:201,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback\): void;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:UIAbilityContext;
方法or属性:startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback\): void;
新版本信息:201,401,16000001,16000004,16000005,16000006,16000008,16000009,16000011,16000012,16000013,16000050,16000053,16000055,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startAbilityForResult(want: Want, options?: StartOptions): Promise\;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:UIAbilityContext;
方法or属性:startAbilityForResult(want: Want, options?: StartOptions): Promise\;
新版本信息:201,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startAbilityForResultWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
旧版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:UIAbilityContext;
方法or属性:startAbilityForResultWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startAbilityForResultWithAccount(
want: Want,
accountId: number,
options: StartOptions,
callback: AsyncCallback\
): void;
旧版本信息:16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001,201,202,401|类名:UIAbilityContext;
方法or属性:startAbilityForResultWithAccount(
want: Want,
accountId: number,
options: StartOptions,
callback: AsyncCallback\
): void;
新版本信息:16000001,16000004,16000005,16000006,16000008,16000009,16000011,16000012,16000013,16000050,16000053,16000055,16200001,201,202,401|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\;
旧版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:UIAbilityContext;
方法or属性:startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startServiceExtensionAbility(want: Want, callback: AsyncCallback\): void;
旧版本信息:201,202,401,16000001,16000002,16000005,16000006,16000008,16000011,16000050,16200001|类名:UIAbilityContext;
方法or属性:startServiceExtensionAbility(want: Want, callback: AsyncCallback\): void;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000012,16000013,16000050,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startServiceExtensionAbility(want: Want): Promise\;
旧版本信息:201,202,401,16000001,16000002,16000005,16000006,16000008,16000011,16000050,16200001|类名:UIAbilityContext;
方法or属性:startServiceExtensionAbility(want: Want): Promise\;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000012,16000013,16000050,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
旧版本信息:201,202,401,16000001,16000002,16000005,16000006,16000008,16000011,16000050,16200001|类名:UIAbilityContext;
方法or属性:startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000012,16000013,16000050,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\;
旧版本信息:201,202,401,16000001,16000002,16000005,16000006,16000008,16000011,16000050,16200001|类名:UIAbilityContext;
方法or属性:startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000012,16000013,16000050,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:stopServiceExtensionAbility(want: Want, callback: AsyncCallback\): void;
旧版本信息:202,401,16000001,16000002,16000005,16000006,16000011,16000050,16200001|类名:UIAbilityContext;
方法or属性:stopServiceExtensionAbility(want: Want, callback: AsyncCallback\): void;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000011,16000012,16000013,16000050,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:stopServiceExtensionAbility(want: Want): Promise\;
旧版本信息:202,401,16000001,16000002,16000005,16000006,16000011,16000050,16200001|类名:UIAbilityContext;
方法or属性:stopServiceExtensionAbility(want: Want): Promise\;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000011,16000050,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
旧版本信息:201,202,401,16000001,16000002,16000005,16000006,16000011,16000050,16200001|类名:UIAbilityContext;
方法or属性:stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000011,16000050,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\;
旧版本信息:201,202,401,16000001,16000002,16000005,16000006,16000011,16000050,16200001|类名:UIAbilityContext;
方法or属性:stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000011,16000050,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:terminateSelf(callback: AsyncCallback\): void;
旧版本信息:401,16000001,16000004,16000005,16000009,16000011,16000050|类名:UIAbilityContext;
方法or属性:terminateSelf(callback: AsyncCallback\): void;
新版本信息:401,16000009,16000011,16000050|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:terminateSelf(): Promise\;
旧版本信息:16000001,16000004,16000005,16000009,16000011,16000050|类名:UIAbilityContext;
方法or属性:terminateSelf(): Promise\;
新版本信息:16000009,16000011,16000050|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback\): void;
旧版本信息:401,16000001,16000004,16000005,16000009,16000011,16000050|类名:UIAbilityContext;
方法or属性:terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback\): void;
新版本信息:401,16000009,16000011,16000050|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:terminateSelfWithResult(parameter: AbilityResult): Promise\;
旧版本信息:401,16000001,16000004,16000005,16000009,16000011,16000050|类名:UIAbilityContext;
方法or属性:terminateSelfWithResult(parameter: AbilityResult): Promise\;
新版本信息:401,16000009,16000011,16000050|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:connectServiceExtensionAbility(want: Want, options: ConnectOptions): number;
旧版本信息:201,401,16000001,16000005,16000011,16000050|类名:UIAbilityContext;
方法or属性:connectServiceExtensionAbility(want: Want, options: ConnectOptions): number;
新版本信息:201,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000050,16000053,16000055|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:connectServiceExtensionAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number;
旧版本信息:201,202,401,16000001,16000005,16000011,16000050|类名:UIAbilityContext;
方法or属性:connectServiceExtensionAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number;
新版本信息:201,202,401,16000001,16000002,16000004,16000005,16000006,16000008,16000011,16000050,16000053,16000055|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:setMissionIcon(icon: image.PixelMap, callback: AsyncCallback\): void;
旧版本信息:401,16000011,16000050|类名:UIAbilityContext;
方法or属性:setMissionIcon(icon: image.PixelMap, callback: AsyncCallback\): void;
新版本信息:202,401,16000011,16000050|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:setMissionIcon(icon: image.PixelMap): Promise\;
旧版本信息:401,16000011,16000050|类名:UIAbilityContext;
方法or属性:setMissionIcon(icon: image.PixelMap): Promise\;
新版本信息:202,401,16000011,16000050|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startRecentAbility(want: Want, callback: AsyncCallback\): void;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:UIAbilityContext;
方法or属性:startRecentAbility(want: Want, callback: AsyncCallback\): void;
新版本信息:201,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startRecentAbility(want: Want, options: StartOptions, callback: AsyncCallback\): void;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:UIAbilityContext;
方法or属性:startRecentAbility(want: Want, options: StartOptions, callback: AsyncCallback\): void;
新版本信息:201,401,16000001,16000004,16000005,16000006,16000008,16000009,16000011,16000012,16000013,16000050,16000053,16000055,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:startRecentAbility(want: Want, options?: StartOptions): Promise\;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:UIAbilityContext;
方法or属性:startRecentAbility(want: Want, options?: StartOptions): Promise\;
新版本信息:201,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:requestDialogService(want: Want, result: AsyncCallback\): void;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:UIAbilityContext;
方法or属性:requestDialogService(want: Want, result: AsyncCallback\): void;
新版本信息:201,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|UIAbilityContext.d.ts| +|错误码有变化|类名:UIAbilityContext;
方法or属性:requestDialogService(want: Want): Promise\;
旧版本信息:401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000050,16000053,16000055,16200001|类名:UIAbilityContext;
方法or属性:requestDialogService(want: Want): Promise\;
新版本信息:201,401,16000001,16000002,16000004,16000005,16000006,16000008,16000009,16000010,16000011,16000012,16000013,16000050,16000053,16000055,16200001|UIAbilityContext.d.ts| +|访问级别有变化|类名:WindowMode;
方法or属性:WINDOW_MODE_UNDEFINED = 0
旧版本信息:|类名:WindowMode;
方法or属性:WINDOW_MODE_UNDEFINED = 0
新版本信息:systemapi|@ohos.app.ability.AbilityConstant.d.ts| +|访问级别有变化|类名:WindowMode;
方法or属性:WINDOW_MODE_FULLSCREEN = 1
旧版本信息:|类名:WindowMode;
方法or属性:WINDOW_MODE_FULLSCREEN = 1
新版本信息:systemapi|@ohos.app.ability.AbilityConstant.d.ts| +|访问级别有变化|类名:WindowMode;
方法or属性:WINDOW_MODE_SPLIT_PRIMARY = 100
旧版本信息:|类名:WindowMode;
方法or属性:WINDOW_MODE_SPLIT_PRIMARY = 100
新版本信息:systemapi|@ohos.app.ability.AbilityConstant.d.ts| +|访问级别有变化|类名:WindowMode;
方法or属性:WINDOW_MODE_SPLIT_SECONDARY = 101
旧版本信息:|类名:WindowMode;
方法or属性:WINDOW_MODE_SPLIT_SECONDARY = 101
新版本信息:systemapi|@ohos.app.ability.AbilityConstant.d.ts| +|访问级别有变化|类名:WindowMode;
方法or属性:WINDOW_MODE_FLOATING = 102
旧版本信息:|类名:WindowMode;
方法or属性:WINDOW_MODE_FLOATING = 102
新版本信息:systemapi|@ohos.app.ability.AbilityConstant.d.ts| +|访问级别有变化|类名:AbilityState;
方法or属性:INITIAL = 0
旧版本信息:|类名:AbilityState;
方法or属性:INITIAL = 0
新版本信息:systemapi|@ohos.app.ability.abilityManager.d.ts| +|访问级别有变化|类名:AbilityState;
方法or属性:FOCUS = 2
旧版本信息:|类名:AbilityState;
方法or属性:FOCUS = 2
新版本信息:systemapi|@ohos.app.ability.abilityManager.d.ts| +|访问级别有变化|类名:AbilityState;
方法or属性:FOREGROUND = 9
旧版本信息:|类名:AbilityState;
方法or属性:FOREGROUND = 9
新版本信息:systemapi|@ohos.app.ability.abilityManager.d.ts| +|访问级别有变化|类名:AbilityState;
方法or属性:BACKGROUND = 10
旧版本信息:|类名:AbilityState;
方法or属性:BACKGROUND = 10
新版本信息:systemapi|@ohos.app.ability.abilityManager.d.ts| +|访问级别有变化|类名:AbilityState;
方法or属性:FOREGROUNDING = 11
旧版本信息:|类名:AbilityState;
方法or属性:FOREGROUNDING = 11
新版本信息:systemapi|@ohos.app.ability.abilityManager.d.ts| +|访问级别有变化|类名:AbilityState;
方法or属性:BACKGROUNDING = 12
旧版本信息:|类名:AbilityState;
方法or属性:BACKGROUNDING = 12
新版本信息:systemapi|@ohos.app.ability.abilityManager.d.ts| +|访问级别有变化|类名:ApplicationState;
方法or属性:STATE_CREATE
旧版本信息:|类名:ApplicationState;
方法or属性:STATE_CREATE
新版本信息:systemapi|@ohos.app.ability.appManager.d.ts| +|访问级别有变化|类名:ProcessState;
方法or属性:STATE_CREATE
旧版本信息:|类名:ProcessState;
方法or属性:STATE_CREATE
新版本信息:systemapi|@ohos.app.ability.appManager.d.ts| +|访问级别有变化|类名:ApplicationState;
方法or属性:STATE_FOREGROUND
旧版本信息:|类名:ApplicationState;
方法or属性:STATE_FOREGROUND
新版本信息:systemapi|@ohos.app.ability.appManager.d.ts| +|访问级别有变化|类名:ProcessState;
方法or属性:STATE_FOREGROUND
旧版本信息:|类名:ProcessState;
方法or属性:STATE_FOREGROUND
新版本信息:systemapi|@ohos.app.ability.appManager.d.ts| +|访问级别有变化|类名:ApplicationState;
方法or属性:STATE_ACTIVE
旧版本信息:|类名:ApplicationState;
方法or属性:STATE_ACTIVE
新版本信息:systemapi|@ohos.app.ability.appManager.d.ts| +|访问级别有变化|类名:ProcessState;
方法or属性:STATE_ACTIVE
旧版本信息:|类名:ProcessState;
方法or属性:STATE_ACTIVE
新版本信息:systemapi|@ohos.app.ability.appManager.d.ts| +|访问级别有变化|类名:ApplicationState;
方法or属性:STATE_BACKGROUND
旧版本信息:|类名:ApplicationState;
方法or属性:STATE_BACKGROUND
新版本信息:systemapi|@ohos.app.ability.appManager.d.ts| +|访问级别有变化|类名:ProcessState;
方法or属性:STATE_BACKGROUND
旧版本信息:|类名:ProcessState;
方法or属性:STATE_BACKGROUND
新版本信息:systemapi|@ohos.app.ability.appManager.d.ts| +|访问级别有变化|类名:ApplicationState;
方法or属性:STATE_DESTROY
旧版本信息:|类名:ApplicationState;
方法or属性:STATE_DESTROY
新版本信息:systemapi|@ohos.app.ability.appManager.d.ts| +|访问级别有变化|类名:ProcessState;
方法or属性:STATE_DESTROY
旧版本信息:|类名:ProcessState;
方法or属性:STATE_DESTROY
新版本信息:systemapi|@ohos.app.ability.appManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function on(type: 'mission', listener: MissionListener): number;
旧版本信息:|类名:missionManager;
方法or属性:function on(type: 'mission', listener: MissionListener): number;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function off(type: 'mission', listenerId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function off(type: 'mission', listenerId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function off(type: 'mission', listenerId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function off(type: 'mission', listenerId: number): Promise\;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function getMissionInfo(deviceId: string, missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionInfo(deviceId: string, missionId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function getMissionInfo(deviceId: string, missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionInfo(deviceId: string, missionId: number): Promise\;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function getMissionInfos(deviceId: string, numMax: number, callback: AsyncCallback\>): void;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionInfos(deviceId: string, numMax: number, callback: AsyncCallback\>): void;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function getMissionInfos(deviceId: string, numMax: number): Promise\>;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionInfos(deviceId: string, numMax: number): Promise\>;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function getMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function getMissionSnapShot(deviceId: string, missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionSnapShot(deviceId: string, missionId: number): Promise\;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function getLowResolutionMissionSnapShot(
deviceId: string,
missionId: number,
callback: AsyncCallback\
): void;
旧版本信息:|类名:missionManager;
方法or属性:function getLowResolutionMissionSnapShot(
deviceId: string,
missionId: number,
callback: AsyncCallback\
): void;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function getLowResolutionMissionSnapShot(deviceId: string, missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function getLowResolutionMissionSnapShot(deviceId: string, missionId: number): Promise\;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function lockMission(missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function lockMission(missionId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function lockMission(missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function lockMission(missionId: number): Promise\;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function unlockMission(missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function unlockMission(missionId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function unlockMission(missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function unlockMission(missionId: number): Promise\;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function clearMission(missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function clearMission(missionId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function clearMission(missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function clearMission(missionId: number): Promise\;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function clearAllMissions(callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function clearAllMissions(callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function clearAllMissions(): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function clearAllMissions(): Promise\;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, options: StartOptions, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, options: StartOptions, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, options?: StartOptions): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, options?: StartOptions): Promise\;
新版本信息:systemapi|@ohos.app.ability.missionManager.d.ts| +|访问级别有变化|类名:abilityManager;
方法or属性:function updateConfiguration(config: Configuration): Promise\;
旧版本信息:|类名:abilityManager;
方法or属性:function updateConfiguration(config: Configuration): Promise\;
新版本信息:systemapi|@ohos.application.abilityManager.d.ts| +|访问级别有变化|类名:abilityManager;
方法or属性:function getAbilityRunningInfos(callback: AsyncCallback\>): void;
旧版本信息:|类名:abilityManager;
方法or属性:function getAbilityRunningInfos(callback: AsyncCallback\>): void;
新版本信息:systemapi|@ohos.application.abilityManager.d.ts| +|访问级别有变化|类名:AbilityState;
方法or属性:INITIAL = 0
旧版本信息:|类名:AbilityState;
方法or属性:INITIAL = 0
新版本信息:systemapi|@ohos.application.abilityManager.d.ts| +|访问级别有变化|类名:AbilityState;
方法or属性:FOREGROUND = 9
旧版本信息:|类名:AbilityState;
方法or属性:FOREGROUND = 9
新版本信息:systemapi|@ohos.application.abilityManager.d.ts| +|访问级别有变化|类名:AbilityState;
方法or属性:BACKGROUND = 10
旧版本信息:|类名:AbilityState;
方法or属性:BACKGROUND = 10
新版本信息:systemapi|@ohos.application.abilityManager.d.ts| +|访问级别有变化|类名:AbilityState;
方法or属性:FOREGROUNDING = 11
旧版本信息:|类名:AbilityState;
方法or属性:FOREGROUNDING = 11
新版本信息:systemapi|@ohos.application.abilityManager.d.ts| +|访问级别有变化|类名:AbilityState;
方法or属性:BACKGROUNDING = 12
旧版本信息:|类名:AbilityState;
方法or属性:BACKGROUNDING = 12
新版本信息:systemapi|@ohos.application.abilityManager.d.ts| +|访问级别有变化|类名:appManager;
方法or属性:function unregisterApplicationStateObserver(observerId: number): Promise\;
旧版本信息:|类名:appManager;
方法or属性:function unregisterApplicationStateObserver(observerId: number): Promise\;
新版本信息:systemapi|@ohos.application.appManager.d.ts| +|访问级别有变化|类名:appManager;
方法or属性:function getForegroundApplications(): Promise\>;
旧版本信息:|类名:appManager;
方法or属性:function getForegroundApplications(): Promise\>;
新版本信息:systemapi|@ohos.application.appManager.d.ts| +|访问级别有变化|类名:appManager;
方法or属性:function killProcessWithAccount(bundleName: string, accountId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:appManager;
方法or属性:function killProcessWithAccount(bundleName: string, accountId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.appManager.d.ts| +|访问级别有变化|类名:appManager;
方法or属性:function killProcessesByBundleName(bundleName: string, callback: AsyncCallback\);
旧版本信息:|类名:appManager;
方法or属性:function killProcessesByBundleName(bundleName: string, callback: AsyncCallback\);
新版本信息:systemapi|@ohos.application.appManager.d.ts| +|访问级别有变化|类名:appManager;
方法or属性:function clearUpApplicationData(bundleName: string, callback: AsyncCallback\);
旧版本信息:|类名:appManager;
方法or属性:function clearUpApplicationData(bundleName: string, callback: AsyncCallback\);
新版本信息:systemapi|@ohos.application.appManager.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function deleteForm(formId: string, callback: AsyncCallback\): void;
旧版本信息:|类名:formHost;
方法or属性:function deleteForm(formId: string, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function deleteForm(formId: string): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function deleteForm(formId: string): Promise\;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function releaseForm(formId: string, callback: AsyncCallback\): void;
旧版本信息:|类名:formHost;
方法or属性:function releaseForm(formId: string, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function releaseForm(formId: string, isReleaseCache: boolean, callback: AsyncCallback\): void;
旧版本信息:|类名:formHost;
方法or属性:function releaseForm(formId: string, isReleaseCache: boolean, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function releaseForm(formId: string, isReleaseCache?: boolean): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function releaseForm(formId: string, isReleaseCache?: boolean): Promise\;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function requestForm(formId: string, callback: AsyncCallback\): void;
旧版本信息:|类名:formHost;
方法or属性:function requestForm(formId: string, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function requestForm(formId: string): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function requestForm(formId: string): Promise\;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function castTempForm(formId: string, callback: AsyncCallback\): void;
旧版本信息:|类名:formHost;
方法or属性:function castTempForm(formId: string, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function castTempForm(formId: string): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function castTempForm(formId: string): Promise\;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function notifyVisibleForms(formIds: Array\, callback: AsyncCallback\): void;
旧版本信息:|类名:formHost;
方法or属性:function notifyVisibleForms(formIds: Array\, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function notifyVisibleForms(formIds: Array\): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function notifyVisibleForms(formIds: Array\): Promise\;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function notifyInvisibleForms(formIds: Array\, callback: AsyncCallback\): void;
旧版本信息:|类名:formHost;
方法or属性:function notifyInvisibleForms(formIds: Array\, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function notifyInvisibleForms(formIds: Array\): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function notifyInvisibleForms(formIds: Array\): Promise\;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function enableFormsUpdate(formIds: Array\, callback: AsyncCallback\): void;
旧版本信息:|类名:formHost;
方法or属性:function enableFormsUpdate(formIds: Array\, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function enableFormsUpdate(formIds: Array\): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function enableFormsUpdate(formIds: Array\): Promise\;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function disableFormsUpdate(formIds: Array\, callback: AsyncCallback\): void;
旧版本信息:|类名:formHost;
方法or属性:function disableFormsUpdate(formIds: Array\, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function disableFormsUpdate(formIds: Array\): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function disableFormsUpdate(formIds: Array\): Promise\;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function isSystemReady(callback: AsyncCallback\): void;
旧版本信息:|类名:formHost;
方法or属性:function isSystemReady(callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function isSystemReady(): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function isSystemReady(): Promise\;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function getAllFormsInfo(callback: AsyncCallback\>): void;
旧版本信息:|类名:formHost;
方法or属性:function getAllFormsInfo(callback: AsyncCallback\>): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function getAllFormsInfo(): Promise\>;
旧版本信息:|类名:formHost;
方法or属性:function getAllFormsInfo(): Promise\>;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function getFormsInfo(bundleName: string, callback: AsyncCallback\>): void;
旧版本信息:|类名:formHost;
方法or属性:function getFormsInfo(bundleName: string, callback: AsyncCallback\>): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function getFormsInfo(
bundleName: string,
moduleName: string,
callback: AsyncCallback\>
): void;
旧版本信息:|类名:formHost;
方法or属性:function getFormsInfo(
bundleName: string,
moduleName: string,
callback: AsyncCallback\>
): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function getFormsInfo(bundleName: string, moduleName?: string): Promise\>;
旧版本信息:|类名:formHost;
方法or属性:function getFormsInfo(bundleName: string, moduleName?: string): Promise\>;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function deleteInvalidForms(formIds: Array\, callback: AsyncCallback\): void;
旧版本信息:|类名:formHost;
方法or属性:function deleteInvalidForms(formIds: Array\, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function deleteInvalidForms(formIds: Array\): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function deleteInvalidForms(formIds: Array\): Promise\;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function acquireFormState(want: Want, callback: AsyncCallback\): void;
旧版本信息:|类名:formHost;
方法or属性:function acquireFormState(want: Want, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function acquireFormState(want: Want): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function acquireFormState(want: Want): Promise\;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function on(type: 'formUninstall', callback: Callback\): void;
旧版本信息:|类名:formHost;
方法or属性:function on(type: 'formUninstall', callback: Callback\): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function off(type: 'formUninstall', callback?: Callback\): void;
旧版本信息:|类名:formHost;
方法or属性:function off(type: 'formUninstall', callback?: Callback\): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function notifyFormsVisible(formIds: Array\, isVisible: boolean, callback: AsyncCallback\): void;
旧版本信息:|类名:formHost;
方法or属性:function notifyFormsVisible(formIds: Array\, isVisible: boolean, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function notifyFormsVisible(formIds: Array\, isVisible: boolean): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function notifyFormsVisible(formIds: Array\, isVisible: boolean): Promise\;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function notifyFormsEnableUpdate(
formIds: Array\,
isEnableUpdate: boolean,
callback: AsyncCallback\
): void;
旧版本信息:|类名:formHost;
方法or属性:function notifyFormsEnableUpdate(
formIds: Array\,
isEnableUpdate: boolean,
callback: AsyncCallback\
): void;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:formHost;
方法or属性:function notifyFormsEnableUpdate(formIds: Array\, isEnableUpdate: boolean): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function notifyFormsEnableUpdate(formIds: Array\, isEnableUpdate: boolean): Promise\;
新版本信息:systemapi|@ohos.application.formHost.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function registerMissionListener(listener: MissionListener): number;
旧版本信息:|类名:missionManager;
方法or属性:function registerMissionListener(listener: MissionListener): number;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function unregisterMissionListener(listenerId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function unregisterMissionListener(listenerId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function unregisterMissionListener(listenerId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function unregisterMissionListener(listenerId: number): Promise\;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function getMissionInfo(deviceId: string, missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionInfo(deviceId: string, missionId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function getMissionInfo(deviceId: string, missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionInfo(deviceId: string, missionId: number): Promise\;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function getMissionInfos(deviceId: string, numMax: number, callback: AsyncCallback\>): void;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionInfos(deviceId: string, numMax: number, callback: AsyncCallback\>): void;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function getMissionInfos(deviceId: string, numMax: number): Promise\>;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionInfos(deviceId: string, numMax: number): Promise\>;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function getMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function getMissionSnapShot(deviceId: string, missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionSnapShot(deviceId: string, missionId: number): Promise\;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function lockMission(missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function lockMission(missionId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function lockMission(missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function lockMission(missionId: number): Promise\;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function unlockMission(missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function unlockMission(missionId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function unlockMission(missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function unlockMission(missionId: number): Promise\;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function clearMission(missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function clearMission(missionId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function clearMission(missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function clearMission(missionId: number): Promise\;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function clearAllMissions(callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function clearAllMissions(callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function clearAllMissions(): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function clearAllMissions(): Promise\;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, options: StartOptions, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, options: StartOptions, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, options?: StartOptions): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, options?: StartOptions): Promise\;
新版本信息:systemapi|@ohos.application.missionManager.d.ts| +|访问级别有变化|类名:distributedMissionManager;
方法or属性:function startSyncRemoteMissions(parameter: MissionParameter): Promise\;
旧版本信息:|类名:distributedMissionManager;
方法or属性:function startSyncRemoteMissions(parameter: MissionParameter): Promise\;
新版本信息:systemapi|@ohos.distributedMissionManager.d.ts| +|访问级别有变化|类名:distributedMissionManager;
方法or属性:function stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise\;
旧版本信息:|类名:distributedMissionManager;
方法or属性:function stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise\;
新版本信息:systemapi|@ohos.distributedMissionManager.d.ts| +|访问级别有变化|类名:distributedMissionManager;
方法or属性:function registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback): Promise\;
旧版本信息:|类名:distributedMissionManager;
方法or属性:function registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback): Promise\;
新版本信息:systemapi|@ohos.distributedMissionManager.d.ts| +|访问级别有变化|类名:distributedMissionManager;
方法or属性:function unRegisterMissionListener(parameter: MissionDeviceInfo): Promise\;
旧版本信息:|类名:distributedMissionManager;
方法or属性:function unRegisterMissionListener(parameter: MissionDeviceInfo): Promise\;
新版本信息:systemapi|@ohos.distributedMissionManager.d.ts| +|访问级别有变化|类名:distributedMissionManager;
方法or属性:function continueMission(parameter: ContinueDeviceInfo, options: ContinueCallback): Promise\;
旧版本信息:|类名:distributedMissionManager;
方法or属性:function continueMission(parameter: ContinueDeviceInfo, options: ContinueCallback): Promise\;
新版本信息:systemapi|@ohos.distributedMissionManager.d.ts| +|访问级别有变化|类名:ContinueCallback;
方法or属性:onContinueDone(result: number): void;
旧版本信息:|类名:ContinueCallback;
方法or属性:onContinueDone(result: number): void;
新版本信息:systemapi|ContinueCallback.d.ts| +|访问级别有变化|类名:ContinueDeviceInfo;
方法or属性:srcDeviceId: string;
旧版本信息:|类名:ContinueDeviceInfo;
方法or属性:srcDeviceId: string;
新版本信息:systemapi|ContinueDeviceInfo.d.ts| +|访问级别有变化|类名:ContinueDeviceInfo;
方法or属性:dstDeviceId: string;
旧版本信息:|类名:ContinueDeviceInfo;
方法or属性:dstDeviceId: string;
新版本信息:systemapi|ContinueDeviceInfo.d.ts| +|访问级别有变化|类名:ContinueDeviceInfo;
方法or属性:missionId: number;
旧版本信息:|类名:ContinueDeviceInfo;
方法or属性:missionId: number;
新版本信息:systemapi|ContinueDeviceInfo.d.ts| +|访问级别有变化|类名:ContinueDeviceInfo;
方法or属性:wantParam: { [key: string]: any };
旧版本信息:|类名:ContinueDeviceInfo;
方法or属性:wantParam: { [key: string]: any };
新版本信息:systemapi|ContinueDeviceInfo.d.ts| +|访问级别有变化|类名:MissionCallback;
方法or属性:notifyMissionsChanged(deviceId: string): void;
旧版本信息:|类名:MissionCallback;
方法or属性:notifyMissionsChanged(deviceId: string): void;
新版本信息:systemapi|MissionCallbacks.d.ts| +|访问级别有变化|类名:MissionCallback;
方法or属性:notifySnapshot(deviceId: string, mission: number): void;
旧版本信息:|类名:MissionCallback;
方法or属性:notifySnapshot(deviceId: string, mission: number): void;
新版本信息:systemapi|MissionCallbacks.d.ts| +|访问级别有变化|类名:MissionCallback;
方法or属性:notifyNetDisconnect(deviceId: string, state: number): void;
旧版本信息:|类名:MissionCallback;
方法or属性:notifyNetDisconnect(deviceId: string, state: number): void;
新版本信息:systemapi|MissionCallbacks.d.ts| +|访问级别有变化|类名:MissionDeviceInfo;
方法or属性:deviceId: string;
旧版本信息:|类名:MissionDeviceInfo;
方法or属性:deviceId: string;
新版本信息:systemapi|MissionDeviceInfo.d.ts| +|访问级别有变化|类名:MissionInfo;
方法or属性:missionId: number;
旧版本信息:|类名:MissionInfo;
方法or属性:missionId: number;
新版本信息:systemapi|MissionInfo.d.ts| +|访问级别有变化|类名:MissionInfo;
方法or属性:runningState: number;
旧版本信息:|类名:MissionInfo;
方法or属性:runningState: number;
新版本信息:systemapi|MissionInfo.d.ts| +|访问级别有变化|类名:MissionInfo;
方法or属性:lockedState: boolean;
旧版本信息:|类名:MissionInfo;
方法or属性:lockedState: boolean;
新版本信息:systemapi|MissionInfo.d.ts| +|访问级别有变化|类名:MissionInfo;
方法or属性:timestamp: string;
旧版本信息:|类名:MissionInfo;
方法or属性:timestamp: string;
新版本信息:systemapi|MissionInfo.d.ts| +|访问级别有变化|类名:MissionInfo;
方法or属性:want: Want;
旧版本信息:|类名:MissionInfo;
方法or属性:want: Want;
新版本信息:systemapi|MissionInfo.d.ts| +|访问级别有变化|类名:MissionInfo;
方法or属性:label: string;
旧版本信息:|类名:MissionInfo;
方法or属性:label: string;
新版本信息:systemapi|MissionInfo.d.ts| +|访问级别有变化|类名:MissionInfo;
方法or属性:iconPath: string;
旧版本信息:|类名:MissionInfo;
方法or属性:iconPath: string;
新版本信息:systemapi|MissionInfo.d.ts| +|访问级别有变化|类名:MissionInfo;
方法or属性:continuable: boolean;
旧版本信息:|类名:MissionInfo;
方法or属性:continuable: boolean;
新版本信息:systemapi|MissionInfo.d.ts| +|访问级别有变化|类名:MissionListener;
方法or属性:onMissionCreated(mission: number): void;
旧版本信息:|类名:MissionListener;
方法or属性:onMissionCreated(mission: number): void;
新版本信息:systemapi|MissionListener.d.ts| +|访问级别有变化|类名:MissionListener;
方法or属性:onMissionDestroyed(mission: number): void;
旧版本信息:|类名:MissionListener;
方法or属性:onMissionDestroyed(mission: number): void;
新版本信息:systemapi|MissionListener.d.ts| +|访问级别有变化|类名:MissionListener;
方法or属性:onMissionSnapshotChanged(mission: number): void;
旧版本信息:|类名:MissionListener;
方法or属性:onMissionSnapshotChanged(mission: number): void;
新版本信息:systemapi|MissionListener.d.ts| +|访问级别有变化|类名:MissionListener;
方法or属性:onMissionMovedToFront(mission: number): void;
旧版本信息:|类名:MissionListener;
方法or属性:onMissionMovedToFront(mission: number): void;
新版本信息:systemapi|MissionListener.d.ts| +|访问级别有变化|类名:MissionListener;
方法or属性:onMissionLabelUpdated(mission: number): void;
旧版本信息:|类名:MissionListener;
方法or属性:onMissionLabelUpdated(mission: number): void;
新版本信息:systemapi|MissionListener.d.ts| +|访问级别有变化|类名:MissionListener;
方法or属性:onMissionIconUpdated(mission: number, icon: image.PixelMap): void;
旧版本信息:|类名:MissionListener;
方法or属性:onMissionIconUpdated(mission: number, icon: image.PixelMap): void;
新版本信息:systemapi|MissionListener.d.ts| +|访问级别有变化|类名:MissionListener;
方法or属性:onMissionClosed(mission: number): void;
旧版本信息:|类名:MissionListener;
方法or属性:onMissionClosed(mission: number): void;
新版本信息:systemapi|MissionListener.d.ts| +|访问级别有变化|类名:MissionParameter;
方法or属性:deviceId: string;
旧版本信息:|类名:MissionParameter;
方法or属性:deviceId: string;
新版本信息:systemapi|MissionParameter.d.ts| +|访问级别有变化|类名:MissionParameter;
方法or属性:fixConflict: boolean;
旧版本信息:|类名:MissionParameter;
方法or属性:fixConflict: boolean;
新版本信息:systemapi|MissionParameter.d.ts| +|访问级别有变化|类名:MissionParameter;
方法or属性:tag: number;
旧版本信息:|类名:MissionParameter;
方法or属性:tag: number;
新版本信息:systemapi|MissionParameter.d.ts| +|访问级别有变化|类名:MissionSnapshot;
方法or属性:ability: ElementName;
旧版本信息:|类名:MissionSnapshot;
方法or属性:ability: ElementName;
新版本信息:systemapi|MissionSnapshot.d.ts| +|访问级别有变化|类名:MissionSnapshot;
方法or属性:snapshot: image.PixelMap;
旧版本信息:|类名:MissionSnapshot;
方法or属性:snapshot: image.PixelMap;
新版本信息:systemapi|MissionSnapshot.d.ts| +|访问级别有变化|类名:ServiceExtensionContext;
方法or属性:startAbility(want: Want, callback: AsyncCallback\): void;
旧版本信息:|类名:ServiceExtensionContext;
方法or属性:startAbility(want: Want, callback: AsyncCallback\): void;
新版本信息:systemapi|ServiceExtensionContext.d.ts| +|访问级别有变化|类名:ServiceExtensionContext;
方法or属性:startAbility(want: Want, options: StartOptions, callback: AsyncCallback\): void;
旧版本信息:|类名:ServiceExtensionContext;
方法or属性:startAbility(want: Want, options: StartOptions, callback: AsyncCallback\): void;
新版本信息:systemapi|ServiceExtensionContext.d.ts| +|访问级别有变化|类名:ServiceExtensionContext;
方法or属性:startAbility(want: Want, options?: StartOptions): Promise\;
旧版本信息:|类名:ServiceExtensionContext;
方法or属性:startAbility(want: Want, options?: StartOptions): Promise\;
新版本信息:systemapi|ServiceExtensionContext.d.ts| +|访问级别有变化|类名:ServiceExtensionContext;
方法or属性:terminateSelf(callback: AsyncCallback\): void;
旧版本信息:|类名:ServiceExtensionContext;
方法or属性:terminateSelf(callback: AsyncCallback\): void;
新版本信息:systemapi|ServiceExtensionContext.d.ts| +|访问级别有变化|类名:ServiceExtensionContext;
方法or属性:terminateSelf(): Promise\;
旧版本信息:|类名:ServiceExtensionContext;
方法or属性:terminateSelf(): Promise\;
新版本信息:systemapi|ServiceExtensionContext.d.ts| +|访问级别有变化|类名:ServiceExtensionContext;
方法or属性:connectServiceExtensionAbility(want: Want, options: ConnectOptions): number;
旧版本信息:|类名:ServiceExtensionContext;
方法or属性:connectServiceExtensionAbility(want: Want, options: ConnectOptions): number;
新版本信息:systemapi|ServiceExtensionContext.d.ts| +|访问级别有变化|类名:ServiceExtensionContext;
方法or属性:disconnectServiceExtensionAbility(connection: number, callback: AsyncCallback\): void;
旧版本信息:|类名:ServiceExtensionContext;
方法or属性:disconnectServiceExtensionAbility(connection: number, callback: AsyncCallback\): void;
新版本信息:systemapi|ServiceExtensionContext.d.ts| +|访问级别有变化|类名:ServiceExtensionContext;
方法or属性:disconnectServiceExtensionAbility(connection: number): Promise\;
旧版本信息:|类名:ServiceExtensionContext;
方法or属性:disconnectServiceExtensionAbility(connection: number): Promise\;
新版本信息:systemapi|ServiceExtensionContext.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function on(type: 'mission', listener: MissionListener): number;
旧版本信息:|类名:missionManager;
方法or属性:function on(type: 'mission', listener: MissionListener): number;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function off(type: 'mission', listenerId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function off(type: 'mission', listenerId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function off(type: 'mission', listenerId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function off(type: 'mission', listenerId: number): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function getMissionInfo(deviceId: string, missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionInfo(deviceId: string, missionId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function getMissionInfo(deviceId: string, missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionInfo(deviceId: string, missionId: number): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function getMissionInfos(deviceId: string, numMax: number, callback: AsyncCallback\>): void;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionInfos(deviceId: string, numMax: number, callback: AsyncCallback\>): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function getMissionInfos(deviceId: string, numMax: number): Promise\>;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionInfos(deviceId: string, numMax: number): Promise\>;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function getMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function getMissionSnapShot(deviceId: string, missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionSnapShot(deviceId: string, missionId: number): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function getLowResolutionMissionSnapShot(
deviceId: string,
missionId: number,
callback: AsyncCallback\
): void;
旧版本信息:|类名:missionManager;
方法or属性:function getLowResolutionMissionSnapShot(
deviceId: string,
missionId: number,
callback: AsyncCallback\
): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function getLowResolutionMissionSnapShot(deviceId: string, missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function getLowResolutionMissionSnapShot(deviceId: string, missionId: number): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function lockMission(missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function lockMission(missionId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function lockMission(missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function lockMission(missionId: number): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function unlockMission(missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function unlockMission(missionId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function unlockMission(missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function unlockMission(missionId: number): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function clearMission(missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function clearMission(missionId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function clearMission(missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function clearMission(missionId: number): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function clearAllMissions(callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function clearAllMissions(callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function clearAllMissions(): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function clearAllMissions(): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, options: StartOptions, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, options: StartOptions, callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, options?: StartOptions): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, options?: StartOptions): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:export type MissionInfo = _MissionInfo;
旧版本信息:|类名:missionManager;
方法or属性:export type MissionInfo = _MissionInfo;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:export type MissionListener = _MissionListener;
旧版本信息:|类名:missionManager;
方法or属性:export type MissionListener = _MissionListener;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:export type MissionSnapshot = _MissionSnapshot;
旧版本信息:|类名:missionManager;
方法or属性:export type MissionSnapshot = _MissionSnapshot;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.app.ability.missionManager.d.ts| +|权限有变化|类名:abilityManager;
方法or属性:function updateConfiguration(config: Configuration): Promise\;
旧版本信息:|类名:abilityManager;
方法or属性:function updateConfiguration(config: Configuration): Promise\;
新版本信息:ohos.permission.UPDATE_CONFIGURATION|@ohos.application.abilityManager.d.ts| +|权限有变化|类名:abilityManager;
方法or属性:function getAbilityRunningInfos(callback: AsyncCallback\>): void;
旧版本信息:|类名:abilityManager;
方法or属性:function getAbilityRunningInfos(callback: AsyncCallback\>): void;
新版本信息:ohos.permission.GET_RUNNING_INFO|@ohos.application.abilityManager.d.ts| +|权限有变化|类名:appManager;
方法or属性:function unregisterApplicationStateObserver(observerId: number): Promise\;
旧版本信息:|类名:appManager;
方法or属性:function unregisterApplicationStateObserver(observerId: number): Promise\;
新版本信息:ohos.permission.RUNNING_STATE_OBSERVER|@ohos.application.appManager.d.ts| +|权限有变化|类名:appManager;
方法or属性:function getForegroundApplications(): Promise\>;
旧版本信息:|类名:appManager;
方法or属性:function getForegroundApplications(): Promise\>;
新版本信息:ohos.permission.GET_RUNNING_INFO|@ohos.application.appManager.d.ts| +|权限有变化|类名:appManager;
方法or属性:function killProcessWithAccount(bundleName: string, accountId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:appManager;
方法or属性:function killProcessWithAccount(bundleName: string, accountId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS,ohos.permission.CLEAN_BACKGROUND_PROCESSES|@ohos.application.appManager.d.ts| +|权限有变化|类名:appManager;
方法or属性:function getProcessRunningInfos(callback: AsyncCallback\>): void;
旧版本信息:|类名:appManager;
方法or属性:function getProcessRunningInfos(callback: AsyncCallback\>): void;
新版本信息:ohos.permission.GET_RUNNING_INFO|@ohos.application.appManager.d.ts| +|权限有变化|类名:appManager;
方法or属性:function killProcessesByBundleName(bundleName: string, callback: AsyncCallback\);
旧版本信息:|类名:appManager;
方法or属性:function killProcessesByBundleName(bundleName: string, callback: AsyncCallback\);
新版本信息:ohos.permission.CLEAN_BACKGROUND_PROCESSES|@ohos.application.appManager.d.ts| +|权限有变化|类名:appManager;
方法or属性:function clearUpApplicationData(bundleName: string, callback: AsyncCallback\);
旧版本信息:|类名:appManager;
方法or属性:function clearUpApplicationData(bundleName: string, callback: AsyncCallback\);
新版本信息:ohos.permission.CLEAN_APPLICATION_DATA|@ohos.application.appManager.d.ts| +|权限有变化|类名:formHost;
方法or属性:function deleteForm(formId: string): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function deleteForm(formId: string): Promise\;
新版本信息:ohos.permission.REQUIRE_FORM|@ohos.application.formHost.d.ts| +|权限有变化|类名:formHost;
方法or属性:function releaseForm(formId: string, isReleaseCache: boolean, callback: AsyncCallback\): void;
旧版本信息:|类名:formHost;
方法or属性:function releaseForm(formId: string, isReleaseCache: boolean, callback: AsyncCallback\): void;
新版本信息:ohos.permission.REQUIRE_FORM|@ohos.application.formHost.d.ts| +|权限有变化|类名:formHost;
方法or属性:function releaseForm(formId: string, isReleaseCache?: boolean): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function releaseForm(formId: string, isReleaseCache?: boolean): Promise\;
新版本信息:ohos.permission.REQUIRE_FORM|@ohos.application.formHost.d.ts| +|权限有变化|类名:formHost;
方法or属性:function requestForm(formId: string): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function requestForm(formId: string): Promise\;
新版本信息:ohos.permission.REQUIRE_FORM|@ohos.application.formHost.d.ts| +|权限有变化|类名:formHost;
方法or属性:function castTempForm(formId: string): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function castTempForm(formId: string): Promise\;
新版本信息:ohos.permission.REQUIRE_FORM|@ohos.application.formHost.d.ts| +|权限有变化|类名:formHost;
方法or属性:function notifyVisibleForms(formIds: Array\): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function notifyVisibleForms(formIds: Array\): Promise\;
新版本信息:ohos.permission.REQUIRE_FORM|@ohos.application.formHost.d.ts| +|权限有变化|类名:formHost;
方法or属性:function notifyInvisibleForms(formIds: Array\): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function notifyInvisibleForms(formIds: Array\): Promise\;
新版本信息:ohos.permission.REQUIRE_FORM|@ohos.application.formHost.d.ts| +|权限有变化|类名:formHost;
方法or属性:function enableFormsUpdate(formIds: Array\): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function enableFormsUpdate(formIds: Array\): Promise\;
新版本信息:ohos.permission.REQUIRE_FORM|@ohos.application.formHost.d.ts| +|权限有变化|类名:formHost;
方法or属性:function disableFormsUpdate(formIds: Array\): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function disableFormsUpdate(formIds: Array\): Promise\;
新版本信息:ohos.permission.REQUIRE_FORM|@ohos.application.formHost.d.ts| +|权限有变化|类名:formHost;
方法or属性:function getAllFormsInfo(): Promise\>;
旧版本信息:|类名:formHost;
方法or属性:function getAllFormsInfo(): Promise\>;
新版本信息:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED|@ohos.application.formHost.d.ts| +|权限有变化|类名:formHost;
方法or属性:function getFormsInfo(
bundleName: string,
moduleName: string,
callback: AsyncCallback\>
): void;
旧版本信息:|类名:formHost;
方法or属性:function getFormsInfo(
bundleName: string,
moduleName: string,
callback: AsyncCallback\>
): void;
新版本信息:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED|@ohos.application.formHost.d.ts| +|权限有变化|类名:formHost;
方法or属性:function getFormsInfo(bundleName: string, moduleName?: string): Promise\>;
旧版本信息:|类名:formHost;
方法or属性:function getFormsInfo(bundleName: string, moduleName?: string): Promise\>;
新版本信息:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED|@ohos.application.formHost.d.ts| +|权限有变化|类名:formHost;
方法or属性:function deleteInvalidForms(formIds: Array\): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function deleteInvalidForms(formIds: Array\): Promise\;
新版本信息:ohos.permission.REQUIRE_FORM|@ohos.application.formHost.d.ts| +|权限有变化|类名:formHost;
方法or属性:function acquireFormState(want: Want): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function acquireFormState(want: Want): Promise\;
新版本信息:ohos.permission.REQUIRE_FORM,ohos.permission.GET_BUNDLE_INFO_PRIVILEGED|@ohos.application.formHost.d.ts| +|权限有变化|类名:formHost;
方法or属性:function notifyFormsVisible(formIds: Array\, isVisible: boolean): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function notifyFormsVisible(formIds: Array\, isVisible: boolean): Promise\;
新版本信息:ohos.permission.REQUIRE_FORM|@ohos.application.formHost.d.ts| +|权限有变化|类名:formHost;
方法or属性:function notifyFormsEnableUpdate(formIds: Array\, isEnableUpdate: boolean): Promise\;
旧版本信息:|类名:formHost;
方法or属性:function notifyFormsEnableUpdate(formIds: Array\, isEnableUpdate: boolean): Promise\;
新版本信息:ohos.permission.REQUIRE_FORM|@ohos.application.formHost.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function registerMissionListener(listener: MissionListener): number;
旧版本信息:|类名:missionManager;
方法or属性:function registerMissionListener(listener: MissionListener): number;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function unregisterMissionListener(listenerId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function unregisterMissionListener(listenerId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function unregisterMissionListener(listenerId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function unregisterMissionListener(listenerId: number): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function getMissionInfo(deviceId: string, missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionInfo(deviceId: string, missionId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function getMissionInfo(deviceId: string, missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionInfo(deviceId: string, missionId: number): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function getMissionInfos(deviceId: string, numMax: number, callback: AsyncCallback\>): void;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionInfos(deviceId: string, numMax: number, callback: AsyncCallback\>): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function getMissionInfos(deviceId: string, numMax: number): Promise\>;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionInfos(deviceId: string, numMax: number): Promise\>;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function getMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function getMissionSnapShot(deviceId: string, missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function getMissionSnapShot(deviceId: string, missionId: number): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function lockMission(missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function lockMission(missionId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function lockMission(missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function lockMission(missionId: number): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function unlockMission(missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function unlockMission(missionId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function unlockMission(missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function unlockMission(missionId: number): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function clearMission(missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function clearMission(missionId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function clearMission(missionId: number): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function clearMission(missionId: number): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function clearAllMissions(callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function clearAllMissions(callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function clearAllMissions(): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function clearAllMissions(): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, options: StartOptions, callback: AsyncCallback\): void;
旧版本信息:|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, options: StartOptions, callback: AsyncCallback\): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, options?: StartOptions): Promise\;
旧版本信息:|类名:missionManager;
方法or属性:function moveMissionToFront(missionId: number, options?: StartOptions): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.application.missionManager.d.ts| +|权限有变化|类名:continuationManager;
方法or属性:function off(type: 'deviceSelected', token: number): void;
旧版本信息:|类名:continuationManager;
方法or属性:function off(type: 'deviceSelected', token: number): void;
新版本信息:ohos.permission.DISTRIBUTED_DATASYNC|@ohos.continuation.continuationManager.d.ts| +|权限有变化|类名:continuationManager;
方法or属性:function off(type: 'deviceUnselected', token: number): void;
旧版本信息:|类名:continuationManager;
方法or属性:function off(type: 'deviceUnselected', token: number): void;
新版本信息:ohos.permission.DISTRIBUTED_DATASYNC|@ohos.continuation.continuationManager.d.ts| +|权限有变化|类名:continuationManager;
方法or属性:function registerContinuation(options: ContinuationExtraParams, callback: AsyncCallback\): void;
旧版本信息:|类名:continuationManager;
方法or属性:function registerContinuation(options: ContinuationExtraParams, callback: AsyncCallback\): void;
新版本信息:ohos.permission.DISTRIBUTED_DATASYNC|@ohos.continuation.continuationManager.d.ts| +|权限有变化|类名:continuationManager;
方法or属性:function registerContinuation(options?: ContinuationExtraParams): Promise\;
旧版本信息:|类名:continuationManager;
方法or属性:function registerContinuation(options?: ContinuationExtraParams): Promise\;
新版本信息:ohos.permission.DISTRIBUTED_DATASYNC|@ohos.continuation.continuationManager.d.ts| +|权限有变化|类名:continuationManager;
方法or属性:function unregisterContinuation(token: number): Promise\;
旧版本信息:|类名:continuationManager;
方法or属性:function unregisterContinuation(token: number): Promise\;
新版本信息:ohos.permission.DISTRIBUTED_DATASYNC|@ohos.continuation.continuationManager.d.ts| +|权限有变化|类名:continuationManager;
方法or属性:function updateContinuationState(token: number, deviceId: string, status: DeviceConnectState): Promise\;
旧版本信息:|类名:continuationManager;
方法or属性:function updateContinuationState(token: number, deviceId: string, status: DeviceConnectState): Promise\;
新版本信息:ohos.permission.DISTRIBUTED_DATASYNC|@ohos.continuation.continuationManager.d.ts| +|权限有变化|类名:continuationManager;
方法or属性:function startContinuationDeviceManager(
token: number,
options: ContinuationExtraParams,
callback: AsyncCallback\
): void;
旧版本信息:|类名:continuationManager;
方法or属性:function startContinuationDeviceManager(
token: number,
options: ContinuationExtraParams,
callback: AsyncCallback\
): void;
新版本信息:ohos.permission.DISTRIBUTED_DATASYNC|@ohos.continuation.continuationManager.d.ts| +|权限有变化|类名:continuationManager;
方法or属性:function startContinuationDeviceManager(token: number, options?: ContinuationExtraParams): Promise\;
旧版本信息:|类名:continuationManager;
方法or属性:function startContinuationDeviceManager(token: number, options?: ContinuationExtraParams): Promise\;
新版本信息:ohos.permission.DISTRIBUTED_DATASYNC|@ohos.continuation.continuationManager.d.ts| +|权限有变化|类名:distributedMissionManager;
方法or属性:function startSyncRemoteMissions(parameter: MissionParameter): Promise\;
旧版本信息:|类名:distributedMissionManager;
方法or属性:function startSyncRemoteMissions(parameter: MissionParameter): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.distributedMissionManager.d.ts| +|权限有变化|类名:distributedMissionManager;
方法or属性:function stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise\;
旧版本信息:|类名:distributedMissionManager;
方法or属性:function stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.distributedMissionManager.d.ts| +|权限有变化|类名:distributedMissionManager;
方法or属性:function registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback): Promise\;
旧版本信息:|类名:distributedMissionManager;
方法or属性:function registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.distributedMissionManager.d.ts| +|权限有变化|类名:distributedMissionManager;
方法or属性:function unRegisterMissionListener(parameter: MissionDeviceInfo): Promise\;
旧版本信息:|类名:distributedMissionManager;
方法or属性:function unRegisterMissionListener(parameter: MissionDeviceInfo): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS|@ohos.distributedMissionManager.d.ts| +|权限有变化|类名:distributedMissionManager;
方法or属性:function continueMission(parameter: ContinueDeviceInfo, options: ContinueCallback): Promise\;
旧版本信息:|类名:distributedMissionManager;
方法or属性:function continueMission(parameter: ContinueDeviceInfo, options: ContinueCallback): Promise\;
新版本信息:ohos.permission.MANAGE_MISSIONS,ohos.permission.DISTRIBUTED_DATASYNC|@ohos.distributedMissionManager.d.ts| +|权限有变化|类名:MissionCallback;
方法or属性:notifyMissionsChanged(deviceId: string): void;
旧版本信息:|类名:MissionCallback;
方法or属性:notifyMissionsChanged(deviceId: string): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|MissionCallbacks.d.ts| +|权限有变化|类名:MissionCallback;
方法or属性:notifySnapshot(deviceId: string, mission: number): void;
旧版本信息:|类名:MissionCallback;
方法or属性:notifySnapshot(deviceId: string, mission: number): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|MissionCallbacks.d.ts| +|权限有变化|类名:MissionCallback;
方法or属性:notifyNetDisconnect(deviceId: string, state: number): void;
旧版本信息:|类名:MissionCallback;
方法or属性:notifyNetDisconnect(deviceId: string, state: number): void;
新版本信息:ohos.permission.MANAGE_MISSIONS|MissionCallbacks.d.ts| +|权限有变化|类名:MissionDeviceInfo;
方法or属性:deviceId: string;
旧版本信息:|类名:MissionDeviceInfo;
方法or属性:deviceId: string;
新版本信息:ohos.permission.MANAGE_MISSIONS|MissionDeviceInfo.d.ts| +|权限有变化|类名:MissionParameter;
方法or属性:deviceId: string;
旧版本信息:|类名:MissionParameter;
方法or属性:deviceId: string;
新版本信息:ohos.permission.MANAGE_MISSIONS|MissionParameter.d.ts| +|权限有变化|类名:MissionParameter;
方法or属性:fixConflict: boolean;
旧版本信息:|类名:MissionParameter;
方法or属性:fixConflict: boolean;
新版本信息:ohos.permission.MANAGE_MISSIONS|MissionParameter.d.ts| +|权限有变化|类名:MissionParameter;
方法or属性:tag: number;
旧版本信息:|类名:MissionParameter;
方法or属性:tag: number;
新版本信息:ohos.permission.MANAGE_MISSIONS|MissionParameter.d.ts| +|权限有变化|类名:ServiceExtensionContext;
方法or属性:startServiceExtensionAbility(want: Want, callback: AsyncCallback\): void;
旧版本信息:ohos.permission.START_INVISIBLE_ABILITY|类名:ServiceExtensionContext;
方法or属性:startServiceExtensionAbility(want: Want, callback: AsyncCallback\): void;
新版本信息:|ServiceExtensionContext.d.ts| +|权限有变化|类名:ServiceExtensionContext;
方法or属性:startServiceExtensionAbility(want: Want): Promise\;
旧版本信息:ohos.permission.START_INVISIBLE_ABILITY|类名:ServiceExtensionContext;
方法or属性:startServiceExtensionAbility(want: Want): Promise\;
新版本信息:|ServiceExtensionContext.d.ts| +|权限有变化|类名:ServiceExtensionContext;
方法or属性:connectServiceExtensionAbility(want: Want, options: ConnectOptions): number;
旧版本信息:ohos.permission.ABILITY_BACKGROUND_COMMUNICATION|类名:ServiceExtensionContext;
方法or属性:connectServiceExtensionAbility(want: Want, options: ConnectOptions): number;
新版本信息:|ServiceExtensionContext.d.ts| +|权限有变化|类名:ServiceExtensionContext;
方法or属性:startAbilityByCallWithAccount(want: Want, accountId: number): Promise\;
旧版本信息:ohos.permission.ABILITY_BACKGROUND_COMMUNICATION,ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS,ohos.permission.START_ABILITIES_FROM_BACKGROUND,ohos.permission.START_INVISIBLE_ABILITY|类名:ServiceExtensionContext;
方法or属性:startAbilityByCallWithAccount(want: Want, accountId: number): Promise\;
新版本信息:ohos.permission.ABILITY_BACKGROUND_COMMUNICATION,ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS|ServiceExtensionContext.d.ts| +|权限有变化|类名:UIAbilityContext;
方法or属性:startAbilityByCallWithAccount(want: Want, accountId: number): Promise\;
旧版本信息:ohos.permission.ABILITY_BACKGROUND_COMMUNICATION,ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS,ohos.permission.START_ABILITIES_FROM_BACKGROUND,ohos.permission.START_INVISIBLE_ABILITY|类名:UIAbilityContext;
方法or属性:startAbilityByCallWithAccount(want: Want, accountId: number): Promise\;
新版本信息:ohos.permission.ABILITY_BACKGROUND_COMMUNICATION,ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS|UIAbilityContext.d.ts| +|权限有变化|类名:UIAbilityContext;
方法or属性:startServiceExtensionAbility(want: Want, callback: AsyncCallback\): void;
旧版本信息:ohos.permission.START_INVISIBLE_ABILITY|类名:UIAbilityContext;
方法or属性:startServiceExtensionAbility(want: Want, callback: AsyncCallback\): void;
新版本信息:|UIAbilityContext.d.ts| +|权限有变化|类名:UIAbilityContext;
方法or属性:startServiceExtensionAbility(want: Want): Promise\;
旧版本信息:ohos.permission.ABILITY_BACKGROUND_COMMUNICATION|类名:UIAbilityContext;
方法or属性:startServiceExtensionAbility(want: Want): Promise\;
新版本信息:|UIAbilityContext.d.ts| +|权限有变化|类名:UIAbilityContext;
方法or属性:connectServiceExtensionAbility(want: Want, options: ConnectOptions): number;
旧版本信息:ohos.permission.ABILITY_BACKGROUND_COMMUNICATION|类名:UIAbilityContext;
方法or属性:connectServiceExtensionAbility(want: Want, options: ConnectOptions): number;
新版本信息:|UIAbilityContext.d.ts| +|model有变化|类名:featureAbility;
方法or属性:function getWant(): Promise\;
旧版本信息:|类名:featureAbility;
方法or属性:function getWant(): Promise\;
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:featureAbility;
方法or属性:function startAbility(parameter: StartAbilityParameter): Promise\;
旧版本信息:|类名:featureAbility;
方法or属性:function startAbility(parameter: StartAbilityParameter): Promise\;
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:featureAbility;
方法or属性:function startAbilityForResult(parameter: StartAbilityParameter): Promise\;
旧版本信息:|类名:featureAbility;
方法or属性:function startAbilityForResult(parameter: StartAbilityParameter): Promise\;
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:featureAbility;
方法or属性:function terminateSelfWithResult(parameter: AbilityResult): Promise\;
旧版本信息:|类名:featureAbility;
方法or属性:function terminateSelfWithResult(parameter: AbilityResult): Promise\;
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:featureAbility;
方法or属性:function terminateSelf(): Promise\;
旧版本信息:|类名:featureAbility;
方法or属性:function terminateSelf(): Promise\;
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:featureAbility;
方法or属性:function hasWindowFocus(): Promise\;
旧版本信息:|类名:featureAbility;
方法or属性:function hasWindowFocus(): Promise\;
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:featureAbility;
方法or属性:function disconnectAbility(connection: number): Promise\;
旧版本信息:|类名:featureAbility;
方法or属性:function disconnectAbility(connection: number): Promise\;
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:featureAbility;
方法or属性:function getWindow(): Promise\;
旧版本信息:|类名:featureAbility;
方法or属性:function getWindow(): Promise\;
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:featureAbility;
方法or属性:export type AppVersionInfo = _AppVersionInfo;
旧版本信息:|类名:featureAbility;
方法or属性:export type AppVersionInfo = _AppVersionInfo;
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:featureAbility;
方法or属性:export type ProcessInfo = _ProcessInfo;
旧版本信息:|类名:featureAbility;
方法or属性:export type ProcessInfo = _ProcessInfo;
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:AbilityWindowConfiguration;
方法or属性:WINDOW_MODE_UNDEFINED = 0
旧版本信息:|类名:AbilityWindowConfiguration;
方法or属性:WINDOW_MODE_UNDEFINED = 0
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:AbilityWindowConfiguration;
方法or属性:WINDOW_MODE_FULLSCREEN = 1
旧版本信息:|类名:AbilityWindowConfiguration;
方法or属性:WINDOW_MODE_FULLSCREEN = 1
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:AbilityWindowConfiguration;
方法or属性:WINDOW_MODE_SPLIT_PRIMARY = 100
旧版本信息:|类名:AbilityWindowConfiguration;
方法or属性:WINDOW_MODE_SPLIT_PRIMARY = 100
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:AbilityWindowConfiguration;
方法or属性:WINDOW_MODE_SPLIT_SECONDARY = 101
旧版本信息:|类名:AbilityWindowConfiguration;
方法or属性:WINDOW_MODE_SPLIT_SECONDARY = 101
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:AbilityWindowConfiguration;
方法or属性:WINDOW_MODE_FLOATING = 102
旧版本信息:|类名:AbilityWindowConfiguration;
方法or属性:WINDOW_MODE_FLOATING = 102
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:AbilityStartSetting;
方法or属性:BOUNDS_KEY = 'abilityBounds'
旧版本信息:|类名:AbilityStartSetting;
方法or属性:BOUNDS_KEY = 'abilityBounds'
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:AbilityStartSetting;
方法or属性:WINDOW_MODE_KEY = 'windowMode'
旧版本信息:|类名:AbilityStartSetting;
方法or属性:WINDOW_MODE_KEY = 'windowMode'
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:AbilityStartSetting;
方法or属性:DISPLAY_ID_KEY = 'displayId'
旧版本信息:|类名:AbilityStartSetting;
方法or属性:DISPLAY_ID_KEY = 'displayId'
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:ErrorCode;
方法or属性:NO_ERROR = 0
旧版本信息:|类名:ErrorCode;
方法or属性:NO_ERROR = 0
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:ErrorCode;
方法or属性:INVALID_PARAMETER = -1
旧版本信息:|类名:ErrorCode;
方法or属性:INVALID_PARAMETER = -1
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:ErrorCode;
方法or属性:ABILITY_NOT_FOUND = -2
旧版本信息:|类名:ErrorCode;
方法or属性:ABILITY_NOT_FOUND = -2
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:ErrorCode;
方法or属性:PERMISSION_DENY = -3
旧版本信息:|类名:ErrorCode;
方法or属性:PERMISSION_DENY = -3
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:DataAbilityOperationType;
方法or属性:TYPE_INSERT = 1
旧版本信息:|类名:DataAbilityOperationType;
方法or属性:TYPE_INSERT = 1
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:DataAbilityOperationType;
方法or属性:TYPE_UPDATE = 2
旧版本信息:|类名:DataAbilityOperationType;
方法or属性:TYPE_UPDATE = 2
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:DataAbilityOperationType;
方法or属性:TYPE_DELETE = 3
旧版本信息:|类名:DataAbilityOperationType;
方法or属性:TYPE_DELETE = 3
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:DataAbilityOperationType;
方法or属性:TYPE_ASSERT = 4
旧版本信息:|类名:DataAbilityOperationType;
方法or属性:TYPE_ASSERT = 4
新版本信息:FAModelOnly|@ohos.ability.featureAbility.d.ts| +|model有变化|类名:particleAbility;
方法or属性:function startAbility(parameter: StartAbilityParameter): Promise\;
旧版本信息:|类名:particleAbility;
方法or属性:function startAbility(parameter: StartAbilityParameter): Promise\;
新版本信息:FAModelOnly|@ohos.ability.particleAbility.d.ts| +|model有变化|类名:particleAbility;
方法or属性:function terminateSelf(): Promise\;
旧版本信息:|类名:particleAbility;
方法or属性:function terminateSelf(): Promise\;
新版本信息:FAModelOnly|@ohos.ability.particleAbility.d.ts| +|model有变化|类名:particleAbility;
方法or属性:function disconnectAbility(connection: number): Promise\;
旧版本信息:|类名:particleAbility;
方法or属性:function disconnectAbility(connection: number): Promise\;
新版本信息:FAModelOnly|@ohos.ability.particleAbility.d.ts| +|model有变化|类名:ErrorCode;
方法or属性:INVALID_PARAMETER = -1
旧版本信息:|类名:ErrorCode;
方法or属性:INVALID_PARAMETER = -1
新版本信息:FAModelOnly|@ohos.ability.particleAbility.d.ts| +|model有变化|类名:LaunchReason;
方法or属性:SHARE = 5
旧版本信息:|类名:LaunchReason;
方法or属性:SHARE = 5
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:OnContinueResult;
方法or属性:AGREE = 0
旧版本信息:|类名:OnContinueResult;
方法or属性:AGREE = 0
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:OnContinueResult;
方法or属性:REJECT = 1
旧版本信息:|类名:OnContinueResult;
方法or属性:REJECT = 1
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:OnContinueResult;
方法or属性:MISMATCH = 2
旧版本信息:|类名:OnContinueResult;
方法or属性:MISMATCH = 2
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:MemoryLevel;
方法or属性:MEMORY_LEVEL_MODERATE = 0
旧版本信息:|类名:MemoryLevel;
方法or属性:MEMORY_LEVEL_MODERATE = 0
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:MemoryLevel;
方法or属性:MEMORY_LEVEL_LOW = 1
旧版本信息:|类名:MemoryLevel;
方法or属性:MEMORY_LEVEL_LOW = 1
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:MemoryLevel;
方法or属性:MEMORY_LEVEL_CRITICAL = 2
旧版本信息:|类名:MemoryLevel;
方法or属性:MEMORY_LEVEL_CRITICAL = 2
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:WindowMode;
方法or属性:WINDOW_MODE_UNDEFINED = 0
旧版本信息:|类名:WindowMode;
方法or属性:WINDOW_MODE_UNDEFINED = 0
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:WindowMode;
方法or属性:WINDOW_MODE_FULLSCREEN = 1
旧版本信息:|类名:WindowMode;
方法or属性:WINDOW_MODE_FULLSCREEN = 1
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:WindowMode;
方法or属性:WINDOW_MODE_SPLIT_PRIMARY = 100
旧版本信息:|类名:WindowMode;
方法or属性:WINDOW_MODE_SPLIT_PRIMARY = 100
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:WindowMode;
方法or属性:WINDOW_MODE_SPLIT_SECONDARY = 101
旧版本信息:|类名:WindowMode;
方法or属性:WINDOW_MODE_SPLIT_SECONDARY = 101
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:WindowMode;
方法or属性:WINDOW_MODE_FLOATING = 102
旧版本信息:|类名:WindowMode;
方法or属性:WINDOW_MODE_FLOATING = 102
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:OnSaveResult;
方法or属性:ALL_AGREE = 0
旧版本信息:|类名:OnSaveResult;
方法or属性:ALL_AGREE = 0
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:OnSaveResult;
方法or属性:CONTINUATION_REJECT = 1
旧版本信息:|类名:OnSaveResult;
方法or属性:CONTINUATION_REJECT = 1
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:OnSaveResult;
方法or属性:CONTINUATION_MISMATCH = 2
旧版本信息:|类名:OnSaveResult;
方法or属性:CONTINUATION_MISMATCH = 2
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:OnSaveResult;
方法or属性:RECOVERY_AGREE = 3
旧版本信息:|类名:OnSaveResult;
方法or属性:RECOVERY_AGREE = 3
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:OnSaveResult;
方法or属性:RECOVERY_REJECT = 4
旧版本信息:|类名:OnSaveResult;
方法or属性:RECOVERY_REJECT = 4
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:OnSaveResult;
方法or属性:ALL_REJECT
旧版本信息:|类名:OnSaveResult;
方法or属性:ALL_REJECT
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:StateType;
方法or属性:CONTINUATION = 0
旧版本信息:|类名:StateType;
方法or属性:CONTINUATION = 0
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:StateType;
方法or属性:APP_RECOVERY = 1
旧版本信息:|类名:StateType;
方法or属性:APP_RECOVERY = 1
新版本信息:StageModelOnly|@ohos.app.ability.AbilityConstant.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:openFile(uri: string, mode: string): Promise\;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:openFile(uri: string, mode: string): Promise\;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:getType(uri: string): Promise\;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:getType(uri: string): Promise\;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:getFileTypes(uri: string, mimeTypeFilter: string): Promise\>;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:getFileTypes(uri: string, mimeTypeFilter: string): Promise\>;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:normalizeUri(uri: string): Promise\;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:normalizeUri(uri: string): Promise\;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:denormalizeUri(uri: string): Promise\;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:denormalizeUri(uri: string): Promise\;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:notifyChange(uri: string): Promise\;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:notifyChange(uri: string): Promise\;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:insert(uri: string, valuesBucket: rdb.ValuesBucket): Promise\;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:insert(uri: string, valuesBucket: rdb.ValuesBucket): Promise\;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:batchInsert(uri: string, valuesBuckets: Array\): Promise\;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:batchInsert(uri: string, valuesBuckets: Array\): Promise\;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:delete(uri: string, predicates?: dataAbility.DataAbilityPredicates): Promise\;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:delete(uri: string, predicates?: dataAbility.DataAbilityPredicates): Promise\;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:delete(uri: string, callback: AsyncCallback\): void;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:delete(uri: string, callback: AsyncCallback\): void;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:update(uri: string, valuesBucket: rdb.ValuesBucket, predicates?: dataAbility.DataAbilityPredicates): Promise\;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:update(uri: string, valuesBucket: rdb.ValuesBucket, predicates?: dataAbility.DataAbilityPredicates): Promise\;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:update(uri: string, valuesBucket: rdb.ValuesBucket, callback: AsyncCallback\): void;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:update(uri: string, valuesBucket: rdb.ValuesBucket, callback: AsyncCallback\): void;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:query(uri: string, callback: AsyncCallback\): void;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:query(uri: string, callback: AsyncCallback\): void;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:query(uri: string, columns: Array\, callback: AsyncCallback\): void;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:query(uri: string, columns: Array\, callback: AsyncCallback\): void;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:query(uri: string, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback\): void;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:query(uri: string, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback\): void;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:query(uri: string, columns?: Array\, predicates?: dataAbility.DataAbilityPredicates): Promise\;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:query(uri: string, columns?: Array\, predicates?: dataAbility.DataAbilityPredicates): Promise\;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:call(uri: string, method: string, arg: string, extras: PacMap): Promise\;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:call(uri: string, method: string, arg: string, extras: PacMap): Promise\;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:executeBatch(
uri: string,
operations: Array\,
callback: AsyncCallback\>
): void;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:executeBatch(
uri: string,
operations: Array\,
callback: AsyncCallback\>
): void;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:DataAbilityHelper;
方法or属性:executeBatch(uri: string, operations: Array\): Promise\>;
旧版本信息:|类名:DataAbilityHelper;
方法or属性:executeBatch(uri: string, operations: Array\): Promise\>;
新版本信息:FAModelOnly|dataAbilityHelper.d.ts| +|model有变化|类名:Context;
方法or属性:getOrCreateLocalDir(callback: AsyncCallback\): void;
旧版本信息:|类名:Context;
方法or属性:getOrCreateLocalDir(callback: AsyncCallback\): void;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:verifyPermission(permission: string, options: PermissionOptions, callback: AsyncCallback\): void;
旧版本信息:|类名:Context;
方法or属性:verifyPermission(permission: string, options: PermissionOptions, callback: AsyncCallback\): void;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:verifyPermission(permission: string, callback: AsyncCallback\): void;
旧版本信息:|类名:Context;
方法or属性:verifyPermission(permission: string, callback: AsyncCallback\): void;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:requestPermissionsFromUser(permissions: Array\, requestCode: number): Promise\;
旧版本信息:|类名:Context;
方法or属性:requestPermissionsFromUser(permissions: Array\, requestCode: number): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getApplicationInfo(): Promise\;
旧版本信息:|类名:Context;
方法or属性:getApplicationInfo(): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getBundleName(): Promise\;
旧版本信息:|类名:Context;
方法or属性:getBundleName(): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getDisplayOrientation(callback: AsyncCallback\): void;
旧版本信息:|类名:Context;
方法or属性:getDisplayOrientation(callback: AsyncCallback\): void;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getDisplayOrientation(): Promise\;
旧版本信息:|类名:Context;
方法or属性:getDisplayOrientation(): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getExternalCacheDir(callback: AsyncCallback\): void;
旧版本信息:|类名:Context;
方法or属性:getExternalCacheDir(callback: AsyncCallback\): void;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getExternalCacheDir(): Promise\;
旧版本信息:|类名:Context;
方法or属性:getExternalCacheDir(): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:setDisplayOrientation(orientation: bundle.DisplayOrientation, callback: AsyncCallback\): void;
旧版本信息:|类名:Context;
方法or属性:setDisplayOrientation(orientation: bundle.DisplayOrientation, callback: AsyncCallback\): void;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:setDisplayOrientation(orientation: bundle.DisplayOrientation): Promise\;
旧版本信息:|类名:Context;
方法or属性:setDisplayOrientation(orientation: bundle.DisplayOrientation): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:setShowOnLockScreen(show: boolean, callback: AsyncCallback\): void;
旧版本信息:|类名:Context;
方法or属性:setShowOnLockScreen(show: boolean, callback: AsyncCallback\): void;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:setShowOnLockScreen(show: boolean): Promise\;
旧版本信息:|类名:Context;
方法or属性:setShowOnLockScreen(show: boolean): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:setWakeUpScreen(wakeUp: boolean, callback: AsyncCallback\): void;
旧版本信息:|类名:Context;
方法or属性:setWakeUpScreen(wakeUp: boolean, callback: AsyncCallback\): void;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:setWakeUpScreen(wakeUp: boolean): Promise\;
旧版本信息:|类名:Context;
方法or属性:setWakeUpScreen(wakeUp: boolean): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getProcessInfo(): Promise\;
旧版本信息:|类名:Context;
方法or属性:getProcessInfo(): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getElementName(): Promise\;
旧版本信息:|类名:Context;
方法or属性:getElementName(): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getProcessName(): Promise\;
旧版本信息:|类名:Context;
方法or属性:getProcessName(): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getCallingBundle(): Promise\;
旧版本信息:|类名:Context;
方法or属性:getCallingBundle(): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getFilesDir(): Promise\;
旧版本信息:|类名:Context;
方法or属性:getFilesDir(): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getCacheDir(): Promise\;
旧版本信息:|类名:Context;
方法or属性:getCacheDir(): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getOrCreateDistributedDir(callback: AsyncCallback\): void;
旧版本信息:|类名:Context;
方法or属性:getOrCreateDistributedDir(callback: AsyncCallback\): void;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getAppType(): Promise\;
旧版本信息:|类名:Context;
方法or属性:getAppType(): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getHapModuleInfo(): Promise\;
旧版本信息:|类名:Context;
方法or属性:getHapModuleInfo(): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getAppVersionInfo(): Promise\;
旧版本信息:|类名:Context;
方法or属性:getAppVersionInfo(): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:getAbilityInfo(): Promise\;
旧版本信息:|类名:Context;
方法or属性:getAbilityInfo(): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:isUpdatingConfigurations(): Promise\;
旧版本信息:|类名:Context;
方法or属性:isUpdatingConfigurations(): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|model有变化|类名:Context;
方法or属性:printDrawnCompleted(): Promise\;
旧版本信息:|类名:Context;
方法or属性:printDrawnCompleted(): Promise\;
新版本信息:FAModelOnly|context.d.ts| +|type有变化|类名:LaunchParam;
方法or属性:launchReason: LaunchReason;
旧版本信息:|类名:LaunchParam;
方法or属性:launchReason: LaunchReason;
新版本信息:LaunchReason|@ohos.app.ability.AbilityConstant.d.ts| +|type有变化|类名:LaunchParam;
方法or属性:lastExitReason: LastExitReason;
旧版本信息:|类名:LaunchParam;
方法or属性:lastExitReason: LastExitReason;
新版本信息:LastExitReason|@ohos.app.ability.AbilityConstant.d.ts| +|type有变化|类名:Configuration;
方法or属性:language?: string;
旧版本信息:string|类名:Configuration;
方法or属性:language?: string;
新版本信息:?string|@ohos.app.ability.Configuration.d.ts| +|type有变化|类名:Configuration;
方法or属性:colorMode?: ConfigurationConstant.ColorMode;
旧版本信息:ConfigurationConstant.ColorMode|类名:Configuration;
方法or属性:colorMode?: ConfigurationConstant.ColorMode;
新版本信息:?ConfigurationConstant.ColorMode|@ohos.app.ability.Configuration.d.ts| +|type有变化|类名:Configuration;
方法or属性:direction?: ConfigurationConstant.Direction;
旧版本信息:ConfigurationConstant.Direction|类名:Configuration;
方法or属性:direction?: ConfigurationConstant.Direction;
新版本信息:?ConfigurationConstant.Direction|@ohos.app.ability.Configuration.d.ts| +|type有变化|类名:Configuration;
方法or属性:screenDensity?: ConfigurationConstant.ScreenDensity;
旧版本信息:ConfigurationConstant.ScreenDensity|类名:Configuration;
方法or属性:screenDensity?: ConfigurationConstant.ScreenDensity;
新版本信息:?ConfigurationConstant.ScreenDensity|@ohos.app.ability.Configuration.d.ts| +|type有变化|类名:Configuration;
方法or属性:displayId?: number;
旧版本信息:number|类名:Configuration;
方法or属性:displayId?: number;
新版本信息:?number|@ohos.app.ability.Configuration.d.ts| +|type有变化|类名:Configuration;
方法or属性:hasPointerDevice?: boolean;
旧版本信息:boolean|类名:Configuration;
方法or属性:hasPointerDevice?: boolean;
新版本信息:?boolean|@ohos.app.ability.Configuration.d.ts| +|type有变化|类名:RequestResult;
方法or属性:result: ResultCode;
旧版本信息:|类名:RequestResult;
方法or属性:result: ResultCode;
新版本信息:ResultCode|@ohos.app.ability.dialogRequest.d.ts| +|type有变化|类名:ServiceExtensionAbility;
方法or属性:context: ServiceExtensionContext;
旧版本信息:|类名:ServiceExtensionAbility;
方法or属性:context: ServiceExtensionContext;
新版本信息:ServiceExtensionContext|@ohos.app.ability.ServiceExtensionAbility.d.ts| +|type有变化|类名:StartOptions;
方法or属性:windowMode?: number;
旧版本信息:|类名:StartOptions;
方法or属性:windowMode?: number;
新版本信息:?number|@ohos.app.ability.StartOptions.d.ts| +|type有变化|类名:StartOptions;
方法or属性:displayId?: number;
旧版本信息:|类名:StartOptions;
方法or属性:displayId?: number;
新版本信息:?number|@ohos.app.ability.StartOptions.d.ts| +|type有变化|类名:Want;
方法or属性:deviceId?: string;
旧版本信息:|类名:Want;
方法or属性:deviceId?: string;
新版本信息:?string|@ohos.app.ability.Want.d.ts| +|type有变化|类名:Want;
方法or属性:uri?: string;
旧版本信息:|类名:Want;
方法or属性:uri?: string;
新版本信息:?string|@ohos.app.ability.Want.d.ts| +|type有变化|类名:Want;
方法or属性:type?: string;
旧版本信息:|类名:Want;
方法or属性:type?: string;
新版本信息:?string|@ohos.app.ability.Want.d.ts| +|type有变化|类名:Want;
方法or属性:flags?: number;
旧版本信息:|类名:Want;
方法or属性:flags?: number;
新版本信息:?number|@ohos.app.ability.Want.d.ts| +|type有变化|类名:Want;
方法or属性:action?: string;
旧版本信息:|类名:Want;
方法or属性:action?: string;
新版本信息:?string|@ohos.app.ability.Want.d.ts| +|type有变化|类名:Want;
方法or属性:parameters?: { [key: string]: Object };
旧版本信息:|类名:Want;
方法or属性:parameters?: { [key: string]: Object };
新版本信息:?object|@ohos.app.ability.Want.d.ts| +|type有变化|类名:Want;
方法or属性:entities?: Array\;
旧版本信息:|类名:Want;
方法or属性:entities?: Array\;
新版本信息:?Array\|@ohos.app.ability.Want.d.ts| +|type有变化|类名:CompleteData;
方法or属性:extraInfo?: { [key: string]: Object };
旧版本信息:{ [key: string]: Object }|类名:CompleteData;
方法or属性:extraInfo?: { [key: string]: Object };
新版本信息:?object|@ohos.app.ability.wantAgent.d.ts| +|type有变化|类名:FormBindingData;
方法or属性:data: Object;
旧版本信息:|类名:FormBindingData;
方法or属性:data: Object;
新版本信息:Object|@ohos.app.form.formBindingData.d.ts| +|type有变化|类名:FormInfo;
方法or属性:bundleName: string;
旧版本信息:|类名:FormInfo;
方法or属性:bundleName: string;
新版本信息:string|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormProviderFilter;
方法or属性:bundleName: string;
旧版本信息:|类名:FormProviderFilter;
方法or属性:bundleName: string;
新版本信息:string|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:moduleName: string;
旧版本信息:|类名:FormInfo;
方法or属性:moduleName: string;
新版本信息:string|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:abilityName: string;
旧版本信息:|类名:FormInfo;
方法or属性:abilityName: string;
新版本信息:string|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:name: string;
旧版本信息:|类名:FormInfo;
方法or属性:name: string;
新版本信息:string|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:description: string;
旧版本信息:|类名:FormInfo;
方法or属性:description: string;
新版本信息:string|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:descriptionId: number;
旧版本信息:|类名:FormInfo;
方法or属性:descriptionId: number;
新版本信息:number|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:type: FormType;
旧版本信息:|类名:FormInfo;
方法or属性:type: FormType;
新版本信息:FormType|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:jsComponentName: string;
旧版本信息:|类名:FormInfo;
方法or属性:jsComponentName: string;
新版本信息:string|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:colorMode: ColorMode;
旧版本信息:|类名:FormInfo;
方法or属性:colorMode: ColorMode;
新版本信息:ColorMode|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:isDefault: boolean;
旧版本信息:|类名:FormInfo;
方法or属性:isDefault: boolean;
新版本信息:boolean|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:updateEnabled: boolean;
旧版本信息:|类名:FormInfo;
方法or属性:updateEnabled: boolean;
新版本信息:boolean|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:formVisibleNotify: boolean;
旧版本信息:|类名:FormInfo;
方法or属性:formVisibleNotify: boolean;
新版本信息:boolean|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:scheduledUpdateTime: string;
旧版本信息:|类名:FormInfo;
方法or属性:scheduledUpdateTime: string;
新版本信息:string|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:formConfigAbility: string;
旧版本信息:|类名:FormInfo;
方法or属性:formConfigAbility: string;
新版本信息:string|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:updateDuration: number;
旧版本信息:|类名:FormInfo;
方法or属性:updateDuration: number;
新版本信息:number|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:defaultDimension: number;
旧版本信息:|类名:FormInfo;
方法or属性:defaultDimension: number;
新版本信息:number|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:supportDimensions: Array\;
旧版本信息:|类名:FormInfo;
方法or属性:supportDimensions: Array\;
新版本信息:Array\|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:customizeData: { [key: string]: [value: string] };
旧版本信息:|类名:FormInfo;
方法or属性:customizeData: { [key: string]: [value: string] };
新版本信息:object|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormStateInfo;
方法or属性:formState: FormState;
旧版本信息:|类名:FormStateInfo;
方法or属性:formState: FormState;
新版本信息:FormState|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormStateInfo;
方法or属性:want: Want;
旧版本信息:|类名:FormStateInfo;
方法or属性:want: Want;
新版本信息:Want|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormInfoFilter;
方法or属性:moduleName?: string;
旧版本信息:|类名:FormInfoFilter;
方法or属性:moduleName?: string;
新版本信息:?string|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormProviderFilter;
方法or属性:moduleName?: string;
旧版本信息:|类名:FormProviderFilter;
方法or属性:moduleName?: string;
新版本信息:?string|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormProviderFilter;
方法or属性:formName?: string;
旧版本信息:|类名:FormProviderFilter;
方法or属性:formName?: string;
新版本信息:?string|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:FormProviderFilter;
方法or属性:abilityName?: string;
旧版本信息:|类名:FormProviderFilter;
方法or属性:abilityName?: string;
新版本信息:?string|@ohos.app.form.formInfo.d.ts| +|type有变化|类名:Configuration;
方法or属性:language?: string;
旧版本信息:|类名:Configuration;
方法or属性:language?: string;
新版本信息:?string|@ohos.application.Configuration.d.ts| +|type有变化|类名:Configuration;
方法or属性:colorMode?: ConfigurationConstant.ColorMode;
旧版本信息:|类名:Configuration;
方法or属性:colorMode?: ConfigurationConstant.ColorMode;
新版本信息:?ConfigurationConstant.ColorMode|@ohos.application.Configuration.d.ts| +|type有变化|类名:FormBindingData;
方法or属性:data: Object;
旧版本信息:|类名:FormBindingData;
方法or属性:data: Object;
新版本信息:Object|@ohos.application.formBindingData.d.ts| +|type有变化|类名:FormInfo;
方法or属性:bundleName: string;
旧版本信息:|类名:FormInfo;
方法or属性:bundleName: string;
新版本信息:string|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:moduleName: string;
旧版本信息:|类名:FormInfo;
方法or属性:moduleName: string;
新版本信息:string|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:abilityName: string;
旧版本信息:|类名:FormInfo;
方法or属性:abilityName: string;
新版本信息:string|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:name: string;
旧版本信息:|类名:FormInfo;
方法or属性:name: string;
新版本信息:string|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:description: string;
旧版本信息:|类名:FormInfo;
方法or属性:description: string;
新版本信息:string|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:type: FormType;
旧版本信息:|类名:FormInfo;
方法or属性:type: FormType;
新版本信息:FormType|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:jsComponentName: string;
旧版本信息:|类名:FormInfo;
方法or属性:jsComponentName: string;
新版本信息:string|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:colorMode: ColorMode;
旧版本信息:|类名:FormInfo;
方法or属性:colorMode: ColorMode;
新版本信息:ColorMode|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:isDefault: boolean;
旧版本信息:|类名:FormInfo;
方法or属性:isDefault: boolean;
新版本信息:boolean|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:updateEnabled: boolean;
旧版本信息:|类名:FormInfo;
方法or属性:updateEnabled: boolean;
新版本信息:boolean|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:formVisibleNotify: boolean;
旧版本信息:|类名:FormInfo;
方法or属性:formVisibleNotify: boolean;
新版本信息:boolean|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:relatedBundleName: string;
旧版本信息:|类名:FormInfo;
方法or属性:relatedBundleName: string;
新版本信息:string|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:scheduledUpdateTime: string;
旧版本信息:|类名:FormInfo;
方法or属性:scheduledUpdateTime: string;
新版本信息:string|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:formConfigAbility: string;
旧版本信息:|类名:FormInfo;
方法or属性:formConfigAbility: string;
新版本信息:string|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:updateDuration: number;
旧版本信息:|类名:FormInfo;
方法or属性:updateDuration: number;
新版本信息:number|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:defaultDimension: number;
旧版本信息:|类名:FormInfo;
方法or属性:defaultDimension: number;
新版本信息:number|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:supportDimensions: Array\;
旧版本信息:|类名:FormInfo;
方法or属性:supportDimensions: Array\;
新版本信息:Array\|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormInfo;
方法or属性:customizeData: { [key: string]: [value: string] };
旧版本信息:|类名:FormInfo;
方法or属性:customizeData: { [key: string]: [value: string] };
新版本信息:object|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormStateInfo;
方法or属性:formState: FormState;
旧版本信息:|类名:FormStateInfo;
方法or属性:formState: FormState;
新版本信息:FormState|@ohos.application.formInfo.d.ts| +|type有变化|类名:FormStateInfo;
方法or属性:want: Want;
旧版本信息:|类名:FormStateInfo;
方法or属性:want: Want;
新版本信息:Want|@ohos.application.formInfo.d.ts| +|type有变化|类名:Want;
方法or属性:deviceId?: string;
旧版本信息:|类名:Want;
方法or属性:deviceId?: string;
新版本信息:?string|@ohos.application.Want.d.ts| +|type有变化|类名:Want;
方法or属性:bundleName?: string;
旧版本信息:|类名:Want;
方法or属性:bundleName?: string;
新版本信息:?string|@ohos.application.Want.d.ts| +|type有变化|类名:Want;
方法or属性:abilityName?: string;
旧版本信息:|类名:Want;
方法or属性:abilityName?: string;
新版本信息:?string|@ohos.application.Want.d.ts| +|type有变化|类名:Want;
方法or属性:uri?: string;
旧版本信息:|类名:Want;
方法or属性:uri?: string;
新版本信息:?string|@ohos.application.Want.d.ts| +|type有变化|类名:Want;
方法or属性:type?: string;
旧版本信息:|类名:Want;
方法or属性:type?: string;
新版本信息:?string|@ohos.application.Want.d.ts| +|type有变化|类名:Want;
方法or属性:flags?: number;
旧版本信息:|类名:Want;
方法or属性:flags?: number;
新版本信息:?number|@ohos.application.Want.d.ts| +|type有变化|类名:Want;
方法or属性:action?: string;
旧版本信息:|类名:Want;
方法or属性:action?: string;
新版本信息:?string|@ohos.application.Want.d.ts| +|type有变化|类名:Want;
方法or属性:parameters?: { [key: string]: any };
旧版本信息:|类名:Want;
方法or属性:parameters?: { [key: string]: any };
新版本信息:?object|@ohos.application.Want.d.ts| +|type有变化|类名:Want;
方法or属性:entities?: Array\;
旧版本信息:|类名:Want;
方法or属性:entities?: Array\;
新版本信息:?Array\|@ohos.application.Want.d.ts| +|type有变化|类名:CompleteData;
方法or属性:info: WantAgent;
旧版本信息:|类名:CompleteData;
方法or属性:info: WantAgent;
新版本信息:WantAgent|@ohos.wantAgent.d.ts| +|type有变化|类名:CompleteData;
方法or属性:want: Want;
旧版本信息:|类名:CompleteData;
方法or属性:want: Want;
新版本信息:Want|@ohos.wantAgent.d.ts| +|type有变化|类名:CompleteData;
方法or属性:finalCode: number;
旧版本信息:|类名:CompleteData;
方法or属性:finalCode: number;
新版本信息:number|@ohos.wantAgent.d.ts| +|type有变化|类名:CompleteData;
方法or属性:finalData: string;
旧版本信息:|类名:CompleteData;
方法or属性:finalData: string;
新版本信息:string|@ohos.wantAgent.d.ts| +|type有变化|类名:CompleteData;
方法or属性:extraInfo?: { [key: string]: any };
旧版本信息:|类名:CompleteData;
方法or属性:extraInfo?: { [key: string]: any };
新版本信息:?object|@ohos.wantAgent.d.ts| +|type有变化|类名:AbilityResult;
方法or属性:resultCode: number;
旧版本信息:|类名:AbilityResult;
方法or属性:resultCode: number;
新版本信息:number|abilityResult.d.ts| +|type有变化|类名:AbilityResult;
方法or属性:want?: Want;
旧版本信息:|类名:AbilityResult;
方法or属性:want?: Want;
新版本信息:?Want|abilityResult.d.ts| +|type有变化|类名:DataAbilityOperation;
方法or属性:uri: string;
旧版本信息:|类名:DataAbilityOperation;
方法or属性:uri: string;
新版本信息:string|dataAbilityOperation.d.ts| +|type有变化|类名:DataAbilityOperation;
方法or属性:type: featureAbility.DataAbilityOperationType;
旧版本信息:|类名:DataAbilityOperation;
方法or属性:type: featureAbility.DataAbilityOperationType;
新版本信息:featureAbility.DataAbilityOperationType|dataAbilityOperation.d.ts| +|type有变化|类名:DataAbilityOperation;
方法or属性:valuesBucket?: rdb.ValuesBucket;
旧版本信息:|类名:DataAbilityOperation;
方法or属性:valuesBucket?: rdb.ValuesBucket;
新版本信息:?rdb.ValuesBucket|dataAbilityOperation.d.ts| +|type有变化|类名:DataAbilityOperation;
方法or属性:valueBackReferences?: rdb.ValuesBucket;
旧版本信息:|类名:DataAbilityOperation;
方法or属性:valueBackReferences?: rdb.ValuesBucket;
新版本信息:?rdb.ValuesBucket|dataAbilityOperation.d.ts| +|type有变化|类名:DataAbilityOperation;
方法or属性:predicates?: dataAbility.DataAbilityPredicates;
旧版本信息:|类名:DataAbilityOperation;
方法or属性:predicates?: dataAbility.DataAbilityPredicates;
新版本信息:?dataAbility.DataAbilityPredicates|dataAbilityOperation.d.ts| +|type有变化|类名:DataAbilityOperation;
方法or属性:predicatesBackReferences?: Map\;
旧版本信息:|类名:DataAbilityOperation;
方法or属性:predicatesBackReferences?: Map\;
新版本信息:?Map\|dataAbilityOperation.d.ts| +|type有变化|类名:DataAbilityOperation;
方法or属性:interrupted?: boolean;
旧版本信息:|类名:DataAbilityOperation;
方法or属性:interrupted?: boolean;
新版本信息:?boolean|dataAbilityOperation.d.ts| +|type有变化|类名:DataAbilityOperation;
方法or属性:expectedCount?: number;
旧版本信息:|类名:DataAbilityOperation;
方法or属性:expectedCount?: number;
新版本信息:?number|dataAbilityOperation.d.ts| +|type有变化|类名:DataAbilityResult;
方法or属性:uri?: string;
旧版本信息:|类名:DataAbilityResult;
方法or属性:uri?: string;
新版本信息:?string|dataAbilityResult.d.ts| +|type有变化|类名:DataAbilityResult;
方法or属性:count?: number;
旧版本信息:|类名:DataAbilityResult;
方法or属性:count?: number;
新版本信息:?number|dataAbilityResult.d.ts| +|type有变化|类名:StartAbilityParameter;
方法or属性:want: Want;
旧版本信息:|类名:StartAbilityParameter;
方法or属性:want: Want;
新版本信息:Want|startAbilityParameter.d.ts| +|type有变化|类名:StartAbilityParameter;
方法or属性:abilityStartSetting?: { [key: string]: any };
旧版本信息:|类名:StartAbilityParameter;
方法or属性:abilityStartSetting?: { [key: string]: any };
新版本信息:?object|startAbilityParameter.d.ts| +|type有变化|类名:Want;
方法or属性:deviceId?: string;
旧版本信息:|类名:Want;
方法or属性:deviceId?: string;
新版本信息:?string|want.d.ts| +|type有变化|类名:Want;
方法or属性:bundleName?: string;
旧版本信息:|类名:Want;
方法or属性:bundleName?: string;
新版本信息:?string|want.d.ts| +|type有变化|类名:Want;
方法or属性:abilityName?: string;
旧版本信息:|类名:Want;
方法or属性:abilityName?: string;
新版本信息:?string|want.d.ts| +|type有变化|类名:Want;
方法or属性:uri?: string;
旧版本信息:|类名:Want;
方法or属性:uri?: string;
新版本信息:?string|want.d.ts| +|type有变化|类名:Want;
方法or属性:type?: string;
旧版本信息:|类名:Want;
方法or属性:type?: string;
新版本信息:?string|want.d.ts| +|type有变化|类名:Want;
方法or属性:flags?: number;
旧版本信息:|类名:Want;
方法or属性:flags?: number;
新版本信息:?number|want.d.ts| +|type有变化|类名:Want;
方法or属性:action?: string;
旧版本信息:|类名:Want;
方法or属性:action?: string;
新版本信息:?string|want.d.ts| +|type有变化|类名:Want;
方法or属性:parameters?: { [key: string]: any };
旧版本信息:|类名:Want;
方法or属性:parameters?: { [key: string]: any };
新版本信息:?object|want.d.ts| +|type有变化|类名:Want;
方法or属性:entities?: Array\;
旧版本信息:|类名:Want;
方法or属性:entities?: Array\;
新版本信息:?Array\|want.d.ts| +|type有变化|类名:AppVersionInfo;
方法or属性:readonly appName: string;
旧版本信息:|类名:AppVersionInfo;
方法or属性:readonly appName: string;
新版本信息:string|appVersionInfo.d.ts| +|type有变化|类名:AppVersionInfo;
方法or属性:readonly versionCode: number;
旧版本信息:|类名:AppVersionInfo;
方法or属性:readonly versionCode: number;
新版本信息:number|appVersionInfo.d.ts| +|type有变化|类名:AppVersionInfo;
方法or属性:readonly versionName: string;
旧版本信息:|类名:AppVersionInfo;
方法or属性:readonly versionName: string;
新版本信息:string|appVersionInfo.d.ts| +|type有变化|类名:PermissionRequestResult;
方法or属性:requestCode: number;
旧版本信息:|类名:PermissionRequestResult;
方法or属性:requestCode: number;
新版本信息:number|context.d.ts| +|type有变化|类名:PermissionRequestResult;
方法or属性:permissions: Array\;
旧版本信息:|类名:PermissionRequestResult;
方法or属性:permissions: Array\;
新版本信息:Array\|context.d.ts| +|type有变化|类名:PermissionRequestResult;
方法or属性:authResults: Array\;
旧版本信息:|类名:PermissionRequestResult;
方法or属性:authResults: Array\;
新版本信息:Array\|context.d.ts| +|type有变化|类名:PermissionOptions;
方法or属性:pid?: number;
旧版本信息:|类名:PermissionOptions;
方法or属性:pid?: number;
新版本信息:?number|context.d.ts| +|type有变化|类名:PermissionOptions;
方法or属性:uid?: number;
旧版本信息:|类名:PermissionOptions;
方法or属性:uid?: number;
新版本信息:?number|context.d.ts| +|type有变化|类名:ProcessInfo;
方法or属性:pid: number;
旧版本信息:|类名:ProcessInfo;
方法or属性:pid: number;
新版本信息:number|processInfo.d.ts| +|type有变化|类名:ProcessInfo;
方法or属性:processName: string;
旧版本信息:|类名:ProcessInfo;
方法or属性:processName: string;
新版本信息:string|processInfo.d.ts| +|type有变化|类名:AbilityDelegatorArgs;
方法or属性:bundleName: string;
旧版本信息:|类名:AbilityDelegatorArgs;
方法or属性:bundleName: string;
新版本信息:string|abilityDelegatorArgs.d.ts| +|type有变化|类名:AbilityDelegatorArgs;
方法or属性:parameters: { [key: string]: string };
旧版本信息:|类名:AbilityDelegatorArgs;
方法or属性:parameters: { [key: string]: string };
新版本信息:object|abilityDelegatorArgs.d.ts| +|type有变化|类名:AbilityDelegatorArgs;
方法or属性:testCaseNames: string;
旧版本信息:|类名:AbilityDelegatorArgs;
方法or属性:testCaseNames: string;
新版本信息:string|abilityDelegatorArgs.d.ts| +|type有变化|类名:AbilityDelegatorArgs;
方法or属性:testRunnerClassName: string;
旧版本信息:|类名:AbilityDelegatorArgs;
方法or属性:testRunnerClassName: string;
新版本信息:string|abilityDelegatorArgs.d.ts| +|type有变化|类名:AbilityMonitor;
方法or属性:abilityName: string;
旧版本信息:|类名:AbilityMonitor;
方法or属性:abilityName: string;
新版本信息:string|AbilityMonitor.d.ts| +|type有变化|类名:AbilityMonitor;
方法or属性:moduleName?: string;
旧版本信息:|类名:AbilityMonitor;
方法or属性:moduleName?: string;
新版本信息:?string|AbilityMonitor.d.ts| +|type有变化|类名:AbilityRunningInfo;
方法or属性:ability: ElementName;
旧版本信息:|类名:AbilityRunningInfo;
方法or属性:ability: ElementName;
新版本信息:ElementName|AbilityRunningInfo.d.ts| +|type有变化|类名:AbilityRunningInfo;
方法or属性:pid: number;
旧版本信息:|类名:AbilityRunningInfo;
方法or属性:pid: number;
新版本信息:number|AbilityRunningInfo.d.ts| +|type有变化|类名:AbilityRunningInfo;
方法or属性:uid: number;
旧版本信息:|类名:AbilityRunningInfo;
方法or属性:uid: number;
新版本信息:number|AbilityRunningInfo.d.ts| +|type有变化|类名:AbilityRunningInfo;
方法or属性:processName: string;
旧版本信息:|类名:AbilityRunningInfo;
方法or属性:processName: string;
新版本信息:string|AbilityRunningInfo.d.ts| +|type有变化|类名:AbilityRunningInfo;
方法or属性:startTime: number;
旧版本信息:|类名:AbilityRunningInfo;
方法or属性:startTime: number;
新版本信息:number|AbilityRunningInfo.d.ts| +|type有变化|类名:AbilityRunningInfo;
方法or属性:abilityState: abilityManager.AbilityState;
旧版本信息:|类名:AbilityRunningInfo;
方法or属性:abilityState: abilityManager.AbilityState;
新版本信息:abilityManager.AbilityState|AbilityRunningInfo.d.ts| +|type有变化|类名:AbilityStageContext;
方法or属性:currentHapModuleInfo: HapModuleInfo;
旧版本信息:|类名:AbilityStageContext;
方法or属性:currentHapModuleInfo: HapModuleInfo;
新版本信息:HapModuleInfo|AbilityStageContext.d.ts| +|type有变化|类名:AbilityStageContext;
方法or属性:config: Configuration;
旧版本信息:|类名:AbilityStageContext;
方法or属性:config: Configuration;
新版本信息:Configuration|AbilityStageContext.d.ts| +|type有变化|类名:AbilityStageMonitor;
方法or属性:moduleName: string;
旧版本信息:|类名:AbilityStageMonitor;
方法or属性:moduleName: string;
新版本信息:string|AbilityStageMonitor.d.ts| +|type有变化|类名:AbilityStageMonitor;
方法or属性:srcEntrance: string;
旧版本信息:|类名:AbilityStageMonitor;
方法or属性:srcEntrance: string;
新版本信息:string|AbilityStageMonitor.d.ts| +|type有变化|类名:AbilityStateData;
方法or属性:moduleName: string;
旧版本信息:|类名:AbilityStateData;
方法or属性:moduleName: string;
新版本信息:string|AbilityStateData.d.ts| +|type有变化|类名:AbilityStateData;
方法or属性:bundleName: string;
旧版本信息:|类名:AbilityStateData;
方法or属性:bundleName: string;
新版本信息:string|AbilityStateData.d.ts| +|type有变化|类名:AbilityStateData;
方法or属性:abilityName: string;
旧版本信息:|类名:AbilityStateData;
方法or属性:abilityName: string;
新版本信息:string|AbilityStateData.d.ts| +|type有变化|类名:AbilityStateData;
方法or属性:pid: number;
旧版本信息:|类名:AbilityStateData;
方法or属性:pid: number;
新版本信息:number|AbilityStateData.d.ts| +|type有变化|类名:AbilityStateData;
方法or属性:uid: number;
旧版本信息:|类名:AbilityStateData;
方法or属性:uid: number;
新版本信息:number|AbilityStateData.d.ts| +|type有变化|类名:AbilityStateData;
方法or属性:state: number;
旧版本信息:|类名:AbilityStateData;
方法or属性:state: number;
新版本信息:number|AbilityStateData.d.ts| +|type有变化|类名:AbilityStateData;
方法or属性:abilityType: number;
旧版本信息:|类名:AbilityStateData;
方法or属性:abilityType: number;
新版本信息:number|AbilityStateData.d.ts| +|type有变化|类名:AppStateData;
方法or属性:bundleName: string;
旧版本信息:|类名:AppStateData;
方法or属性:bundleName: string;
新版本信息:string|AppStateData.d.ts| +|type有变化|类名:AppStateData;
方法or属性:uid: number;
旧版本信息:|类名:AppStateData;
方法or属性:uid: number;
新版本信息:number|AppStateData.d.ts| +|type有变化|类名:AppStateData;
方法or属性:state: number;
旧版本信息:|类名:AppStateData;
方法or属性:state: number;
新版本信息:number|AppStateData.d.ts| +|type有变化|类名:BaseContext;
方法or属性:stageMode: boolean;
旧版本信息:|类名:BaseContext;
方法or属性:stageMode: boolean;
新版本信息:boolean|BaseContext.d.ts| +|type有变化|类名:Context;
方法or属性:area: contextConstant.AreaMode;
旧版本信息:AreaMode|类名:Context;
方法or属性:area: contextConstant.AreaMode;
新版本信息:contextConstant.AreaMode|Context.d.ts| +|type有变化|类名:ContinueDeviceInfo;
方法or属性:srcDeviceId: string;
旧版本信息:|类名:ContinueDeviceInfo;
方法or属性:srcDeviceId: string;
新版本信息:string|ContinueDeviceInfo.d.ts| +|type有变化|类名:ContinueDeviceInfo;
方法or属性:dstDeviceId: string;
旧版本信息:|类名:ContinueDeviceInfo;
方法or属性:dstDeviceId: string;
新版本信息:string|ContinueDeviceInfo.d.ts| +|type有变化|类名:ContinueDeviceInfo;
方法or属性:missionId: number;
旧版本信息:|类名:ContinueDeviceInfo;
方法or属性:missionId: number;
新版本信息:number|ContinueDeviceInfo.d.ts| +|type有变化|类名:ContinueDeviceInfo;
方法or属性:wantParam: { [key: string]: any };
旧版本信息:|类名:ContinueDeviceInfo;
方法or属性:wantParam: { [key: string]: any };
新版本信息:object|ContinueDeviceInfo.d.ts| +|type有变化|类名:ExtensionContext;
方法or属性:currentHapModuleInfo: HapModuleInfo;
旧版本信息:|类名:ExtensionContext;
方法or属性:currentHapModuleInfo: HapModuleInfo;
新版本信息:HapModuleInfo|ExtensionContext.d.ts| +|type有变化|类名:ExtensionContext;
方法or属性:config: Configuration;
旧版本信息:|类名:ExtensionContext;
方法or属性:config: Configuration;
新版本信息:Configuration|ExtensionContext.d.ts| +|type有变化|类名:ExtensionContext;
方法or属性:extensionAbilityInfo: ExtensionAbilityInfo;
旧版本信息:|类名:ExtensionContext;
方法or属性:extensionAbilityInfo: ExtensionAbilityInfo;
新版本信息:ExtensionAbilityInfo|ExtensionContext.d.ts| +|type有变化|类名:ExtensionRunningInfo;
方法or属性:extension: ElementName;
旧版本信息:|类名:ExtensionRunningInfo;
方法or属性:extension: ElementName;
新版本信息:ElementName|ExtensionRunningInfo.d.ts| +|type有变化|类名:ExtensionRunningInfo;
方法or属性:pid: number;
旧版本信息:|类名:ExtensionRunningInfo;
方法or属性:pid: number;
新版本信息:number|ExtensionRunningInfo.d.ts| +|type有变化|类名:ExtensionRunningInfo;
方法or属性:uid: number;
旧版本信息:|类名:ExtensionRunningInfo;
方法or属性:uid: number;
新版本信息:number|ExtensionRunningInfo.d.ts| +|type有变化|类名:ExtensionRunningInfo;
方法or属性:processName: string;
旧版本信息:|类名:ExtensionRunningInfo;
方法or属性:processName: string;
新版本信息:string|ExtensionRunningInfo.d.ts| +|type有变化|类名:ExtensionRunningInfo;
方法or属性:startTime: number;
旧版本信息:|类名:ExtensionRunningInfo;
方法or属性:startTime: number;
新版本信息:number|ExtensionRunningInfo.d.ts| +|type有变化|类名:ExtensionRunningInfo;
方法or属性:clientPackage: Array\;
旧版本信息:|类名:ExtensionRunningInfo;
方法or属性:clientPackage: Array\;
新版本信息:Array\|ExtensionRunningInfo.d.ts| +|type有变化|类名:ExtensionRunningInfo;
方法or属性:type: bundle.ExtensionAbilityType;
旧版本信息:|类名:ExtensionRunningInfo;
方法or属性:type: bundle.ExtensionAbilityType;
新版本信息:bundle.ExtensionAbilityType|ExtensionRunningInfo.d.ts| +|type有变化|类名:MissionDeviceInfo;
方法or属性:deviceId: string;
旧版本信息:|类名:MissionDeviceInfo;
方法or属性:deviceId: string;
新版本信息:string|MissionDeviceInfo.d.ts| +|type有变化|类名:MissionInfo;
方法or属性:missionId: number;
旧版本信息:|类名:MissionInfo;
方法or属性:missionId: number;
新版本信息:number|MissionInfo.d.ts| +|type有变化|类名:MissionInfo;
方法or属性:runningState: number;
旧版本信息:|类名:MissionInfo;
方法or属性:runningState: number;
新版本信息:number|MissionInfo.d.ts| +|type有变化|类名:MissionInfo;
方法or属性:lockedState: boolean;
旧版本信息:|类名:MissionInfo;
方法or属性:lockedState: boolean;
新版本信息:boolean|MissionInfo.d.ts| +|type有变化|类名:MissionInfo;
方法or属性:timestamp: string;
旧版本信息:|类名:MissionInfo;
方法or属性:timestamp: string;
新版本信息:string|MissionInfo.d.ts| +|type有变化|类名:MissionInfo;
方法or属性:want: Want;
旧版本信息:|类名:MissionInfo;
方法or属性:want: Want;
新版本信息:Want|MissionInfo.d.ts| +|type有变化|类名:MissionInfo;
方法or属性:label: string;
旧版本信息:|类名:MissionInfo;
方法or属性:label: string;
新版本信息:string|MissionInfo.d.ts| +|type有变化|类名:MissionInfo;
方法or属性:iconPath: string;
旧版本信息:|类名:MissionInfo;
方法or属性:iconPath: string;
新版本信息:string|MissionInfo.d.ts| +|type有变化|类名:MissionInfo;
方法or属性:continuable: boolean;
旧版本信息:|类名:MissionInfo;
方法or属性:continuable: boolean;
新版本信息:boolean|MissionInfo.d.ts| +|type有变化|类名:MissionParameter;
方法or属性:deviceId: string;
旧版本信息:|类名:MissionParameter;
方法or属性:deviceId: string;
新版本信息:string|MissionParameter.d.ts| +|type有变化|类名:MissionParameter;
方法or属性:fixConflict: boolean;
旧版本信息:|类名:MissionParameter;
方法or属性:fixConflict: boolean;
新版本信息:boolean|MissionParameter.d.ts| +|type有变化|类名:MissionParameter;
方法or属性:tag: number;
旧版本信息:|类名:MissionParameter;
方法or属性:tag: number;
新版本信息:number|MissionParameter.d.ts| +|type有变化|类名:MissionSnapshot;
方法or属性:ability: ElementName;
旧版本信息:|类名:MissionSnapshot;
方法or属性:ability: ElementName;
新版本信息:ElementName|MissionSnapshot.d.ts| +|type有变化|类名:MissionSnapshot;
方法or属性:snapshot: image.PixelMap;
旧版本信息:|类名:MissionSnapshot;
方法or属性:snapshot: image.PixelMap;
新版本信息:image.PixelMap|MissionSnapshot.d.ts| +|type有变化|类名:ProcessData;
方法or属性:bundleName: string;
旧版本信息:|类名:ProcessData;
方法or属性:bundleName: string;
新版本信息:string|ProcessData.d.ts| +|type有变化|类名:ProcessData;
方法or属性:pid: number;
旧版本信息:|类名:ProcessData;
方法or属性:pid: number;
新版本信息:number|ProcessData.d.ts| +|type有变化|类名:ProcessData;
方法or属性:uid: number;
旧版本信息:|类名:ProcessData;
方法or属性:uid: number;
新版本信息:number|ProcessData.d.ts| +|type有变化|类名:ProcessData;
方法or属性:state: number;
旧版本信息:|类名:ProcessData;
方法or属性:state: number;
新版本信息:number|ProcessData.d.ts| +|type有变化|类名:ProcessData;
方法or属性:isContinuousTask: boolean;
旧版本信息:|类名:ProcessData;
方法or属性:isContinuousTask: boolean;
新版本信息:boolean|ProcessData.d.ts| +|type有变化|类名:ProcessData;
方法or属性:isKeepAlive: boolean;
旧版本信息:|类名:ProcessData;
方法or属性:isKeepAlive: boolean;
新版本信息:boolean|ProcessData.d.ts| +|type有变化|类名:ProcessInformation;
方法or属性:pid: number;
旧版本信息:|类名:ProcessInformation;
方法or属性:pid: number;
新版本信息:number|ProcessInformation.d.ts| +|type有变化|类名:ProcessInformation;
方法or属性:uid: number;
旧版本信息:|类名:ProcessInformation;
方法or属性:uid: number;
新版本信息:number|ProcessInformation.d.ts| +|type有变化|类名:ProcessInformation;
方法or属性:processName: string;
旧版本信息:|类名:ProcessInformation;
方法or属性:processName: string;
新版本信息:string|ProcessInformation.d.ts| +|type有变化|类名:ProcessInformation;
方法or属性:bundleNames: Array\;
旧版本信息:|类名:ProcessInformation;
方法or属性:bundleNames: Array\;
新版本信息:Array\|ProcessInformation.d.ts| +|type有变化|类名:ProcessRunningInfo;
方法or属性:pid: number;
旧版本信息:|类名:ProcessRunningInfo;
方法or属性:pid: number;
新版本信息:number|ProcessRunningInfo.d.ts| +|type有变化|类名:ProcessRunningInfo;
方法or属性:uid: number;
旧版本信息:|类名:ProcessRunningInfo;
方法or属性:uid: number;
新版本信息:number|ProcessRunningInfo.d.ts| +|type有变化|类名:ProcessRunningInfo;
方法or属性:processName: string;
旧版本信息:|类名:ProcessRunningInfo;
方法or属性:processName: string;
新版本信息:string|ProcessRunningInfo.d.ts| +|type有变化|类名:ProcessRunningInfo;
方法or属性:bundleNames: Array\;
旧版本信息:|类名:ProcessRunningInfo;
方法or属性:bundleNames: Array\;
新版本信息:Array\|ProcessRunningInfo.d.ts| +|type有变化|类名:ShellCmdResult;
方法or属性:stdResult: string;
旧版本信息:|类名:ShellCmdResult;
方法or属性:stdResult: string;
新版本信息:string|shellCmdResult.d.ts| +|type有变化|类名:ShellCmdResult;
方法or属性:exitCode: number;
旧版本信息:|类名:ShellCmdResult;
方法or属性:exitCode: number;
新版本信息:number|shellCmdResult.d.ts| +|type有变化|类名:ContinuationExtraParams;
方法or属性:deviceType?: Array\;
旧版本信息:|类名:ContinuationExtraParams;
方法or属性:deviceType?: Array\;
新版本信息:?Array\|continuationExtraParams.d.ts| +|type有变化|类名:ContinuationExtraParams;
方法or属性:targetBundle?: string;
旧版本信息:|类名:ContinuationExtraParams;
方法or属性:targetBundle?: string;
新版本信息:?string|continuationExtraParams.d.ts| +|type有变化|类名:ContinuationExtraParams;
方法or属性:description?: string;
旧版本信息:|类名:ContinuationExtraParams;
方法or属性:description?: string;
新版本信息:?string|continuationExtraParams.d.ts| +|type有变化|类名:ContinuationExtraParams;
方法or属性:filter?: any;
旧版本信息:|类名:ContinuationExtraParams;
方法or属性:filter?: any;
新版本信息:?any|continuationExtraParams.d.ts| +|type有变化|类名:ContinuationExtraParams;
方法or属性:continuationMode?: continuationManager.ContinuationMode;
旧版本信息:|类名:ContinuationExtraParams;
方法or属性:continuationMode?: continuationManager.ContinuationMode;
新版本信息:?continuationManager.ContinuationMode|continuationExtraParams.d.ts| +|type有变化|类名:ContinuationExtraParams;
方法or属性:authInfo?: { [key: string]: any };
旧版本信息:|类名:ContinuationExtraParams;
方法or属性:authInfo?: { [key: string]: any };
新版本信息:?object|continuationExtraParams.d.ts| +|type有变化|类名:ContinuationResult;
方法or属性:id: string;
旧版本信息:|类名:ContinuationResult;
方法or属性:id: string;
新版本信息:string|continuationResult.d.ts| +|type有变化|类名:ContinuationResult;
方法or属性:type: string;
旧版本信息:|类名:ContinuationResult;
方法or属性:type: string;
新版本信息:string|continuationResult.d.ts| +|type有变化|类名:ContinuationResult;
方法or属性:name: string;
旧版本信息:|类名:ContinuationResult;
方法or属性:name: string;
新版本信息:string|continuationResult.d.ts| +|type有变化|类名:TriggerInfo;
方法or属性:code: number;
旧版本信息:|类名:TriggerInfo;
方法or属性:code: number;
新版本信息:number|triggerInfo.d.ts| +|type有变化|类名:TriggerInfo;
方法or属性:want?: Want;
旧版本信息:|类名:TriggerInfo;
方法or属性:want?: Want;
新版本信息:?Want|triggerInfo.d.ts| +|type有变化|类名:TriggerInfo;
方法or属性:permission?: string;
旧版本信息:|类名:TriggerInfo;
方法or属性:permission?: string;
新版本信息:?string|triggerInfo.d.ts| +|type有变化|类名:TriggerInfo;
方法or属性:extraInfo?: { [key: string]: any };
旧版本信息:|类名:TriggerInfo;
方法or属性:extraInfo?: { [key: string]: any };
新版本信息:?object|triggerInfo.d.ts| +|type有变化|类名:WantAgentInfo;
方法or属性:wants: Array\;
旧版本信息:|类名:WantAgentInfo;
方法or属性:wants: Array\;
新版本信息:Array\|wantAgentInfo.d.ts| +|type有变化|类名:WantAgentInfo;
方法or属性:operationType: wantAgent.OperationType;
旧版本信息:|类名:WantAgentInfo;
方法or属性:operationType: wantAgent.OperationType;
新版本信息:wantAgent.OperationType|wantAgentInfo.d.ts| +|type有变化|类名:WantAgentInfo;
方法or属性:requestCode: number;
旧版本信息:|类名:WantAgentInfo;
方法or属性:requestCode: number;
新版本信息:number|wantAgentInfo.d.ts| +|type有变化|类名:WantAgentInfo;
方法or属性:wantAgentFlags?: Array\;
旧版本信息:|类名:WantAgentInfo;
方法or属性:wantAgentFlags?: Array\;
新版本信息:?Array\|wantAgentInfo.d.ts| +|type有变化|类名:WantAgentInfo;
方法or属性:extraInfo?: { [key: string]: any };
旧版本信息:|类名:WantAgentInfo;
方法or属性:extraInfo?: { [key: string]: any };
新版本信息:?object|wantAgentInfo.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-account.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-account.md new file mode 100644 index 0000000000..bc458d1fbe --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-account.md @@ -0,0 +1,17 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:AuthorizationExtensionAbility;
方法or属性:onStartAuthorization(request: AuthorizationRequest, callback: AuthorizationCallback): void;|@ohos.account.appAccount.AuthorizationExtensionAbility.d.ts| +|新增|NA|类名:AuthorizationRequest;
方法or属性:readonly callerUid: number;|@ohos.account.appAccount.AuthorizationExtensionAbility.d.ts| +|新增|NA|类名:AuthorizationRequest;
方法or属性:readonly parameters: appAccount.AccountCapabilityRequest;|@ohos.account.appAccount.AuthorizationExtensionAbility.d.ts| +|新增|NA|类名:AuthorizationCallback;
方法or属性:onResult: AsyncCallback\;|@ohos.account.appAccount.AuthorizationExtensionAbility.d.ts| +|新增|NA|类名:AccountCapabilityType;
方法or属性:AUTHORIZATION = 1|@ohos.account.appAccount.d.ts| +|新增|NA|类名:AccountCapabilityProvider;
方法or属性:readonly capabilityType: AccountCapabilityType;|@ohos.account.appAccount.d.ts| +|新增|NA|类名:AccountCapabilityProvider;
方法or属性:constructor(capabilityType: AccountCapabilityType);|@ohos.account.appAccount.d.ts| +|新增|NA|类名:AuthorizationProvider;
方法or属性:constructor(info: AuthorizationProviderInfo);|@ohos.account.appAccount.d.ts| +|新增|NA|类名:AuthorizationProviderInfo;
方法or属性:readonly bundleName: string;|@ohos.account.appAccount.d.ts| +|新增|NA|类名:AuthorizationProviderInfo;
方法or属性:readonly abilityName: string;|@ohos.account.appAccount.d.ts| +|新增|NA|类名:AccountCapabilityRequest;
方法or属性:constructor(provider: AccountCapabilityProvider);|@ohos.account.appAccount.d.ts| +|新增|NA|类名:AccountCapabilityResponse;
方法or属性:readonly request: AccountCapabilityRequest;|@ohos.account.appAccount.d.ts| +|新增|NA|类名:AccountCapabilityResponse;
方法or属性:constructor(request: AccountCapabilityRequest);|@ohos.account.appAccount.d.ts| +|新增|NA|类名:AccountCapabilityScheduler;
方法or属性:executeRequest(
request: AccountCapabilityRequest,
callback: AsyncCallback\
): void;|@ohos.account.appAccount.d.ts| +|新增|NA|类名:AccountCapabilityScheduler;
方法or属性:executeRequest(request: AccountCapabilityRequest): Promise\;|@ohos.account.appAccount.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-ai.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-ai.md new file mode 100644 index 0000000000..613b805911 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-ai.md @@ -0,0 +1,52 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:mindSporeLite;
方法or属性:function loadModelFromFile(
model: string,
context?: Context): Promise\;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:mindSporeLite;
方法or属性:function loadModelFromFile(
model: string, callback: Callback\): void;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:mindSporeLite;
方法or属性:function loadModelFromFile(
model: string,
context: Context, callback: Callback\): void;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:mindSporeLite;
方法or属性:function loadModelFromBuffer(
model: ArrayBuffer,
context?: Context): Promise\;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:mindSporeLite;
方法or属性:function loadModelFromBuffer(
model: ArrayBuffer, callback: Callback\): void;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:mindSporeLite;
方法or属性:function loadModelFromBuffer(
model: ArrayBuffer,
context: Context, callback: Callback\): void;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:mindSporeLite;
方法or属性:function loadModelFromFd(
model: number,
context?: Context): Promise\;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:mindSporeLite;
方法or属性:function loadModelFromFd(
model: number, callback: Callback\): void;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:mindSporeLite;
方法or属性:function loadModelFromFd(
model: number,
context: Context, callback: Callback\): void;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:Model;
方法or属性:getInputs(): MSTensor[];|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:Model;
方法or属性:predict(inputs: MSTensor[], callback: Callback\): void;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:Model;
方法or属性:predict(inputs: MSTensor[]): Promise\;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:Model;
方法or属性:resize(inputs: MSTensor[], dims: Array\>): boolean;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:Context;
方法or属性:target?: string[];|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:Context;
方法or属性:cpu?: CpuDevice;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:Context;
方法or属性:nnrt?: NNRTDevice;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:CpuDevice;
方法or属性:threadNum?: number;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:CpuDevice;
方法or属性:threadAffinityMode?: ThreadAffinityMode;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:CpuDevice;
方法or属性:threadAffinityCoreList?: number[];|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:CpuDevice;
方法or属性:precisionMode?: string;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:ThreadAffinityMode;
方法or属性:NO_AFFINITIES = 0|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:ThreadAffinityMode;
方法or属性:BIG_CORES_FIRST = 1|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:ThreadAffinityMode;
方法or属性:LITTLE_CORES_FIRST = 2|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:MSTensor;
方法or属性:name: string;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:MSTensor;
方法or属性:shape: number[];|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:MSTensor;
方法or属性:elementNum: number;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:MSTensor;
方法or属性:dataSize: number;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:MSTensor;
方法or属性:dtype: DataType;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:MSTensor;
方法or属性:format: Format;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:MSTensor;
方法or属性:getData(): ArrayBuffer;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:MSTensor;
方法or属性:setData(inputArray: ArrayBuffer): void;|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:DataType;
方法or属性:TYPE_UNKNOWN = 0|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:DataType;
方法or属性:NUMBER_TYPE_INT8 = 32|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:DataType;
方法or属性:NUMBER_TYPE_INT16 = 33|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:DataType;
方法or属性:NUMBER_TYPE_INT32 = 34|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:DataType;
方法or属性:NUMBER_TYPE_INT64 = 35|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:DataType;
方法or属性:NUMBER_TYPE_UINT8 = 37|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:DataType;
方法or属性:NUMBER_TYPE_UINT16 = 38|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:DataType;
方法or属性:NUMBER_TYPE_UINT32 = 39|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:DataType;
方法or属性:NUMBER_TYPE_UINT64 = 40|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:DataType;
方法or属性:NUMBER_TYPE_FLOAT16 = 42|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:DataType;
方法or属性:NUMBER_TYPE_FLOAT32 = 43|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:DataType;
方法or属性:NUMBER_TYPE_FLOAT64 = 44|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:Format;
方法or属性:DEFAULT_FORMAT = -1|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:Format;
方法or属性:NCHW = 0|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:Format;
方法or属性:NHWC = 1|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:Format;
方法or属性:NHWC4 = 2|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:Format;
方法or属性:HWKC = 3|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:Format;
方法or属性:HWCK = 4|@ohos.ai.mindSporeLite.d.ts| +|新增|NA|类名:Format;
方法or属性:KCHW = 5|@ohos.ai.mindSporeLite.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-application.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-application.md new file mode 100644 index 0000000000..a5450e2252 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-application.md @@ -0,0 +1,19 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:settings;
方法or属性:function getValue(context: Context, name: string, callback: AsyncCallback\): void;|@ohos.settings.d.ts| +|新增|NA|类名:settings;
方法or属性:function getValue(context: Context, name: string): Promise\;|@ohos.settings.d.ts| +|新增|NA|类名:settings;
方法or属性:function setValue(context: Context, name: string, value: string, callback: AsyncCallback\): void;|@ohos.settings.d.ts| +|新增|NA|类名:settings;
方法or属性:function setValue(context: Context, name: string, value: string): Promise\;|@ohos.settings.d.ts| +|新增|NA|类名:settings;
方法or属性:function getValueSync(context: Context, name: string, defValue: string): string;|@ohos.settings.d.ts| +|新增|NA|类名:settings;
方法or属性:function setValueSync(context: Context, name: string, value: string): boolean;|@ohos.settings.d.ts| +|废弃版本有变化|类名:settings;
方法or属性:function getURI(name: string): Promise\;
旧版本信息:|类名:settings;
方法or属性:function getURI(name: string): Promise\;
新版本信息:9
代替接口:|@ohos.settings.d.ts| +|废弃版本有变化|类名:settings;
方法or属性:function getValue(dataAbilityHelper: DataAbilityHelper, name: string): Promise\;
旧版本信息:|类名:settings;
方法or属性:function getValue(dataAbilityHelper: DataAbilityHelper, name: string): Promise\;
新版本信息:9
代替接口: ohos.settings#getValue|@ohos.settings.d.ts| +|废弃版本有变化|类名:settings;
方法or属性:function setValue(dataAbilityHelper: DataAbilityHelper, name: string, value: object): Promise\;
旧版本信息:|类名:settings;
方法or属性:function setValue(dataAbilityHelper: DataAbilityHelper, name: string, value: object): Promise\;
新版本信息:9
代替接口: ohos.settings#setValue|@ohos.settings.d.ts| +|新增(错误码)|类名:call;
方法or属性:function makeCall(phoneNumber: string): Promise\;
旧版本信息:|类名:call;
方法or属性:function makeCall(phoneNumber: string): Promise\;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:settings;
方法or属性:function setValue(dataAbilityHelper: DataAbilityHelper, name: string, value: object): Promise\;
旧版本信息:|类名:settings;
方法or属性:function setValue(dataAbilityHelper: DataAbilityHelper, name: string, value: object): Promise\;
新版本信息:systemapi|@ohos.settings.d.ts| +|model有变化|类名:settings;
方法or属性:function getValue(dataAbilityHelper: DataAbilityHelper, name: string, callback: AsyncCallback\): void;
旧版本信息:FAModelOnly|类名:settings;
方法or属性:function getValue(dataAbilityHelper: DataAbilityHelper, name: string, callback: AsyncCallback\): void;
新版本信息:famodelonly|@ohos.settings.d.ts| +|model有变化|类名:settings;
方法or属性:function getValue(dataAbilityHelper: DataAbilityHelper, name: string): Promise\;
旧版本信息:|类名:settings;
方法or属性:function getValue(dataAbilityHelper: DataAbilityHelper, name: string): Promise\;
新版本信息:famodelonly|@ohos.settings.d.ts| +|model有变化|类名:settings;
方法or属性:function setValue(dataAbilityHelper: DataAbilityHelper, name: string, value: object, callback: AsyncCallback\): void;
旧版本信息:FAModelOnly|类名:settings;
方法or属性:function setValue(dataAbilityHelper: DataAbilityHelper, name: string, value: object, callback: AsyncCallback\): void;
新版本信息:famodelonly|@ohos.settings.d.ts| +|model有变化|类名:settings;
方法or属性:function setValue(dataAbilityHelper: DataAbilityHelper, name: string, value: object): Promise\;
旧版本信息:|类名:settings;
方法or属性:function setValue(dataAbilityHelper: DataAbilityHelper, name: string, value: object): Promise\;
新版本信息:famodelonly|@ohos.settings.d.ts| +|model有变化|类名:settings;
方法or属性:function getValueSync(dataAbilityHelper: DataAbilityHelper, name: string, defValue: string): string;
旧版本信息:FAModelOnly|类名:settings;
方法or属性:function getValueSync(dataAbilityHelper: DataAbilityHelper, name: string, defValue: string): string;
新版本信息:famodelonly|@ohos.settings.d.ts| +|model有变化|类名:settings;
方法or属性:function setValueSync(dataAbilityHelper: DataAbilityHelper, name: string, value: string): boolean;
旧版本信息:FAModelOnly|类名:settings;
方法or属性:function setValueSync(dataAbilityHelper: DataAbilityHelper, name: string, value: string): boolean;
新版本信息:famodelonly|@ohos.settings.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-arkui.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-arkui.md new file mode 100644 index 0000000000..ef29755ca9 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-arkui.md @@ -0,0 +1,833 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:NamedRouterOptions;
方法or属性:params?: Object;|@ohos.router.d.ts| +|新增|NA|类名:dragController;
方法or属性:function executeDrag(custom: CustomBuilder \| DragItemInfo, dragInfo: DragInfo, callback: AsyncCallback\<{
event: DragEvent, extraParams: string
}>): void;|@ohos.arkui.dragController.d.ts| +|新增|NA|类名:dragController;
方法or属性:function executeDrag(custom: CustomBuilder \| DragItemInfo, dragInfo: DragInfo): Promise\<{
event: DragEvent, extraParams: string
}>;|@ohos.arkui.dragController.d.ts| +|新增|NA|类名:DragInfo;
方法or属性:pointerId: number;|@ohos.arkui.dragController.d.ts| +|新增|NA|类名:DragInfo;
方法or属性:data?: UDMF.UnifiedData;|@ohos.arkui.dragController.d.ts| +|新增|NA|类名:DragInfo;
方法or属性:extraParams?: string;|@ohos.arkui.dragController.d.ts| +|新增|NA|类名:LayeredDrawableDescriptor;
方法or属性:static getMaskClipPath(): string;|@ohos.arkui.drawableDescriptor.d.ts| +|新增|NA|类名:inspector;
方法or属性:function createComponentObserver(id: string): ComponentObserver;|@ohos.arkui.inspector.d.ts| +|新增|NA|类名:ComponentObserver;
方法or属性:on(type: 'layout', callback: () => void): void;|@ohos.arkui.inspector.d.ts| +|新增|NA|类名:ComponentObserver;
方法or属性:on(type: 'draw', callback: () => void): void;|@ohos.arkui.inspector.d.ts| +|新增|NA|类名:ComponentObserver;
方法or属性:off(type: 'layout', callback?: () => void): void;|@ohos.arkui.inspector.d.ts| +|新增|NA|类名:ComponentObserver;
方法or属性:off(type: 'draw', callback?: () => void): void;|@ohos.arkui.inspector.d.ts| +|新增|NA|类名:performanceMonitor;
方法or属性:function begin(scene: string, startInputType: ActionType, note?: string): void;|@ohos.arkui.performanceMonitor.d.ts| +|新增|NA|类名:performanceMonitor;
方法or属性:function end(scene: string): void;|@ohos.arkui.performanceMonitor.d.ts| +|新增|NA|类名:ActionType;
方法or属性:LAST_DOWN = 0|@ohos.arkui.performanceMonitor.d.ts| +|新增|NA|类名:ActionType;
方法or属性:LAST_UP = 1|@ohos.arkui.performanceMonitor.d.ts| +|新增|NA|类名:ActionType;
方法or属性:FIRST_MOVE = 2|@ohos.arkui.performanceMonitor.d.ts| +|新增|NA|类名:Font;
方法or属性:registerFont(options: font.FontOptions): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Font;
方法or属性:getSystemFontList(): Array\;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Font;
方法or属性:getFontByName(fontName: string): font.FontInfo;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:MediaQuery;
方法or属性:matchMediaSync(condition: string): mediaQuery.MediaQueryListener;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:UIInspector;
方法or属性:createComponentObserver(id: string): inspector.ComponentObserver;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:pushUrl(options: router.RouterOptions, callback: AsyncCallback\): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:pushUrl(options: router.RouterOptions): Promise\;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:pushUrl(options: router.RouterOptions, mode: router.RouterMode, callback: AsyncCallback\): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:pushUrl(options: router.RouterOptions, mode: router.RouterMode): Promise\;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:replaceUrl(options: router.RouterOptions, callback: AsyncCallback\): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:replaceUrl(options: router.RouterOptions): Promise\;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:replaceUrl(options: router.RouterOptions, mode: router.RouterMode, callback: AsyncCallback\): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:replaceUrl(options: router.RouterOptions, mode: router.RouterMode): Promise\;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:back(options: router.RouterOptions): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:clear(): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:getLength(): string;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:getState(): router.RouterState;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:showAlertBeforeBackPage(options: router.EnableAlertOptions): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:hideAlertBeforeBackPage(): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:getParams(): Object;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:pushNamedRoute(options: router.NamedRouterOptions, callback: AsyncCallback\): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:pushNamedRoute(options: router.NamedRouterOptions): Promise\;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:pushNamedRoute(options: router.NamedRouterOptions, mode: router.RouterMode, callback: AsyncCallback\): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:pushNamedRoute(options: router.NamedRouterOptions, mode: router.RouterMode): Promise\;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:replaceNamedRoute(options: router.NamedRouterOptions, callback: AsyncCallback\): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:replaceNamedRoute(options: router.NamedRouterOptions): Promise\;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:replaceNamedRoute(options: router.NamedRouterOptions, mode: router.RouterMode, callback: AsyncCallback\): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:Router;
方法or属性:replaceNamedRoute(options: router.NamedRouterOptions, mode: router.RouterMode): Promise\;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:PromptAction;
方法or属性:showToast(options: promptAction.ShowToastOptions): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:PromptAction;
方法or属性:showDialog(options: promptAction.ShowDialogOptions, callback: AsyncCallback\): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:PromptAction;
方法or属性:showDialog(options: promptAction.ShowDialogOptions): Promise\;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:PromptAction;
方法or属性:showActionMenu(options: promptAction.ActionMenuOptions, callback: promptAction.ActionMenuSuccessResponse): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:PromptAction;
方法or属性:showActionMenu(options: promptAction.ActionMenuOptions): Promise\;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:ComponentUtils;
方法or属性:getRectangleById(id: string): componentUtils.ComponentInfo;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:UIContext;
方法or属性:getFont(): Font;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:UIContext;
方法or属性:getMediaQuery(): MediaQuery;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:UIContext;
方法or属性:getUIInspector(): UIInspector;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:UIContext;
方法or属性:getRouter(): Router;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:UIContext;
方法or属性:getPromptAction(): PromptAction;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:UIContext;
方法or属性:getComponentUtils(): ComponentUtils;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:UIContext;
方法or属性:createAnimator(options: AnimatorOptions): AnimatorResult;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:UIContext;
方法or属性:animateTo(value: AnimateParam, event: () => void): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:UIContext;
方法or属性:showAlertDialog(options: AlertDialogParamWithConfirm \| AlertDialogParamWithButtons): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:UIContext;
方法or属性:showActionSheet(value: ActionSheetOptions): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:UIContext;
方法or属性:showDatePickerDialog(options: DatePickerDialogOptions): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:UIContext;
方法or属性:showTimePickerDialog(options: TimePickerDialogOptions): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:UIContext;
方法or属性:showTextPickerDialog(options: TextPickerDialogOptions): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:UIContext;
方法or属性:runScopedTask(callback: () => void): void;|@ohos.arkui.UIContext.d.ts| +|新增|NA|类名:componentUtils;
方法or属性:type Matrix4Result = [
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
];|@ohos.componentUtils.d.ts| +|新增|NA|类名:componentUtils;
方法or属性:function getRectangleById(id: string): ComponentInfo;|@ohos.componentUtils.d.ts| +|新增|NA|类名:ComponentInfo;
方法or属性:size: Size|@ohos.componentUtils.d.ts| +|新增|NA|类名:ComponentInfo;
方法or属性:localOffset: Offset|@ohos.componentUtils.d.ts| +|新增|NA|类名:ComponentInfo;
方法or属性:windowOffset: Offset|@ohos.componentUtils.d.ts| +|新增|NA|类名:ComponentInfo;
方法or属性:screenOffset: Offset|@ohos.componentUtils.d.ts| +|新增|NA|类名:ComponentInfo;
方法or属性:translate: TranslateResult|@ohos.componentUtils.d.ts| +|新增|NA|类名:ComponentInfo;
方法or属性:scale: ScaleResult|@ohos.componentUtils.d.ts| +|新增|NA|类名:ComponentInfo;
方法or属性:rotate: RotateResult|@ohos.componentUtils.d.ts| +|新增|NA|类名:ComponentInfo;
方法or属性:transform: Matrix4Result|@ohos.componentUtils.d.ts| +|新增|NA|类名:Size;
方法or属性:width: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:Size;
方法or属性:height: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:Offset;
方法or属性:x: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:TranslateResult;
方法or属性:x: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:ScaleResult;
方法or属性:x: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:RotateResult;
方法or属性:x: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:Offset;
方法or属性:y: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:TranslateResult;
方法or属性:y: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:ScaleResult;
方法or属性:y: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:RotateResult;
方法or属性:y: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:TranslateResult;
方法or属性:z: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:ScaleResult;
方法or属性:z: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:RotateResult;
方法or属性:z: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:ScaleResult;
方法or属性:centerX: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:RotateResult;
方法or属性:centerX: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:ScaleResult;
方法or属性:centerY: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:RotateResult;
方法or属性:centerY: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:RotateResult;
方法or属性:angle: number|@ohos.componentUtils.d.ts| +|新增|NA|类名:curves;
方法or属性:function customCurve(interpolate: (fraction: number) => number): ICurve;|@ohos.curves.d.ts| +|新增|NA|类名:font;
方法or属性:function getSystemFontList(): Array\;|@ohos.font.d.ts| +|新增|NA|类名:font;
方法or属性:function getFontByName(fontName: string): FontInfo;|@ohos.font.d.ts| +|新增|NA|类名:FontInfo;
方法or属性:path: string;|@ohos.font.d.ts| +|新增|NA|类名:FontInfo;
方法or属性:postScriptName: string;|@ohos.font.d.ts| +|新增|NA|类名:FontInfo;
方法or属性:fullName: string;|@ohos.font.d.ts| +|新增|NA|类名:FontInfo;
方法or属性:family: string;|@ohos.font.d.ts| +|新增|NA|类名:FontInfo;
方法or属性:subfamily: string;|@ohos.font.d.ts| +|新增|NA|类名:FontInfo;
方法or属性:weight: number;|@ohos.font.d.ts| +|新增|NA|类名:FontInfo;
方法or属性:width: number;|@ohos.font.d.ts| +|新增|NA|类名:FontInfo;
方法or属性:italic: boolean;|@ohos.font.d.ts| +|新增|NA|类名:FontInfo;
方法or属性:monoSpace: boolean;|@ohos.font.d.ts| +|新增|NA|类名:FontInfo;
方法or属性:symbolic: boolean;|@ohos.font.d.ts| +|新增|NA|类名:router;
方法or属性:function pushNamedRoute(options: NamedRouterOptions, callback: AsyncCallback\): void;|@ohos.router.d.ts| +|新增|NA|类名:router;
方法or属性:function pushNamedRoute(options: NamedRouterOptions): Promise\;|@ohos.router.d.ts| +|新增|NA|类名:router;
方法or属性:function pushNamedRoute(options: NamedRouterOptions, mode: RouterMode, callback: AsyncCallback\): void;|@ohos.router.d.ts| +|新增|NA|类名:router;
方法or属性:function pushNamedRoute(options: NamedRouterOptions, mode: RouterMode): Promise\;|@ohos.router.d.ts| +|新增|NA|类名:router;
方法or属性:function replaceNamedRoute(options: NamedRouterOptions, callback: AsyncCallback\): void;|@ohos.router.d.ts| +|新增|NA|类名:router;
方法or属性:function replaceNamedRoute(options: NamedRouterOptions): Promise\;|@ohos.router.d.ts| +|新增|NA|类名:router;
方法or属性:function replaceNamedRoute(options: NamedRouterOptions, mode: RouterMode, callback: AsyncCallback\): void;|@ohos.router.d.ts| +|新增|NA|类名:router;
方法or属性:function replaceNamedRoute(options: NamedRouterOptions, mode: RouterMode): Promise\;|@ohos.router.d.ts| +|新增|NA|类名:NamedRouterOptions;
方法or属性:name: string;|@ohos.router.d.ts| +|废弃版本有变化|类名:matrix4;
方法or属性:function copy(): Matrix4Transit;
旧版本信息:|类名:matrix4;
方法or属性:function copy(): Matrix4Transit;
新版本信息:10
代替接口:|@ohos.matrix4.d.ts| +|废弃版本有变化|类名:matrix4;
方法or属性:function invert(): Matrix4Transit;
旧版本信息:|类名:matrix4;
方法or属性:function invert(): Matrix4Transit;
新版本信息:10
代替接口:|@ohos.matrix4.d.ts| +|废弃版本有变化|类名:matrix4;
方法or属性:function combine(options: Matrix4Transit): Matrix4Transit;
旧版本信息:|类名:matrix4;
方法or属性:function combine(options: Matrix4Transit): Matrix4Transit;
新版本信息:10
代替接口:|@ohos.matrix4.d.ts| +|废弃版本有变化|类名:matrix4;
方法or属性:function translate(options: TranslateOption): Matrix4Transit;
旧版本信息:|类名:matrix4;
方法or属性:function translate(options: TranslateOption): Matrix4Transit;
新版本信息:10
代替接口:|@ohos.matrix4.d.ts| +|废弃版本有变化|类名:matrix4;
方法or属性:function scale(options: ScaleOption): Matrix4Transit;
旧版本信息:|类名:matrix4;
方法or属性:function scale(options: ScaleOption): Matrix4Transit;
新版本信息:10
代替接口:|@ohos.matrix4.d.ts| +|废弃版本有变化|类名:matrix4;
方法or属性:function rotate(options: RotateOption): Matrix4Transit;
旧版本信息:|类名:matrix4;
方法or属性:function rotate(options: RotateOption): Matrix4Transit;
新版本信息:10
代替接口:|@ohos.matrix4.d.ts| +|废弃版本有变化|类名:matrix4;
方法or属性:function transformPoint(options: [number, number]): [number, number];
旧版本信息:|类名:matrix4;
方法or属性:function transformPoint(options: [number, number]): [number, number];
新版本信息:10
代替接口:|@ohos.matrix4.d.ts| +|废弃版本有变化|类名:ClickEvent;
方法or属性:screenX: number;
旧版本信息:|类名:ClickEvent;
方法or属性:screenX: number;
新版本信息:10
代替接口: ClickEvent#windowX|common.d.ts| +|废弃版本有变化|类名:MouseEvent;
方法or属性:screenX: number;
旧版本信息:|类名:MouseEvent;
方法or属性:screenX: number;
新版本信息:10
代替接口: MouseEvent#windowX|common.d.ts| +|废弃版本有变化|类名:TouchObject;
方法or属性:screenX: number;
旧版本信息:|类名:TouchObject;
方法or属性:screenX: number;
新版本信息:10
代替接口: TouchObject#windowX|common.d.ts| +|废弃版本有变化|类名:ClickEvent;
方法or属性:screenY: number;
旧版本信息:|类名:ClickEvent;
方法or属性:screenY: number;
新版本信息:10
代替接口: ClickEvent#windowY|common.d.ts| +|废弃版本有变化|类名:MouseEvent;
方法or属性:screenY: number;
旧版本信息:|类名:MouseEvent;
方法or属性:screenY: number;
新版本信息:10
代替接口: MouseEvent#windowY|common.d.ts| +|废弃版本有变化|类名:TouchObject;
方法or属性:screenY: number;
旧版本信息:|类名:TouchObject;
方法or属性:screenY: number;
新版本信息:10
代替接口: TouchObject#windowY|common.d.ts| +|废弃版本有变化|类名:DragEvent;
方法or属性:getX(): number;
旧版本信息:|类名:DragEvent;
方法or属性:getX(): number;
新版本信息:10
代替接口: DragEvent#getWindowX()|common.d.ts| +|废弃版本有变化|类名:DragEvent;
方法or属性:getY(): number;
旧版本信息:|类名:DragEvent;
方法or属性:getY(): number;
新版本信息:10
代替接口: DragEvent#getWindowY()|common.d.ts| +|废弃版本有变化|类名:AppStorage;
方法or属性:static Link(propName: string): any;
旧版本信息:|类名:AppStorage;
方法or属性:static Link(propName: string): any;
新版本信息:10
代替接口: AppStorage#link|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:AppStorage;
方法or属性:static SetAndLink\(propName: string, defaultValue: T): SubscribedAbstractProperty\;
旧版本信息:|类名:AppStorage;
方法or属性:static SetAndLink\(propName: string, defaultValue: T): SubscribedAbstractProperty\;
新版本信息:10
代替接口: AppStorage#setAndLink|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:AppStorage;
方法or属性:static Prop(propName: string): any;
旧版本信息:|类名:AppStorage;
方法or属性:static Prop(propName: string): any;
新版本信息:10
代替接口: AppStorage#prop|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:AppStorage;
方法or属性:static SetAndProp\(propName: string, defaultValue: S): SubscribedAbstractProperty\;
旧版本信息:|类名:AppStorage;
方法or属性:static SetAndProp\(propName: string, defaultValue: S): SubscribedAbstractProperty\;
新版本信息:10
代替接口: AppStorage#setAndProp|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:AppStorage;
方法or属性:static Has(propName: string): boolean;
旧版本信息:|类名:AppStorage;
方法or属性:static Has(propName: string): boolean;
新版本信息:10
代替接口: AppStorage#has|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:AppStorage;
方法or属性:static Get\(propName: string): T \| undefined;
旧版本信息:|类名:AppStorage;
方法or属性:static Get\(propName: string): T \| undefined;
新版本信息:10
代替接口: AppStorage#get|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:AppStorage;
方法or属性:static Set\(propName: string, newValue: T): boolean;
旧版本信息:|类名:AppStorage;
方法or属性:static Set\(propName: string, newValue: T): boolean;
新版本信息:10
代替接口: AppStorage#set|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:AppStorage;
方法or属性:static SetOrCreate\(propName: string, newValue: T): void;
旧版本信息:|类名:AppStorage;
方法or属性:static SetOrCreate\(propName: string, newValue: T): void;
新版本信息:10
代替接口: AppStorage#setOrCreate|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:AppStorage;
方法or属性:static Delete(propName: string): boolean;
旧版本信息:|类名:AppStorage;
方法or属性:static Delete(propName: string): boolean;
新版本信息:10
代替接口: AppStorage#delete|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:AppStorage;
方法or属性:static Keys(): IterableIterator\;
旧版本信息:|类名:AppStorage;
方法or属性:static Keys(): IterableIterator\;
新版本信息:10
代替接口: AppStorage#keys|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:AppStorage;
方法or属性:static Clear(): boolean;
旧版本信息:|类名:AppStorage;
方法or属性:static Clear(): boolean;
新版本信息:10
代替接口: AppStorage#clear|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:AppStorage;
方法or属性:static IsMutable(propName: string): boolean;
旧版本信息:|类名:AppStorage;
方法or属性:static IsMutable(propName: string): boolean;
新版本信息:10
代替接口:|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:AppStorage;
方法or属性:static Size(): number;
旧版本信息:|类名:AppStorage;
方法or属性:static Size(): number;
新版本信息:10
代替接口: AppStorage#size|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:Environment;
方法or属性:static EnvProp\(key: string, value: S): boolean;
旧版本信息:|类名:Environment;
方法or属性:static EnvProp\(key: string, value: S): boolean;
新版本信息:10
代替接口: Environment#envProp|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:Environment;
方法or属性:static EnvProps(
props: {
key: string;
defaultValue: any;
}[],
): void;
旧版本信息:|类名:Environment;
方法or属性:static EnvProps(
props: {
key: string;
defaultValue: any;
}[],
): void;
新版本信息:10
代替接口: Environment#envProps|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:Environment;
方法or属性:static Keys(): Array\;
旧版本信息:|类名:Environment;
方法or属性:static Keys(): Array\;
新版本信息:10
代替接口: Environment#keys|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:PersistentStorage;
方法or属性:static Keys(): Array\;
旧版本信息:|类名:PersistentStorage;
方法or属性:static Keys(): Array\;
新版本信息:10
代替接口: PersistentStorage#keys|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:PersistentStorage;
方法or属性:static PersistProp\(key: string, defaultValue: T): void;
旧版本信息:|类名:PersistentStorage;
方法or属性:static PersistProp\(key: string, defaultValue: T): void;
新版本信息:10
代替接口: PersistentStorage#persistProp|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:PersistentStorage;
方法or属性:static DeleteProp(key: string): void;
旧版本信息:|类名:PersistentStorage;
方法or属性:static DeleteProp(key: string): void;
新版本信息:10
代替接口: PersistentStorage#deleteProp|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:PersistentStorage;
方法or属性:static PersistProps(
properties: {
key: string;
defaultValue: any;
}[],
): void;
旧版本信息:|类名:PersistentStorage;
方法or属性:static PersistProps(
properties: {
key: string;
defaultValue: any;
}[],
): void;
新版本信息:10
代替接口: PersistentStorage#PersistProps|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:LocalStorage;
方法or属性:static GetShared(): LocalStorage;
旧版本信息:|类名:LocalStorage;
方法or属性:static GetShared(): LocalStorage;
新版本信息:10
代替接口: LocalStorage#getShared|common_ts_ets_api.d.ts| +|废弃版本有变化|类名:ListItemInterface;
方法or属性:(value?: string): ListItemAttribute;
旧版本信息:|类名:ListItemInterface;
方法or属性:(value?: string): ListItemAttribute;
新版本信息:10
代替接口: listItem/ListItemInterface|list_item.d.ts| +|废弃版本有变化|类名:NavigationAttribute;
方法or属性:toolBar(value: object \| CustomBuilder): NavigationAttribute;
旧版本信息:|类名:NavigationAttribute;
方法or属性:toolBar(value: object \| CustomBuilder): NavigationAttribute;
新版本信息:10
代替接口: navigation/NavigationAttribute#toolbarConfiguration|navigation.d.ts| +|废弃版本有变化|类名:WebAttribute;
方法or属性:password(password: boolean): WebAttribute;
旧版本信息:|类名:WebAttribute;
方法or属性:password(password: boolean): WebAttribute;
新版本信息:10
代替接口:|web.d.ts| +|废弃版本有变化|类名:WebAttribute;
方法or属性:tableData(tableData: boolean): WebAttribute;
旧版本信息:|类名:WebAttribute;
方法or属性:tableData(tableData: boolean): WebAttribute;
新版本信息:10
代替接口:|web.d.ts| +|废弃版本有变化|类名:WebAttribute;
方法or属性:wideViewModeAccess(wideViewModeAccess: boolean): WebAttribute;
旧版本信息:|类名:WebAttribute;
方法or属性:wideViewModeAccess(wideViewModeAccess: boolean): WebAttribute;
新版本信息:10
代替接口:|web.d.ts| +|访问级别有变化|类名:uiAppearance;
方法or属性:declare uiAppearance
旧版本信息:|类名:uiAppearance;
方法or属性:declare uiAppearance
新版本信息:systemapi|@ohos.uiAppearance.d.ts| +|访问级别有变化|类名:DarkMode;
方法or属性:enum DarkMode
旧版本信息:|类名:DarkMode;
方法or属性:enum DarkMode
新版本信息:systemapi|@ohos.uiAppearance.d.ts| +|访问级别有变化|类名:DarkMode;
方法or属性:ALWAYS_DARK = 0
旧版本信息:|类名:DarkMode;
方法or属性:ALWAYS_DARK = 0
新版本信息:systemapi|@ohos.uiAppearance.d.ts| +|访问级别有变化|类名:DarkMode;
方法or属性:ALWAYS_LIGHT = 1
旧版本信息:|类名:DarkMode;
方法or属性:ALWAYS_LIGHT = 1
新版本信息:systemapi|@ohos.uiAppearance.d.ts| +|访问级别有变化|类名:CommonMethod;
方法or属性:sphericalEffect(value: number): T;
旧版本信息:|类名:CommonMethod;
方法or属性:sphericalEffect(value: number): T;
新版本信息:systemapi|common.d.ts| +|访问级别有变化|类名:CommonMethod;
方法or属性:lightUpEffect(value: number): T;
旧版本信息:|类名:CommonMethod;
方法or属性:lightUpEffect(value: number): T;
新版本信息:systemapi|common.d.ts| +|访问级别有变化|类名:CommonMethod;
方法or属性:pixelStretchEffect(options: PixelStretchEffectOptions): T;
旧版本信息:|类名:CommonMethod;
方法or属性:pixelStretchEffect(options: PixelStretchEffectOptions): T;
新版本信息:systemapi|common.d.ts| +|访问级别有变化|类名:ChainEdgeEffect;
方法or属性:DEFAULT
旧版本信息:|类名:ChainEdgeEffect;
方法or属性:DEFAULT
新版本信息:systemapi|list.d.ts| +|访问级别有变化|类名:ChainEdgeEffect;
方法or属性:STRETCH
旧版本信息:|类名:ChainEdgeEffect;
方法or属性:STRETCH
新版本信息:systemapi|list.d.ts| +|访问级别有变化|类名:ChainAnimationOptions;
方法or属性:minSpace: Length;
旧版本信息:|类名:ChainAnimationOptions;
方法or属性:minSpace: Length;
新版本信息:systemapi|list.d.ts| +|访问级别有变化|类名:ChainAnimationOptions;
方法or属性:maxSpace: Length;
旧版本信息:|类名:ChainAnimationOptions;
方法or属性:maxSpace: Length;
新版本信息:systemapi|list.d.ts| +|访问级别有变化|类名:ChainAnimationOptions;
方法or属性:conductivity?: number;
旧版本信息:|类名:ChainAnimationOptions;
方法or属性:conductivity?: number;
新版本信息:systemapi|list.d.ts| +|访问级别有变化|类名:ChainAnimationOptions;
方法or属性:intensity?: number;
旧版本信息:|类名:ChainAnimationOptions;
方法or属性:intensity?: number;
新版本信息:systemapi|list.d.ts| +|访问级别有变化|类名:ChainAnimationOptions;
方法or属性:edgeEffect?: ChainEdgeEffect;
旧版本信息:|类名:ChainAnimationOptions;
方法or属性:edgeEffect?: ChainEdgeEffect;
新版本信息:systemapi|list.d.ts| +|访问级别有变化|类名:RRect;
方法or属性:left: number;
旧版本信息:|类名:RRect;
方法or属性:left: number;
新版本信息:systemapi|remote_window.d.ts| +|访问级别有变化|类名:RRect;
方法or属性:top: number;
旧版本信息:|类名:RRect;
方法or属性:top: number;
新版本信息:systemapi|remote_window.d.ts| +|访问级别有变化|类名:RRect;
方法or属性:width: number;
旧版本信息:|类名:RRect;
方法or属性:width: number;
新版本信息:systemapi|remote_window.d.ts| +|访问级别有变化|类名:RRect;
方法or属性:height: number;
旧版本信息:|类名:RRect;
方法or属性:height: number;
新版本信息:systemapi|remote_window.d.ts| +|访问级别有变化|类名:RRect;
方法or属性:radius: number;
旧版本信息:|类名:RRect;
方法or属性:radius: number;
新版本信息:systemapi|remote_window.d.ts| +|访问级别有变化|类名:WindowAnimationTarget;
方法or属性:readonly bundleName: string;
旧版本信息:|类名:WindowAnimationTarget;
方法or属性:readonly bundleName: string;
新版本信息:systemapi|remote_window.d.ts| +|访问级别有变化|类名:WindowAnimationTarget;
方法or属性:readonly abilityName: string;
旧版本信息:|类名:WindowAnimationTarget;
方法or属性:readonly abilityName: string;
新版本信息:systemapi|remote_window.d.ts| +|访问级别有变化|类名:WindowAnimationTarget;
方法or属性:readonly windowBounds: RRect;
旧版本信息:|类名:WindowAnimationTarget;
方法or属性:readonly windowBounds: RRect;
新版本信息:systemapi|remote_window.d.ts| +|访问级别有变化|类名:WindowAnimationTarget;
方法or属性:readonly missionId: number;
旧版本信息:|类名:WindowAnimationTarget;
方法or属性:readonly missionId: number;
新版本信息:systemapi|remote_window.d.ts| +|type有变化|类名:Matrix2D;
方法or属性:scaleX?: number;
旧版本信息:|类名:Matrix2D;
方法or属性:scaleX?: number;
新版本信息:number|canvaspattern.d.ts| +|type有变化|类名:Matrix2D;
方法or属性:rotateY?: number;
旧版本信息:|类名:Matrix2D;
方法or属性:rotateY?: number;
新版本信息:number|canvaspattern.d.ts| +|type有变化|类名:Matrix2D;
方法or属性:rotateX?: number;
旧版本信息:|类名:Matrix2D;
方法or属性:rotateX?: number;
新版本信息:number|canvaspattern.d.ts| +|type有变化|类名:Matrix2D;
方法or属性:scaleY?: number;
旧版本信息:|类名:Matrix2D;
方法or属性:scaleY?: number;
新版本信息:number|canvaspattern.d.ts| +|type有变化|类名:Matrix2D;
方法or属性:translateX?: number;
旧版本信息:|类名:Matrix2D;
方法or属性:translateX?: number;
新版本信息:number|canvaspattern.d.ts| +|type有变化|类名:Matrix2D;
方法or属性:translateY?: number;
旧版本信息:|类名:Matrix2D;
方法or属性:translateY?: number;
新版本信息:number|canvaspattern.d.ts| +|type有变化|类名:FontOptions;
方法or属性:familyName: string \| Resource;
旧版本信息:|类名:FontOptions;
方法or属性:familyName: string \| Resource;
新版本信息:string \| Resource|@ohos.font.d.ts| +|type有变化|类名:FontOptions;
方法or属性:familySrc: string \| Resource;
旧版本信息:|类名:FontOptions;
方法or属性:familySrc: string \| Resource;
新版本信息:string \| Resource|@ohos.font.d.ts| +|type有变化|类名:TranslateOption;
方法or属性:x?: number;
旧版本信息:|类名:TranslateOption;
方法or属性:x?: number;
新版本信息:?number|@ohos.matrix4.d.ts| +|type有变化|类名:ScaleOption;
方法or属性:x?: number;
旧版本信息:|类名:ScaleOption;
方法or属性:x?: number;
新版本信息:?number|@ohos.matrix4.d.ts| +|type有变化|类名:RotateOption;
方法or属性:x?: number;
旧版本信息:|类名:RotateOption;
方法or属性:x?: number;
新版本信息:?number|@ohos.matrix4.d.ts| +|type有变化|类名:TranslateOption;
方法or属性:y?: number;
旧版本信息:|类名:TranslateOption;
方法or属性:y?: number;
新版本信息:?number|@ohos.matrix4.d.ts| +|type有变化|类名:ScaleOption;
方法or属性:y?: number;
旧版本信息:|类名:ScaleOption;
方法or属性:y?: number;
新版本信息:?number|@ohos.matrix4.d.ts| +|type有变化|类名:RotateOption;
方法or属性:y?: number;
旧版本信息:|类名:RotateOption;
方法or属性:y?: number;
新版本信息:?number|@ohos.matrix4.d.ts| +|type有变化|类名:TranslateOption;
方法or属性:z?: number;
旧版本信息:|类名:TranslateOption;
方法or属性:z?: number;
新版本信息:?number|@ohos.matrix4.d.ts| +|type有变化|类名:ScaleOption;
方法or属性:z?: number;
旧版本信息:|类名:ScaleOption;
方法or属性:z?: number;
新版本信息:?number|@ohos.matrix4.d.ts| +|type有变化|类名:RotateOption;
方法or属性:z?: number;
旧版本信息:|类名:RotateOption;
方法or属性:z?: number;
新版本信息:?number|@ohos.matrix4.d.ts| +|type有变化|类名:ScaleOption;
方法or属性:centerX?: number;
旧版本信息:|类名:ScaleOption;
方法or属性:centerX?: number;
新版本信息:?number|@ohos.matrix4.d.ts| +|type有变化|类名:RotateOption;
方法or属性:centerX?: number;
旧版本信息:|类名:RotateOption;
方法or属性:centerX?: number;
新版本信息:?number|@ohos.matrix4.d.ts| +|type有变化|类名:ScaleOption;
方法or属性:centerY?: number;
旧版本信息:|类名:ScaleOption;
方法or属性:centerY?: number;
新版本信息:?number|@ohos.matrix4.d.ts| +|type有变化|类名:RotateOption;
方法or属性:centerY?: number;
旧版本信息:|类名:RotateOption;
方法or属性:centerY?: number;
新版本信息:?number|@ohos.matrix4.d.ts| +|type有变化|类名:RotateOption;
方法or属性:angle?: number;
旧版本信息:|类名:RotateOption;
方法or属性:angle?: number;
新版本信息:?number|@ohos.matrix4.d.ts| +|type有变化|类名:MeasureOptions;
方法or属性:textContent: string \| Resource;
旧版本信息:( string \| Resource )|类名:MeasureOptions;
方法or属性:textContent: string \| Resource;
新版本信息:string \| Resource|@ohos.measure.d.ts| +|type有变化|类名:MeasureOptions;
方法or属性:constraintWidth?: number \| string \| Resource;
旧版本信息:|类名:MeasureOptions;
方法or属性:constraintWidth?: number \| string \| Resource;
新版本信息:?(number \| string \| Resource)|@ohos.measure.d.ts| +|type有变化|类名:MeasureOptions;
方法or属性:fontSize?: number \| string \| Resource;
旧版本信息:|类名:MeasureOptions;
方法or属性:fontSize?: number \| string \| Resource;
新版本信息:?(number \| string \| Resource)|@ohos.measure.d.ts| +|type有变化|类名:MeasureOptions;
方法or属性:fontStyle?: number \| FontStyle;
旧版本信息:|类名:MeasureOptions;
方法or属性:fontStyle?: number \| FontStyle;
新版本信息:?(number \| FontStyle)|@ohos.measure.d.ts| +|type有变化|类名:MeasureOptions;
方法or属性:fontWeight?: number \| string \| FontWeight;
旧版本信息:|类名:MeasureOptions;
方法or属性:fontWeight?: number \| string \| FontWeight;
新版本信息:?(number \| string \| FontWeight)|@ohos.measure.d.ts| +|type有变化|类名:MeasureOptions;
方法or属性:fontFamily?: string \| Resource;
旧版本信息:|类名:MeasureOptions;
方法or属性:fontFamily?: string \| Resource;
新版本信息:?(number \| Resource)|@ohos.measure.d.ts| +|type有变化|类名:MeasureOptions;
方法or属性:letterSpacing?: number \| string;
旧版本信息:|类名:MeasureOptions;
方法or属性:letterSpacing?: number \| string;
新版本信息:?(number \| string)|@ohos.measure.d.ts| +|type有变化|类名:MeasureOptions;
方法or属性:textAlign?: number \| TextAlign;
旧版本信息:|类名:MeasureOptions;
方法or属性:textAlign?: number \| TextAlign;
新版本信息:?(number \| TextAlign)|@ohos.measure.d.ts| +|type有变化|类名:MeasureOptions;
方法or属性:overflow?: number \| TextOverflow;
旧版本信息:|类名:MeasureOptions;
方法or属性:overflow?: number \| TextOverflow;
新版本信息:?(number \| TextOverflow)|@ohos.measure.d.ts| +|type有变化|类名:MeasureOptions;
方法or属性:maxLines?: number;
旧版本信息:|类名:MeasureOptions;
方法or属性:maxLines?: number;
新版本信息:?number|@ohos.measure.d.ts| +|type有变化|类名:MeasureOptions;
方法or属性:lineHeight?: number \| string \| Resource;
旧版本信息:|类名:MeasureOptions;
方法or属性:lineHeight?: number \| string \| Resource;
新版本信息:?(number \| string \| Resource)|@ohos.measure.d.ts| +|type有变化|类名:MeasureOptions;
方法or属性:baselineOffset?: number \| string;
旧版本信息:|类名:MeasureOptions;
方法or属性:baselineOffset?: number \| string;
新版本信息:?(number \| string)|@ohos.measure.d.ts| +|type有变化|类名:MeasureOptions;
方法or属性:textCase?: number \| TextCase;
旧版本信息:|类名:MeasureOptions;
方法or属性:textCase?: number \| TextCase;
新版本信息:?(number \| TextCase)|@ohos.measure.d.ts| +|type有变化|类名:MediaQueryResult;
方法or属性:readonly matches: boolean;
旧版本信息:|类名:MediaQueryResult;
方法or属性:readonly matches: boolean;
新版本信息:boolean|@ohos.mediaquery.d.ts| +|type有变化|类名:MediaQueryResult;
方法or属性:readonly media: string;
旧版本信息:|类名:MediaQueryResult;
方法or属性:readonly media: string;
新版本信息:string|@ohos.mediaquery.d.ts| +|type有变化|类名:ShowToastOptions;
方法or属性:duration?: number;
旧版本信息:|类名:ShowToastOptions;
方法or属性:duration?: number;
新版本信息:?number|@ohos.prompt.d.ts| +|type有变化|类名:ShowToastOptions;
方法or属性:bottom?: string \| number;
旧版本信息:|类名:ShowToastOptions;
方法or属性:bottom?: string \| number;
新版本信息:?(string \| number)|@ohos.prompt.d.ts| +|type有变化|类名:ShowDialogOptions;
方法or属性:title?: string;
旧版本信息:string|类名:ShowDialogOptions;
方法or属性:title?: string;
新版本信息:?string|@ohos.prompt.d.ts| +|type有变化|类名:ActionMenuOptions;
方法or属性:title?: string;
旧版本信息:string|类名:ActionMenuOptions;
方法or属性:title?: string;
新版本信息:?string|@ohos.prompt.d.ts| +|type有变化|类名:ShowDialogOptions;
方法or属性:message?: string;
旧版本信息:string|类名:ShowDialogOptions;
方法or属性:message?: string;
新版本信息:?string|@ohos.prompt.d.ts| +|type有变化|类名:ShowDialogOptions;
方法or属性:buttons?: [Button, Button?, Button?];
旧版本信息:|类名:ShowDialogOptions;
方法or属性:buttons?: [Button, Button?, Button?];
新版本信息:?([Button, Button?, Button?])|@ohos.prompt.d.ts| +|type有变化|类名:ActionMenuSuccessResponse;
方法or属性:index: number;
旧版本信息:|类名:ActionMenuSuccessResponse;
方法or属性:index: number;
新版本信息:number|@ohos.prompt.d.ts| +|type有变化|类名:ActionMenuOptions;
方法or属性:buttons: [Button, Button?, Button?, Button?, Button?, Button?];
旧版本信息:|类名:ActionMenuOptions;
方法or属性:buttons: [Button, Button?, Button?, Button?, Button?, Button?];
新版本信息:[Button, Button?, Button?, Button?, Button?, Button?]|@ohos.prompt.d.ts| +|type有变化|类名:ShowToastOptions;
方法or属性:duration?: number;
旧版本信息:number|类名:ShowToastOptions;
方法or属性:duration?: number;
新版本信息:?number|@ohos.promptAction.d.ts| +|type有变化|类名:ShowToastOptions;
方法or属性:bottom?: string \| number;
旧版本信息:string \| number|类名:ShowToastOptions;
方法or属性:bottom?: string \| number;
新版本信息:?string \| number|@ohos.promptAction.d.ts| +|type有变化|类名:ShowDialogOptions;
方法or属性:title?: string \| Resource;
旧版本信息:string \| Resource|类名:ShowDialogOptions;
方法or属性:title?: string \| Resource;
新版本信息:?string \| Resource|@ohos.promptAction.d.ts| +|type有变化|类名:ActionMenuOptions;
方法or属性:title?: string \| Resource;
旧版本信息:string \| Resource|类名:ActionMenuOptions;
方法or属性:title?: string \| Resource;
新版本信息:?string \| Resource|@ohos.promptAction.d.ts| +|type有变化|类名:ShowDialogOptions;
方法or属性:message?: string \| Resource;
旧版本信息:string \| Resource|类名:ShowDialogOptions;
方法or属性:message?: string \| Resource;
新版本信息:?string \| Resource|@ohos.promptAction.d.ts| +|type有变化|类名:RouterOptions;
方法or属性:params?: Object;
旧版本信息:Object|类名:RouterOptions;
方法or属性:params?: Object;
新版本信息:?Object|@ohos.router.d.ts| +|type有变化|类名:AppResponse;
方法or属性:appID: string;
旧版本信息:|类名:AppResponse;
方法or属性:appID: string;
新版本信息:string|@system.app.d.ts| +|type有变化|类名:AppResponse;
方法or属性:appName: string;
旧版本信息:|类名:AppResponse;
方法or属性:appName: string;
新版本信息:string|@system.app.d.ts| +|type有变化|类名:AppResponse;
方法or属性:versionName: string;
旧版本信息:|类名:AppResponse;
方法or属性:versionName: string;
新版本信息:string|@system.app.d.ts| +|type有变化|类名:AppResponse;
方法or属性:versionCode: number;
旧版本信息:|类名:AppResponse;
方法or属性:versionCode: number;
新版本信息:string|@system.app.d.ts| +|type有变化|类名:ScreenOnVisibleOptions;
方法or属性:visible?: boolean;
旧版本信息:|类名:ScreenOnVisibleOptions;
方法or属性:visible?: boolean;
新版本信息:?string|@system.app.d.ts| +|type有变化|类名:ScreenOnVisibleOptions;
方法or属性:success?: () => void;
旧版本信息:|类名:ScreenOnVisibleOptions;
方法or属性:success?: () => void;
新版本信息:?(() => void)|@system.app.d.ts| +|type有变化|类名:ScreenOnVisibleOptions;
方法or属性:fail?: (data: string, code: number) => void;
旧版本信息:|类名:ScreenOnVisibleOptions;
方法or属性:fail?: (data: string, code: number) => void;
新版本信息:?((data: string, code: number) => void)|@system.app.d.ts| +|type有变化|类名:ScreenOnVisibleOptions;
方法or属性:complete?: () => void;
旧版本信息:|类名:ScreenOnVisibleOptions;
方法or属性:complete?: () => void;
新版本信息:?(() => void)|@system.app.d.ts| +|type有变化|类名:RequestFullWindowOptions;
方法or属性:duration: number;
旧版本信息:|类名:RequestFullWindowOptions;
方法or属性:duration: number;
新版本信息:number|@system.app.d.ts| +|type有变化|类名:LocaleResponse;
方法or属性:language: string;
旧版本信息:|类名:LocaleResponse;
方法or属性:language: string;
新版本信息:string|@system.configuration.d.ts| +|type有变化|类名:LocaleResponse;
方法or属性:countryOrRegion: string;
旧版本信息:|类名:LocaleResponse;
方法or属性:countryOrRegion: string;
新版本信息:string|@system.configuration.d.ts| +|type有变化|类名:LocaleResponse;
方法or属性:dir: "ltr" \| "rtl";
旧版本信息:|类名:LocaleResponse;
方法or属性:dir: "ltr" \| "rtl";
新版本信息:'ltr' \| 'rtl'|@system.configuration.d.ts| +|type有变化|类名:MediaQueryEvent;
方法or属性:matches: boolean;
旧版本信息:|类名:MediaQueryEvent;
方法or属性:matches: boolean;
新版本信息:boolean|@system.mediaquery.d.ts| +|type有变化|类名:MediaQueryList;
方法or属性:media?: string;
旧版本信息:|类名:MediaQueryList;
方法or属性:media?: string;
新版本信息:?string|@system.mediaquery.d.ts| +|type有变化|类名:MediaQueryList;
方法or属性:matches?: boolean;
旧版本信息:|类名:MediaQueryList;
方法or属性:matches?: boolean;
新版本信息:?boolean|@system.mediaquery.d.ts| +|type有变化|类名:MediaQueryList;
方法or属性:onchange?: (matches: boolean) => void;
旧版本信息:|类名:MediaQueryList;
方法or属性:onchange?: (matches: boolean) => void;
新版本信息:?((matches: boolean) => void)|@system.mediaquery.d.ts| +|type有变化|类名:ShowToastOptions;
方法or属性:message: string;
旧版本信息:|类名:ShowToastOptions;
方法or属性:message: string;
新版本信息:string|@system.prompt.d.ts| +|type有变化|类名:ShowToastOptions;
方法or属性:duration?: number;
旧版本信息:|类名:ShowToastOptions;
方法or属性:duration?: number;
新版本信息:number|@system.prompt.d.ts| +|type有变化|类名:ShowToastOptions;
方法or属性:bottom?: string \| number;
旧版本信息:|类名:ShowToastOptions;
方法or属性:bottom?: string \| number;
新版本信息:string \| number|@system.prompt.d.ts| +|type有变化|类名:Button;
方法or属性:text: string;
旧版本信息:|类名:Button;
方法or属性:text: string;
新版本信息:string|@system.prompt.d.ts| +|type有变化|类名:Button;
方法or属性:color: string;
旧版本信息:|类名:Button;
方法or属性:color: string;
新版本信息:string|@system.prompt.d.ts| +|type有变化|类名:ShowDialogSuccessResponse;
方法or属性:index: number;
旧版本信息:|类名:ShowDialogSuccessResponse;
方法or属性:index: number;
新版本信息:number|@system.prompt.d.ts| +|type有变化|类名:ShowDialogOptions;
方法or属性:title?: string;
旧版本信息:|类名:ShowDialogOptions;
方法or属性:title?: string;
新版本信息:?string|@system.prompt.d.ts| +|type有变化|类名:ShowActionMenuOptions;
方法or属性:title?: string;
旧版本信息:|类名:ShowActionMenuOptions;
方法or属性:title?: string;
新版本信息:?string|@system.prompt.d.ts| +|type有变化|类名:ShowDialogOptions;
方法or属性:message?: string;
旧版本信息:|类名:ShowDialogOptions;
方法or属性:message?: string;
新版本信息:?string|@system.prompt.d.ts| +|type有变化|类名:ShowDialogOptions;
方法or属性:buttons?: [Button, Button?, Button?];
旧版本信息:|类名:ShowDialogOptions;
方法or属性:buttons?: [Button, Button?, Button?];
新版本信息:[Button, Button?, Button?]|@system.prompt.d.ts| +|type有变化|类名:ShowActionMenuOptions;
方法or属性:buttons: [Button, Button?, Button?, Button?, Button?, Button?];
旧版本信息:|类名:ShowActionMenuOptions;
方法or属性:buttons: [Button, Button?, Button?, Button?, Button?, Button?];
新版本信息:[Button, Button?, Button?, Button?, Button?, Button?]|@system.prompt.d.ts| +|type有变化|类名:ShowActionMenuOptions;
方法or属性:success?: (tapIndex: number, errMsg: string) => void;
旧版本信息:|类名:ShowActionMenuOptions;
方法or属性:success?: (tapIndex: number, errMsg: string) => void;
新版本信息:?((tapIndex: number, errMsg: string) => void)|@system.prompt.d.ts| +|type有变化|类名:ShowActionMenuOptions;
方法or属性:fail?: (errMsg: string) => void;
旧版本信息:|类名:ShowActionMenuOptions;
方法or属性:fail?: (errMsg: string) => void;
新版本信息:?((errMsg: string) => void)|@system.prompt.d.ts| +|type有变化|类名:ShowActionMenuOptions;
方法or属性:complete?: () => void;
旧版本信息:|类名:ShowActionMenuOptions;
方法or属性:complete?: () => void;
新版本信息:?(() => void)|@system.prompt.d.ts| +|type有变化|类名:RouterOptions;
方法or属性:uri: string;
旧版本信息:|类名:RouterOptions;
方法or属性:uri: string;
新版本信息:string|@system.router.d.ts| +|type有变化|类名:RouterOptions;
方法or属性:params?: Object;
旧版本信息:|类名:RouterOptions;
方法or属性:params?: Object;
新版本信息:?Object|@system.router.d.ts| +|type有变化|类名:BackRouterOptions;
方法or属性:params?: Object;
旧版本信息:|类名:BackRouterOptions;
方法or属性:params?: Object;
新版本信息:?Object|@system.router.d.ts| +|type有变化|类名:BackRouterOptions;
方法or属性:uri?: string;
旧版本信息:|类名:BackRouterOptions;
方法or属性:uri?: string;
新版本信息:?string|@system.router.d.ts| +|type有变化|类名:RouterState;
方法or属性:index: number;
旧版本信息:|类名:RouterState;
方法or属性:index: number;
新版本信息:number|@system.router.d.ts| +|type有变化|类名:RouterState;
方法or属性:name: string;
旧版本信息:|类名:RouterState;
方法or属性:name: string;
新版本信息:string|@system.router.d.ts| +|type有变化|类名:RouterState;
方法or属性:path: string;
旧版本信息:|类名:RouterState;
方法or属性:path: string;
新版本信息:string|@system.router.d.ts| +|type有变化|类名:EnableAlertBeforeBackPageOptions;
方法or属性:message: string;
旧版本信息:|类名:EnableAlertBeforeBackPageOptions;
方法or属性:message: string;
新版本信息:string|@system.router.d.ts| +|type有变化|类名:EnableAlertBeforeBackPageOptions;
方法or属性:success?: (errMsg: string) => void;
旧版本信息:|类名:EnableAlertBeforeBackPageOptions;
方法or属性:success?: (errMsg: string) => void;
新版本信息:(errMsg: string) => void|@system.router.d.ts| +|type有变化|类名:DisableAlertBeforeBackPageOptions;
方法or属性:success?: (errMsg: string) => void;
旧版本信息:|类名:DisableAlertBeforeBackPageOptions;
方法or属性:success?: (errMsg: string) => void;
新版本信息:(errMsg: string) => void|@system.router.d.ts| +|type有变化|类名:EnableAlertBeforeBackPageOptions;
方法or属性:cancel?: (errMsg: string) => void;
旧版本信息:|类名:EnableAlertBeforeBackPageOptions;
方法or属性:cancel?: (errMsg: string) => void;
新版本信息:(errMsg: string) => void|@system.router.d.ts| +|type有变化|类名:DisableAlertBeforeBackPageOptions;
方法or属性:cancel?: (errMsg: string) => void;
旧版本信息:|类名:DisableAlertBeforeBackPageOptions;
方法or属性:cancel?: (errMsg: string) => void;
新版本信息:(errMsg: string) => void|@system.router.d.ts| +|type有变化|类名:EnableAlertBeforeBackPageOptions;
方法or属性:complete?: () => void;
旧版本信息:|类名:EnableAlertBeforeBackPageOptions;
方法or属性:complete?: () => void;
新版本信息:() => void|@system.router.d.ts| +|type有变化|类名:DisableAlertBeforeBackPageOptions;
方法or属性:complete?: () => void;
旧版本信息:|类名:DisableAlertBeforeBackPageOptions;
方法or属性:complete?: () => void;
新版本信息:() => void|@system.router.d.ts| +|type有变化|类名:sourcefile;
方法or属性:declare type CustomBuilder = (() => any) \| void;
旧版本信息:|类名:sourcefile;
方法or属性:declare type CustomBuilder = (() => any) \| void;
新版本信息:(() => any) \| void|common.d.ts| +|type有变化|类名:SheetInfo;
方法or属性:title: string \| Resource;
旧版本信息:|类名:SheetInfo;
方法or属性:title: string \| Resource;
新版本信息:string \| Resource|action_sheet.d.ts| +|type有变化|类名:SheetInfo;
方法or属性:icon?: string \| Resource;
旧版本信息:|类名:SheetInfo;
方法or属性:icon?: string \| Resource;
新版本信息:?(string \| Resource)|action_sheet.d.ts| +|type有变化|类名:SheetInfo;
方法or属性:action: () => void;
旧版本信息:|类名:SheetInfo;
方法or属性:action: () => void;
新版本信息:() => void|action_sheet.d.ts| +|type有变化|类名:AlertDialogParam;
方法or属性:title?: ResourceStr;
旧版本信息:|类名:AlertDialogParam;
方法or属性:title?: ResourceStr;
新版本信息:?ResourceStr|alert_dialog.d.ts| +|type有变化|类名:AlertDialogParam;
方法or属性:message: ResourceStr;
旧版本信息:|类名:AlertDialogParam;
方法or属性:message: ResourceStr;
新版本信息:ResourceStr|alert_dialog.d.ts| +|type有变化|类名:AlertDialogParam;
方法or属性:autoCancel?: boolean;
旧版本信息:|类名:AlertDialogParam;
方法or属性:autoCancel?: boolean;
新版本信息:?boolean|alert_dialog.d.ts| +|type有变化|类名:AlertDialogParam;
方法or属性:cancel?: () => void;
旧版本信息:|类名:AlertDialogParam;
方法or属性:cancel?: () => void;
新版本信息:?(() => void)|alert_dialog.d.ts| +|type有变化|类名:AlertDialogParam;
方法or属性:alignment?: DialogAlignment;
旧版本信息:|类名:AlertDialogParam;
方法or属性:alignment?: DialogAlignment;
新版本信息:?DialogAlignment|alert_dialog.d.ts| +|type有变化|类名:AlertDialogParam;
方法or属性:offset?: Offset;
旧版本信息:|类名:AlertDialogParam;
方法or属性:offset?: Offset;
新版本信息:?Offset|alert_dialog.d.ts| +|type有变化|类名:AlertDialogParam;
方法or属性:gridCount?: number;
旧版本信息:|类名:AlertDialogParam;
方法or属性:gridCount?: number;
新版本信息:?number|alert_dialog.d.ts| +|type有变化|类名:AlertDialogParamWithConfirm;
方法or属性:confirm?: {
/**
* Text content of the confirmation button.
*
* @type { ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Text content of the confirmation button.
*
* @type { ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
value: ResourceStr;

/**
* Text color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Text color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
fontColor?: ResourceColor;

/**
* Background color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Background color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
backgroundColor?: ResourceColor;

/**
* Method executed by the callback.
*
* @type { () => void }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Method executed by the callback.
*
* @type { () => void }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
action: () => void;
};
旧版本信息:|类名:AlertDialogParamWithConfirm;
方法or属性:confirm?: {
/**
* Text content of the confirmation button.
*
* @type { ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Text content of the confirmation button.
*
* @type { ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
value: ResourceStr;

/**
* Text color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Text color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
fontColor?: ResourceColor;

/**
* Background color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Background color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
backgroundColor?: ResourceColor;

/**
* Method executed by the callback.
*
* @type { () => void }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Method executed by the callback.
*
* @type { () => void }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
action: () => void;
};
新版本信息:?{value: ResourceStr; fontColor?: ResourceColor; backgroundColor?: ResourceColor;action: () => void;}|alert_dialog.d.ts| +|type有变化|类名:AlertDialogParamWithButtons;
方法or属性:primaryButton: {
/**
* Text content of the confirmation button.
*
* @type { ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Text content of the confirmation button.
*
* @type { ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
value: ResourceStr;

/**
* Text color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Text color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
fontColor?: ResourceColor;

/**
* Background color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Background color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
backgroundColor?: ResourceColor;

/**
* Method executed by the callback.
*
* @type { () => void }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Method executed by the callback.
*
* @type { () => void }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
action: () => void;
};
旧版本信息:|类名:AlertDialogParamWithButtons;
方法or属性:primaryButton: {
/**
* Text content of the confirmation button.
*
* @type { ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Text content of the confirmation button.
*
* @type { ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
value: ResourceStr;

/**
* Text color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Text color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
fontColor?: ResourceColor;

/**
* Background color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Background color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
backgroundColor?: ResourceColor;

/**
* Method executed by the callback.
*
* @type { () => void }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Method executed by the callback.
*
* @type { () => void }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
action: () => void;
};
新版本信息:{value: ResourceStr; fontColor?: ResourceColor; backgroundColor?: ResourceColor;action: () => void;}|alert_dialog.d.ts| +|type有变化|类名:AlertDialogParamWithButtons;
方法or属性:secondaryButton: {
/**
* Text content of the confirmation button.
*
* @type { ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Text content of the confirmation button.
*
* @type { ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
value: ResourceStr;

/**
* Text color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Text color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
fontColor?: ResourceColor;

/**
* Background color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Background color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
backgroundColor?: ResourceColor;

/**
* Method executed by the callback.
*
* @type { () => void }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Method executed by the callback.
*
* @type { () => void }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
action: () => void;
};
旧版本信息:|类名:AlertDialogParamWithButtons;
方法or属性:secondaryButton: {
/**
* Text content of the confirmation button.
*
* @type { ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Text content of the confirmation button.
*
* @type { ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
value: ResourceStr;

/**
* Text color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Text color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
fontColor?: ResourceColor;

/**
* Background color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Background color of the confirmation button.
*
* @type { ?ResourceColor }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
backgroundColor?: ResourceColor;

/**
* Method executed by the callback.
*
* @type { () => void }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @since 7
*/
/**
* Method executed by the callback.
*
* @type { () => void }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @since 10
*/
action: () => void;
};
新版本信息:{value: ResourceStr; fontColor?: ResourceColor; backgroundColor?: ResourceColor;action: () => void;}|alert_dialog.d.ts| +|type有变化|类名:BadgeStyle;
方法or属性:color?: ResourceColor;
旧版本信息:|类名:BadgeStyle;
方法or属性:color?: ResourceColor;
新版本信息:?ResourceColor|badge.d.ts| +|type有变化|类名:BadgeStyle;
方法or属性:fontSize?: number \| string;
旧版本信息:|类名:BadgeStyle;
方法or属性:fontSize?: number \| string;
新版本信息:?(number \| string)|badge.d.ts| +|type有变化|类名:BadgeStyle;
方法or属性:badgeSize?: number \| string;
旧版本信息:|类名:BadgeStyle;
方法or属性:badgeSize?: number \| string;
新版本信息:?(number \| string)|badge.d.ts| +|type有变化|类名:BadgeStyle;
方法or属性:badgeColor?: ResourceColor;
旧版本信息:|类名:BadgeStyle;
方法or属性:badgeColor?: ResourceColor;
新版本信息:?ResourceColor|badge.d.ts| +|type有变化|类名:BadgeStyle;
方法or属性:borderColor?: ResourceColor;
旧版本信息:ResourceColor|类名:BadgeStyle;
方法or属性:borderColor?: ResourceColor;
新版本信息:?ResourceColor|badge.d.ts| +|type有变化|类名:BadgeStyle;
方法or属性:borderWidth?: Length;
旧版本信息:Length|类名:BadgeStyle;
方法or属性:borderWidth?: Length;
新版本信息:?Length|badge.d.ts| +|type有变化|类名:BadgeStyle;
方法or属性:fontWeight?: number \| FontWeight \| string;
旧版本信息:number \| FontWeight \| string|类名:BadgeStyle;
方法or属性:fontWeight?: number \| FontWeight \| string;
新版本信息:?(number \| FontWeight \| string)|badge.d.ts| +|type有变化|类名:BadgeParam;
方法or属性:position?: BadgePosition \| Position;
旧版本信息:|类名:BadgeParam;
方法or属性:position?: BadgePosition \| Position;
新版本信息:BadgePosition \| Position|badge.d.ts| +|type有变化|类名:BadgeParam;
方法or属性:style: BadgeStyle;
旧版本信息:|类名:BadgeParam;
方法or属性:style: BadgeStyle;
新版本信息:BadgeStyle|badge.d.ts| +|type有变化|类名:BadgeParamWithNumber;
方法or属性:count: number;
旧版本信息:|类名:BadgeParamWithNumber;
方法or属性:count: number;
新版本信息:number|badge.d.ts| +|type有变化|类名:BadgeParamWithNumber;
方法or属性:maxCount?: number;
旧版本信息:|类名:BadgeParamWithNumber;
方法or属性:maxCount?: number;
新版本信息:?number|badge.d.ts| +|type有变化|类名:BadgeParamWithString;
方法or属性:value: string;
旧版本信息:|类名:BadgeParamWithString;
方法or属性:value: string;
新版本信息:string|badge.d.ts| +|type有变化|类名:ButtonOptions;
方法or属性:type?: ButtonType;
旧版本信息:|类名:ButtonOptions;
方法or属性:type?: ButtonType;
新版本信息:?ButtonType|button.d.ts| +|type有变化|类名:ButtonOptions;
方法or属性:stateEffect?: boolean;
旧版本信息:|类名:ButtonOptions;
方法or属性:stateEffect?: boolean;
新版本信息:?boolean|button.d.ts| +|type有变化|类名:LabelStyle;
方法or属性:overflow?: TextOverflow;
旧版本信息:TextOverflow|类名:LabelStyle;
方法or属性:overflow?: TextOverflow;
新版本信息:?TextOverflow|button.d.ts| +|type有变化|类名:LabelStyle;
方法or属性:maxLines?: number;
旧版本信息:number|类名:LabelStyle;
方法or属性:maxLines?: number;
新版本信息:?number|button.d.ts| +|type有变化|类名:LabelStyle;
方法or属性:minFontSize?: number \| ResourceStr;
旧版本信息:number \| ResourceStr|类名:LabelStyle;
方法or属性:minFontSize?: number \| ResourceStr;
新版本信息:?(number \| ResourceStr)|button.d.ts| +|type有变化|类名:LabelStyle;
方法or属性:maxFontSize?: number \| ResourceStr;
旧版本信息:number \| ResourceStr|类名:LabelStyle;
方法or属性:maxFontSize?: number \| ResourceStr;
新版本信息:?(number \| ResourceStr)|button.d.ts| +|type有变化|类名:LabelStyle;
方法or属性:heightAdaptivePolicy?: TextHeightAdaptivePolicy;
旧版本信息:TextHeightAdaptivePolicy|类名:LabelStyle;
方法or属性:heightAdaptivePolicy?: TextHeightAdaptivePolicy;
新版本信息:?TextHeightAdaptivePolicy|button.d.ts| +|type有变化|类名:LabelStyle;
方法or属性:font?: Font;
旧版本信息:Font|类名:LabelStyle;
方法or属性:font?: Font;
新版本信息:?Font|button.d.ts| +|type有变化|类名:CalendarDay;
方法or属性:index: number;
旧版本信息:|类名:CalendarDay;
方法or属性:index: number;
新版本信息:number|calendar.d.ts| +|type有变化|类名:CalendarDay;
方法or属性:lunarMonth: string;
旧版本信息:|类名:CalendarDay;
方法or属性:lunarMonth: string;
新版本信息:string|calendar.d.ts| +|type有变化|类名:CalendarDay;
方法or属性:lunarDay: string;
旧版本信息:|类名:CalendarDay;
方法or属性:lunarDay: string;
新版本信息:string|calendar.d.ts| +|type有变化|类名:CalendarDay;
方法or属性:dayMark: string;
旧版本信息:|类名:CalendarDay;
方法or属性:dayMark: string;
新版本信息:string|calendar.d.ts| +|type有变化|类名:CalendarDay;
方法or属性:dayMarkValue: string;
旧版本信息:|类名:CalendarDay;
方法or属性:dayMarkValue: string;
新版本信息:string|calendar.d.ts| +|type有变化|类名:CalendarDay;
方法or属性:year: number;
旧版本信息:|类名:CalendarDay;
方法or属性:year: number;
新版本信息:number|calendar.d.ts| +|type有变化|类名:MonthData;
方法or属性:year: number;
旧版本信息:|类名:MonthData;
方法or属性:year: number;
新版本信息:number|calendar.d.ts| +|type有变化|类名:CalendarDay;
方法or属性:month: number;
旧版本信息:|类名:CalendarDay;
方法or属性:month: number;
新版本信息:number|calendar.d.ts| +|type有变化|类名:MonthData;
方法or属性:month: number;
旧版本信息:|类名:MonthData;
方法or属性:month: number;
新版本信息:number|calendar.d.ts| +|type有变化|类名:CalendarDay;
方法or属性:day: number;
旧版本信息:|类名:CalendarDay;
方法or属性:day: number;
新版本信息:number|calendar.d.ts| +|type有变化|类名:CalendarDay;
方法or属性:isFirstOfLunar: boolean;
旧版本信息:|类名:CalendarDay;
方法or属性:isFirstOfLunar: boolean;
新版本信息:boolean|calendar.d.ts| +|type有变化|类名:CalendarDay;
方法or属性:hasSchedule: boolean;
旧版本信息:|类名:CalendarDay;
方法or属性:hasSchedule: boolean;
新版本信息:boolean|calendar.d.ts| +|type有变化|类名:CalendarDay;
方法or属性:markLunarDay: boolean;
旧版本信息:|类名:CalendarDay;
方法or属性:markLunarDay: boolean;
新版本信息:boolean|calendar.d.ts| +|type有变化|类名:MonthData;
方法or属性:data: CalendarDay[];
旧版本信息:|类名:MonthData;
方法or属性:data: CalendarDay[];
新版本信息:CalendarDay[]|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:dayColor?: ResourceColor;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:dayColor?: ResourceColor;
新版本信息:?ResourceColor|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:lunarColor?: ResourceColor;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:lunarColor?: ResourceColor;
新版本信息:?ResourceColor|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:markLunarColor?: ResourceColor;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:markLunarColor?: ResourceColor;
新版本信息:?ResourceColor|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:dayFontSize?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:dayFontSize?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:lunarDayFontSize?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:lunarDayFontSize?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:dayHeight?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:dayHeight?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:dayWidth?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:dayWidth?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:gregorianCalendarHeight?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:gregorianCalendarHeight?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:dayYAxisOffset?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:dayYAxisOffset?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:lunarDayYAxisOffset?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:lunarDayYAxisOffset?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:underscoreXAxisOffset?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:underscoreXAxisOffset?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:underscoreYAxisOffset?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:underscoreYAxisOffset?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:scheduleMarkerXAxisOffset?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:scheduleMarkerXAxisOffset?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:scheduleMarkerYAxisOffset?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:scheduleMarkerYAxisOffset?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:colSpace?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:colSpace?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:dailyFiveRowSpace?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:dailyFiveRowSpace?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:dailySixRowSpace?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:dailySixRowSpace?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:lunarHeight?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:lunarHeight?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:underscoreWidth?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:underscoreWidth?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:underscoreLength?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:underscoreLength?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:scheduleMarkerRadius?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:scheduleMarkerRadius?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:boundaryRowOffset?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:boundaryRowOffset?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:CurrentDayStyle;
方法or属性:boundaryColOffset?: number;
旧版本信息:|类名:CurrentDayStyle;
方法or属性:boundaryColOffset?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:NonCurrentDayStyle;
方法or属性:nonCurrentMonthDayColor?: ResourceColor;
旧版本信息:|类名:NonCurrentDayStyle;
方法or属性:nonCurrentMonthDayColor?: ResourceColor;
新版本信息:?ResourceColor|calendar.d.ts| +|type有变化|类名:NonCurrentDayStyle;
方法or属性:nonCurrentMonthLunarColor?: ResourceColor;
旧版本信息:|类名:NonCurrentDayStyle;
方法or属性:nonCurrentMonthLunarColor?: ResourceColor;
新版本信息:?ResourceColor|calendar.d.ts| +|type有变化|类名:NonCurrentDayStyle;
方法or属性:nonCurrentMonthWorkDayMarkColor?: ResourceColor;
旧版本信息:|类名:NonCurrentDayStyle;
方法or属性:nonCurrentMonthWorkDayMarkColor?: ResourceColor;
新版本信息:?ResourceColor|calendar.d.ts| +|type有变化|类名:NonCurrentDayStyle;
方法or属性:nonCurrentMonthOffDayMarkColor?: ResourceColor;
旧版本信息:|类名:NonCurrentDayStyle;
方法or属性:nonCurrentMonthOffDayMarkColor?: ResourceColor;
新版本信息:?ResourceColor|calendar.d.ts| +|type有变化|类名:TodayStyle;
方法or属性:focusedDayColor?: ResourceColor;
旧版本信息:|类名:TodayStyle;
方法or属性:focusedDayColor?: ResourceColor;
新版本信息:?ResourceColor|calendar.d.ts| +|type有变化|类名:TodayStyle;
方法or属性:focusedLunarColor?: ResourceColor;
旧版本信息:|类名:TodayStyle;
方法or属性:focusedLunarColor?: ResourceColor;
新版本信息:?ResourceColor|calendar.d.ts| +|type有变化|类名:TodayStyle;
方法or属性:focusedAreaBackgroundColor?: ResourceColor;
旧版本信息:|类名:TodayStyle;
方法or属性:focusedAreaBackgroundColor?: ResourceColor;
新版本信息:?ResourceColor|calendar.d.ts| +|type有变化|类名:TodayStyle;
方法or属性:focusedAreaRadius?: number;
旧版本信息:|类名:TodayStyle;
方法or属性:focusedAreaRadius?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:WeekStyle;
方法or属性:weekColor?: ResourceColor;
旧版本信息:|类名:WeekStyle;
方法or属性:weekColor?: ResourceColor;
新版本信息:?ResourceColor|calendar.d.ts| +|type有变化|类名:WeekStyle;
方法or属性:weekendDayColor?: ResourceColor;
旧版本信息:|类名:WeekStyle;
方法or属性:weekendDayColor?: ResourceColor;
新版本信息:?ResourceColor|calendar.d.ts| +|type有变化|类名:WeekStyle;
方法or属性:weekendLunarColor?: ResourceColor;
旧版本信息:|类名:WeekStyle;
方法or属性:weekendLunarColor?: ResourceColor;
新版本信息:?ResourceColor|calendar.d.ts| +|type有变化|类名:WeekStyle;
方法or属性:weekFontSize?: number;
旧版本信息:|类名:WeekStyle;
方法or属性:weekFontSize?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:WeekStyle;
方法or属性:weekHeight?: number;
旧版本信息:|类名:WeekStyle;
方法or属性:weekHeight?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:WeekStyle;
方法or属性:weekWidth?: number;
旧版本信息:|类名:WeekStyle;
方法or属性:weekWidth?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:WeekStyle;
方法or属性:weekAndDayRowSpace?: number;
旧版本信息:|类名:WeekStyle;
方法or属性:weekAndDayRowSpace?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:WorkStateStyle;
方法or属性:workDayMarkColor?: ResourceColor;
旧版本信息:|类名:WorkStateStyle;
方法or属性:workDayMarkColor?: ResourceColor;
新版本信息:?ResourceColor|calendar.d.ts| +|type有变化|类名:WorkStateStyle;
方法or属性:offDayMarkColor?: ResourceColor;
旧版本信息:|类名:WorkStateStyle;
方法or属性:offDayMarkColor?: ResourceColor;
新版本信息:?ResourceColor|calendar.d.ts| +|type有变化|类名:WorkStateStyle;
方法or属性:workDayMarkSize?: number;
旧版本信息:|类名:WorkStateStyle;
方法or属性:workDayMarkSize?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:WorkStateStyle;
方法or属性:offDayMarkSize?: number;
旧版本信息:|类名:WorkStateStyle;
方法or属性:offDayMarkSize?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:WorkStateStyle;
方法or属性:workStateWidth?: number;
旧版本信息:|类名:WorkStateStyle;
方法or属性:workStateWidth?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:WorkStateStyle;
方法or属性:workStateHorizontalMovingDistance?: number;
旧版本信息:|类名:WorkStateStyle;
方法or属性:workStateHorizontalMovingDistance?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:WorkStateStyle;
方法or属性:workStateVerticalMovingDistance?: number;
旧版本信息:|类名:WorkStateStyle;
方法or属性:workStateVerticalMovingDistance?: number;
新版本信息:?number|calendar.d.ts| +|type有变化|类名:TextMetrics;
方法or属性:readonly actualBoundingBoxAscent: number;
旧版本信息:|类名:TextMetrics;
方法or属性:readonly actualBoundingBoxAscent: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:TextMetrics;
方法or属性:readonly actualBoundingBoxDescent: number;
旧版本信息:|类名:TextMetrics;
方法or属性:readonly actualBoundingBoxDescent: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:TextMetrics;
方法or属性:readonly actualBoundingBoxLeft: number;
旧版本信息:|类名:TextMetrics;
方法or属性:readonly actualBoundingBoxLeft: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:TextMetrics;
方法or属性:readonly actualBoundingBoxRight: number;
旧版本信息:|类名:TextMetrics;
方法or属性:readonly actualBoundingBoxRight: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:TextMetrics;
方法or属性:readonly alphabeticBaseline: number;
旧版本信息:|类名:TextMetrics;
方法or属性:readonly alphabeticBaseline: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:TextMetrics;
方法or属性:readonly emHeightAscent: number;
旧版本信息:|类名:TextMetrics;
方法or属性:readonly emHeightAscent: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:TextMetrics;
方法or属性:readonly emHeightDescent: number;
旧版本信息:|类名:TextMetrics;
方法or属性:readonly emHeightDescent: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:TextMetrics;
方法or属性:readonly fontBoundingBoxAscent: number;
旧版本信息:|类名:TextMetrics;
方法or属性:readonly fontBoundingBoxAscent: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:TextMetrics;
方法or属性:readonly fontBoundingBoxDescent: number;
旧版本信息:|类名:TextMetrics;
方法or属性:readonly fontBoundingBoxDescent: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:TextMetrics;
方法or属性:readonly hangingBaseline: number;
旧版本信息:|类名:TextMetrics;
方法or属性:readonly hangingBaseline: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:TextMetrics;
方法or属性:readonly ideographicBaseline: number;
旧版本信息:|类名:TextMetrics;
方法or属性:readonly ideographicBaseline: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:TextMetrics;
方法or属性:readonly width: number;
旧版本信息:|类名:TextMetrics;
方法or属性:readonly width: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:ImageBitmap;
方法or属性:readonly width: number;
旧版本信息:|类名:ImageBitmap;
方法or属性:readonly width: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:ImageData;
方法or属性:readonly width: number;
旧版本信息:|类名:ImageData;
方法or属性:readonly width: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:CanvasRenderingContext2D;
方法or属性:readonly width: number;
旧版本信息:|类名:CanvasRenderingContext2D;
方法or属性:readonly width: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:TextMetrics;
方法or属性:readonly height: number;
旧版本信息:|类名:TextMetrics;
方法or属性:readonly height: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:ImageBitmap;
方法or属性:readonly height: number;
旧版本信息:|类名:ImageBitmap;
方法or属性:readonly height: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:ImageData;
方法or属性:readonly height: number;
旧版本信息:|类名:ImageData;
方法or属性:readonly height: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:CanvasRenderingContext2D;
方法or属性:readonly height: number;
旧版本信息:|类名:CanvasRenderingContext2D;
方法or属性:readonly height: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:ImageData;
方法or属性:readonly data: Uint8ClampedArray;
旧版本信息:|类名:ImageData;
方法or属性:readonly data: Uint8ClampedArray;
新版本信息:Uint8ClampedArray|canvas.d.ts| +|type有变化|类名:RenderingContextSettings;
方法or属性:antialias?: boolean;
旧版本信息:|类名:RenderingContextSettings;
方法or属性:antialias?: boolean;
新版本信息:?boolean|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:globalAlpha: number;
旧版本信息:|类名:CanvasRenderer;
方法or属性:globalAlpha: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:globalCompositeOperation: string;
旧版本信息:|类名:CanvasRenderer;
方法or属性:globalCompositeOperation: string;
新版本信息:string|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:filter: string;
旧版本信息:|类名:CanvasRenderer;
方法or属性:filter: string;
新版本信息:string|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:imageSmoothingEnabled: boolean;
旧版本信息:|类名:CanvasRenderer;
方法or属性:imageSmoothingEnabled: boolean;
新版本信息:boolean|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:imageSmoothingQuality: ImageSmoothingQuality;
旧版本信息:|类名:CanvasRenderer;
方法or属性:imageSmoothingQuality: ImageSmoothingQuality;
新版本信息:ImageSmoothingQuality|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:lineCap: CanvasLineCap;
旧版本信息:|类名:CanvasRenderer;
方法or属性:lineCap: CanvasLineCap;
新版本信息:CanvasLineCap|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:lineDashOffset: number;
旧版本信息:|类名:CanvasRenderer;
方法or属性:lineDashOffset: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:lineJoin: CanvasLineJoin;
旧版本信息:|类名:CanvasRenderer;
方法or属性:lineJoin: CanvasLineJoin;
新版本信息:CanvasLineJoin|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:lineWidth: number;
旧版本信息:|类名:CanvasRenderer;
方法or属性:lineWidth: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:miterLimit: number;
旧版本信息:|类名:CanvasRenderer;
方法or属性:miterLimit: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:shadowBlur: number;
旧版本信息:|类名:CanvasRenderer;
方法or属性:shadowBlur: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:shadowColor: string;
旧版本信息:|类名:CanvasRenderer;
方法or属性:shadowColor: string;
新版本信息:string|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:shadowOffsetX: number;
旧版本信息:|类名:CanvasRenderer;
方法or属性:shadowOffsetX: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:shadowOffsetY: number;
旧版本信息:|类名:CanvasRenderer;
方法or属性:shadowOffsetY: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:font: string;
旧版本信息:|类名:CanvasRenderer;
方法or属性:font: string;
新版本信息:string|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:textAlign: CanvasTextAlign;
旧版本信息:|类名:CanvasRenderer;
方法or属性:textAlign: CanvasTextAlign;
新版本信息:CanvasTextAlign|canvas.d.ts| +|type有变化|类名:CanvasRenderer;
方法or属性:textBaseline: CanvasTextBaseline;
旧版本信息:|类名:CanvasRenderer;
方法or属性:textBaseline: CanvasTextBaseline;
新版本信息:CanvasTextBaseline|canvas.d.ts| +|type有变化|类名:OffscreenCanvas;
方法or属性:height: number;
旧版本信息:|类名:OffscreenCanvas;
方法or属性:height: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:OffscreenCanvas;
方法or属性:width: number;
旧版本信息:|类名:OffscreenCanvas;
方法or属性:width: number;
新版本信息:number|canvas.d.ts| +|type有变化|类名:CheckboxOptions;
方法or属性:name?: string;
旧版本信息:|类名:CheckboxOptions;
方法or属性:name?: string;
新版本信息:?string|checkbox.d.ts| +|type有变化|类名:CheckboxOptions;
方法or属性:group?: string;
旧版本信息:|类名:CheckboxOptions;
方法or属性:group?: string;
新版本信息:?string|checkbox.d.ts| +|type有变化|类名:CheckboxGroupOptions;
方法or属性:group?: string;
旧版本信息:|类名:CheckboxGroupOptions;
方法or属性:group?: string;
新版本信息:?string|checkboxgroup.d.ts| +|type有变化|类名:CheckboxGroupResult;
方法or属性:name: Array\;
旧版本信息:|类名:CheckboxGroupResult;
方法or属性:name: Array\;
新版本信息:Array\|checkboxgroup.d.ts| +|type有变化|类名:CheckboxGroupResult;
方法or属性:status: SelectStatus;
旧版本信息:|类名:CheckboxGroupResult;
方法or属性:status: SelectStatus;
新版本信息:SelectStatus|checkboxgroup.d.ts| +|type有变化|类名:CircleOptions;
方法or属性:width?: string \| number;
旧版本信息:|类名:CircleOptions;
方法or属性:width?: string \| number;
新版本信息:?(string \| number)|circle.d.ts| +|type有变化|类名:CircleOptions;
方法or属性:height?: string \| number;
旧版本信息:|类名:CircleOptions;
方法or属性:height?: string \| number;
新版本信息:?(string \| number)|circle.d.ts| +|type有变化|类名:Configuration;
方法or属性:readonly colorMode: string;
旧版本信息:|类名:Configuration;
方法or属性:readonly colorMode: string;
新版本信息:string|common.d.ts| +|type有变化|类名:Configuration;
方法or属性:readonly fontScale: number;
旧版本信息:|类名:Configuration;
方法or属性:readonly fontScale: number;
新版本信息:number|common.d.ts| +|type有变化|类名:Rectangle;
方法or属性:x?: Length;
旧版本信息:|类名:Rectangle;
方法or属性:x?: Length;
新版本信息:?Length|common.d.ts| +|type有变化|类名:Rectangle;
方法or属性:y?: Length;
旧版本信息:|类名:Rectangle;
方法or属性:y?: Length;
新版本信息:?Length|common.d.ts| +|type有变化|类名:Rectangle;
方法or属性:width?: Length;
旧版本信息:|类名:Rectangle;
方法or属性:width?: Length;
新版本信息:?Length|common.d.ts| +|type有变化|类名:Rectangle;
方法or属性:height?: Length;
旧版本信息:|类名:Rectangle;
方法or属性:height?: Length;
新版本信息:?Length|common.d.ts| +|type有变化|类名:AnimateParam;
方法or属性:duration?: number;
旧版本信息:|类名:AnimateParam;
方法or属性:duration?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:sharedTransitionOptions;
方法or属性:duration?: number;
旧版本信息:|类名:sharedTransitionOptions;
方法or属性:duration?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:AnimateParam;
方法or属性:tempo?: number;
旧版本信息:|类名:AnimateParam;
方法or属性:tempo?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:AnimateParam;
方法or属性:curve?: Curve \| string \| ICurve;
旧版本信息:string \| Curve \| ICurve|类名:AnimateParam;
方法or属性:curve?: Curve \| string \| ICurve;
新版本信息:?(Curve \| string \| ICurve)|common.d.ts| +|type有变化|类名:sharedTransitionOptions;
方法or属性:curve?: Curve \| string \| ICurve;
旧版本信息:|类名:sharedTransitionOptions;
方法or属性:curve?: Curve \| string \| ICurve;
新版本信息:?(Curve \| string \| ICurve)|common.d.ts| +|type有变化|类名:AnimateParam;
方法or属性:delay?: number;
旧版本信息:|类名:AnimateParam;
方法or属性:delay?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:sharedTransitionOptions;
方法or属性:delay?: number;
旧版本信息:|类名:sharedTransitionOptions;
方法or属性:delay?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:AnimateParam;
方法or属性:iterations?: number;
旧版本信息:|类名:AnimateParam;
方法or属性:iterations?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:AnimateParam;
方法or属性:playMode?: PlayMode;
旧版本信息:|类名:AnimateParam;
方法or属性:playMode?: PlayMode;
新版本信息:?PlayMode|common.d.ts| +|type有变化|类名:AnimateParam;
方法or属性:onFinish?: () => void;
旧版本信息:|类名:AnimateParam;
方法or属性:onFinish?: () => void;
新版本信息:?(() => void)|common.d.ts| +|type有变化|类名:MotionPathOptions;
方法or属性:path: string;
旧版本信息:|类名:MotionPathOptions;
方法or属性:path: string;
新版本信息:string|common.d.ts| +|type有变化|类名:MotionPathOptions;
方法or属性:from?: number;
旧版本信息:|类名:MotionPathOptions;
方法or属性:from?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:MotionPathOptions;
方法or属性:to?: number;
旧版本信息:|类名:MotionPathOptions;
方法or属性:to?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:MotionPathOptions;
方法or属性:rotatable?: boolean;
旧版本信息:|类名:MotionPathOptions;
方法or属性:rotatable?: boolean;
新版本信息:?boolean|common.d.ts| +|type有变化|类名:sharedTransitionOptions;
方法or属性:motionPath?: MotionPathOptions;
旧版本信息:|类名:sharedTransitionOptions;
方法or属性:motionPath?: MotionPathOptions;
新版本信息:?MotionPathOptions|common.d.ts| +|type有变化|类名:sharedTransitionOptions;
方法or属性:zIndex?: number;
旧版本信息:|类名:sharedTransitionOptions;
方法or属性:zIndex?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:sharedTransitionOptions;
方法or属性:type?: SharedTransitionEffectType;
旧版本信息:|类名:sharedTransitionOptions;
方法or属性:type?: SharedTransitionEffectType;
新版本信息:?SharedTransitionEffectType|common.d.ts| +|type有变化|类名:TranslateOptions;
方法or属性:y?: number \| string;
旧版本信息:|类名:TranslateOptions;
方法or属性:y?: number \| string;
新版本信息:?(number \| string)|common.d.ts| +|type有变化|类名:TranslateOptions;
方法or属性:z?: number \| string;
旧版本信息:|类名:TranslateOptions;
方法or属性:z?: number \| string;
新版本信息:?(number \| string)|common.d.ts| +|type有变化|类名:ScaleOptions;
方法or属性:x?: number;
旧版本信息:|类名:ScaleOptions;
方法or属性:x?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:RotateOptions;
方法or属性:x?: number;
旧版本信息:|类名:RotateOptions;
方法or属性:x?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:ScaleOptions;
方法or属性:y?: number;
旧版本信息:|类名:ScaleOptions;
方法or属性:y?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:RotateOptions;
方法or属性:y?: number;
旧版本信息:|类名:RotateOptions;
方法or属性:y?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:ScaleOptions;
方法or属性:z?: number;
旧版本信息:|类名:ScaleOptions;
方法or属性:z?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:RotateOptions;
方法or属性:z?: number;
旧版本信息:|类名:RotateOptions;
方法or属性:z?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:ScaleOptions;
方法or属性:centerX?: number \| string;
旧版本信息:|类名:ScaleOptions;
方法or属性:centerX?: number \| string;
新版本信息:?(number \| string)|common.d.ts| +|type有变化|类名:RotateOptions;
方法or属性:centerX?: number \| string;
旧版本信息:|类名:RotateOptions;
方法or属性:centerX?: number \| string;
新版本信息:?(number \| string)|common.d.ts| +|type有变化|类名:ScaleOptions;
方法or属性:centerY?: number \| string;
旧版本信息:|类名:ScaleOptions;
方法or属性:centerY?: number \| string;
新版本信息:?(number \| string)|common.d.ts| +|type有变化|类名:AlignRuleOption;
方法or属性:left?: { anchor: string, align: HorizontalAlign };
旧版本信息:|类名:AlignRuleOption;
方法or属性:left?: { anchor: string, align: HorizontalAlign };
新版本信息:?{ anchor: string, align: HorizontalAlign }|common.d.ts| +|type有变化|类名:AlignRuleOption;
方法or属性:right?: { anchor: string, align: HorizontalAlign };
旧版本信息:|类名:AlignRuleOption;
方法or属性:right?: { anchor: string, align: HorizontalAlign };
新版本信息:?{ anchor: string, align: HorizontalAlign }|common.d.ts| +|type有变化|类名:AlignRuleOption;
方法or属性:middle?: { anchor: string, align: HorizontalAlign };
旧版本信息:|类名:AlignRuleOption;
方法or属性:middle?: { anchor: string, align: HorizontalAlign };
新版本信息:?{ anchor: string, align: HorizontalAlign }|common.d.ts| +|type有变化|类名:AlignRuleOption;
方法or属性:top?: { anchor: string, align: VerticalAlign };
旧版本信息:|类名:AlignRuleOption;
方法or属性:top?: { anchor: string, align: VerticalAlign };
新版本信息:?{ anchor: string, align: VerticalAlign }|common.d.ts| +|type有变化|类名:AlignRuleOption;
方法or属性:bottom?: { anchor: string, align: VerticalAlign };
旧版本信息:|类名:AlignRuleOption;
方法or属性:bottom?: { anchor: string, align: VerticalAlign };
新版本信息:?{ anchor: string, align: VerticalAlign }|common.d.ts| +|type有变化|类名:AlignRuleOption;
方法or属性:center?: { anchor: string, align: VerticalAlign };
旧版本信息:|类名:AlignRuleOption;
方法or属性:center?: { anchor: string, align: VerticalAlign };
新版本信息:?{ anchor: string, align: VerticalAlign }|common.d.ts| +|type有变化|类名:RotateOptions;
方法or属性:angle: number \| string;
旧版本信息:|类名:RotateOptions;
方法or属性:angle: number \| string;
新版本信息:number \| string|common.d.ts| +|type有变化|类名:TransitionOptions;
方法or属性:type?: TransitionType;
旧版本信息:|类名:TransitionOptions;
方法or属性:type?: TransitionType;
新版本信息:?TransitionType|common.d.ts| +|type有变化|类名:TransitionOptions;
方法or属性:opacity?: number;
旧版本信息:|类名:TransitionOptions;
方法or属性:opacity?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:TransitionOptions;
方法or属性:translate?: TranslateOptions;
旧版本信息:|类名:TransitionOptions;
方法or属性:translate?: TranslateOptions;
新版本信息:?TranslateOptions|common.d.ts| +|type有变化|类名:TransitionOptions;
方法or属性:scale?: ScaleOptions;
旧版本信息:|类名:TransitionOptions;
方法or属性:scale?: ScaleOptions;
新版本信息:?ScaleOptions|common.d.ts| +|type有变化|类名:TransitionOptions;
方法or属性:rotate?: RotateOptions;
旧版本信息:|类名:TransitionOptions;
方法or属性:rotate?: RotateOptions;
新版本信息:?RotateOptions|common.d.ts| +|type有变化|类名:PreviewParams;
方法or属性:title?: string;
旧版本信息:|类名:PreviewParams;
方法or属性:title?: string;
新版本信息:?string|common.d.ts| +|type有变化|类名:PreviewParams;
方法or属性:width?: number;
旧版本信息:|类名:PreviewParams;
方法or属性:width?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:PreviewParams;
方法or属性:height?: number;
旧版本信息:|类名:PreviewParams;
方法or属性:height?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:PreviewParams;
方法or属性:locale?: string;
旧版本信息:|类名:PreviewParams;
方法or属性:locale?: string;
新版本信息:?string|common.d.ts| +|type有变化|类名:PreviewParams;
方法or属性:colorMode?: string;
旧版本信息:|类名:PreviewParams;
方法or属性:colorMode?: string;
新版本信息:?string|common.d.ts| +|type有变化|类名:PreviewParams;
方法or属性:deviceType?: string;
旧版本信息:|类名:PreviewParams;
方法or属性:deviceType?: string;
新版本信息:?string|common.d.ts| +|type有变化|类名:PreviewParams;
方法or属性:dpi?: number;
旧版本信息:|类名:PreviewParams;
方法or属性:dpi?: number;
新版本信息:?number|common.d.ts| +|type有变化|类名:PreviewParams;
方法or属性:orientation?: string;
旧版本信息:|类名:PreviewParams;
方法or属性:orientation?: string;
新版本信息:?string|common.d.ts| +|type有变化|类名:PreviewParams;
方法or属性:roundScreen?: boolean;
旧版本信息:|类名:PreviewParams;
方法or属性:roundScreen?: boolean;
新版本信息:?boolean|common.d.ts| +|type有变化|类名:ItemDragInfo;
方法or属性:x: number;
旧版本信息:|类名:ItemDragInfo;
方法or属性:x: number;
新版本信息:number|common.d.ts| +|type有变化|类名:ClickEvent;
方法or属性:x: number;
旧版本信息:|类名:ClickEvent;
方法or属性:x: number;
新版本信息:number|common.d.ts| +|type有变化|类名:MouseEvent;
方法or属性:x: number;
旧版本信息:|类名:MouseEvent;
方法or属性:x: number;
新版本信息:number|common.d.ts| +|type有变化|类名:TouchObject;
方法or属性:x: number;
旧版本信息:|类名:TouchObject;
方法or属性:x: number;
新版本信息:number|common.d.ts| +|type有变化|类名:ItemDragInfo;
方法or属性:y: number;
旧版本信息:|类名:ItemDragInfo;
方法or属性:y: number;
新版本信息:number|common.d.ts| +|type有变化|类名:ClickEvent;
方法or属性:y: number;
旧版本信息:|类名:ClickEvent;
方法or属性:y: number;
新版本信息:number|common.d.ts| +|type有变化|类名:MouseEvent;
方法or属性:y: number;
旧版本信息:|类名:MouseEvent;
方法or属性:y: number;
新版本信息:number|common.d.ts| +|type有变化|类名:TouchObject;
方法or属性:y: number;
旧版本信息:|类名:TouchObject;
方法or属性:y: number;
新版本信息:number|common.d.ts| +|type有变化|类名:DragItemInfo;
方法or属性:pixelMap?: PixelMap;
旧版本信息:|类名:DragItemInfo;
方法or属性:pixelMap?: PixelMap;
新版本信息:?PixelMap|common.d.ts| +|type有变化|类名:DragItemInfo;
方法or属性:builder?: CustomBuilder;
旧版本信息:|类名:DragItemInfo;
方法or属性:builder?: CustomBuilder;
新版本信息:?CustomBuilder|common.d.ts| +|type有变化|类名:DragItemInfo;
方法or属性:extraInfo?: string;
旧版本信息:|类名:DragItemInfo;
方法or属性:extraInfo?: string;
新版本信息:?string|common.d.ts| +|type有变化|类名:EventTarget;
方法or属性:area: Area;
旧版本信息:|类名:EventTarget;
方法or属性:area: Area;
新版本信息:Area|common.d.ts| +|type有变化|类名:PickerTextStyle;
方法or属性:color?: ResourceColor;
旧版本信息:ResourceColor|类名:PickerTextStyle;
方法or属性:color?: ResourceColor;
新版本信息:?ResourceColor|common.d.ts| +|type有变化|类名:PickerTextStyle;
方法or属性:font?: Font;
旧版本信息:Font|类名:PickerTextStyle;
方法or属性:font?: Font;
新版本信息:?Font|common.d.ts| +|type有变化|类名:PopupMessageOptions;
方法or属性:font?: Font;
旧版本信息:Font|类名:PopupMessageOptions;
方法or属性:font?: Font;
新版本信息:?Font|common.d.ts| +|type有变化|类名:ShadowOptions;
方法or属性:radius: number \| Resource;
旧版本信息:|类名:ShadowOptions;
方法or属性:radius: number \| Resource;
新版本信息:number \| Resource|common.d.ts| +|type有变化|类名:ShadowOptions;
方法or属性:type?: ShadowType;
旧版本信息:ShadowType|类名:ShadowOptions;
方法or属性:type?: ShadowType;
新版本信息:?ShadowType|common.d.ts| +|type有变化|类名:ShadowOptions;
方法or属性:color?: Color \| string \| Resource;
旧版本信息:|类名:ShadowOptions;
方法or属性:color?: Color \| string \| Resource;
新版本信息:?(Color \| string \| Resource)|common.d.ts| +|type有变化|类名:ShadowOptions;
方法or属性:offsetX?: number \| Resource;
旧版本信息:|类名:ShadowOptions;
方法or属性:offsetX?: number \| Resource;
新版本信息:?(number \| Resource)|common.d.ts| +|type有变化|类名:ShadowOptions;
方法or属性:offsetY?: number \| Resource;
旧版本信息:|类名:ShadowOptions;
方法or属性:offsetY?: number \| Resource;
新版本信息:?(number \| Resource)|common.d.ts| +|type有变化|类名:BaseEvent;
方法or属性:target: EventTarget;
旧版本信息:|类名:BaseEvent;
方法or属性:target: EventTarget;
新版本信息:EventTarget|common.d.ts| +|type有变化|类名:BaseEvent;
方法or属性:timestamp: number;
旧版本信息:|类名:BaseEvent;
方法or属性:timestamp: number;
新版本信息:number|common.d.ts| +|type有变化|类名:KeyEvent;
方法or属性:timestamp: number;
旧版本信息:|类名:KeyEvent;
方法or属性:timestamp: number;
新版本信息:number|common.d.ts| +|type有变化|类名:BaseEvent;
方法or属性:source: SourceType;
旧版本信息:|类名:BaseEvent;
方法or属性:source: SourceType;
新版本信息:SourceType|common.d.ts| +|type有变化|类名:BaseEvent;
方法or属性:pressure: number;
旧版本信息:|类名:BaseEvent;
方法or属性:pressure: number;
新版本信息:number|common.d.ts| +|type有变化|类名:BaseEvent;
方法or属性:tiltX: number;
旧版本信息:|类名:BaseEvent;
方法or属性:tiltX: number;
新版本信息:number|common.d.ts| +|type有变化|类名:BaseEvent;
方法or属性:tiltY: number;
旧版本信息:|类名:BaseEvent;
方法or属性:tiltY: number;
新版本信息:number|common.d.ts| +|type有变化|类名:BaseEvent;
方法or属性:sourceTool: SourceTool;
旧版本信息:|类名:BaseEvent;
方法or属性:sourceTool: SourceTool;
新版本信息:SourceTool|common.d.ts| +|type有变化|类名:BorderImageOption;
方法or属性:slice?: Length \| EdgeWidths,
旧版本信息:|类名:BorderImageOption;
方法or属性:slice?: Length \| EdgeWidths,
新版本信息:?(Length \| EdgeWidths)|common.d.ts| +|type有变化|类名:BorderImageOption;
方法or属性:repeat?: RepeatMode,
旧版本信息:|类名:BorderImageOption;
方法or属性:repeat?: RepeatMode,
新版本信息:?RepeatMode|common.d.ts| +|type有变化|类名:BorderImageOption;
方法or属性:source?: string \| Resource \| LinearGradient,
旧版本信息:|类名:BorderImageOption;
方法or属性:source?: string \| Resource \| LinearGradient,
新版本信息:?(string \| Resource \| LinearGradient)|common.d.ts| +|type有变化|类名:BorderImageOption;
方法or属性:width?: Length \| EdgeWidths,
旧版本信息:|类名:BorderImageOption;
方法or属性:width?: Length \| EdgeWidths,
新版本信息:?(Length \| EdgeWidths)|common.d.ts| +|type有变化|类名:BorderImageOption;
方法or属性:outset?: Length \| EdgeWidths,
旧版本信息:|类名:BorderImageOption;
方法or属性:outset?: Length \| EdgeWidths,
新版本信息:?(Length \| EdgeWidths)|common.d.ts| +|type有变化|类名:BorderImageOption;
方法or属性:fill?: boolean
旧版本信息:|类名:BorderImageOption;
方法or属性:fill?: boolean
新版本信息:?boolean|common.d.ts| +|type有变化|类名:ClickEvent;
方法or属性:screenX: number;
旧版本信息:|类名:ClickEvent;
方法or属性:screenX: number;
新版本信息:number|common.d.ts| +|type有变化|类名:MouseEvent;
方法or属性:screenX: number;
旧版本信息:|类名:MouseEvent;
方法or属性:screenX: number;
新版本信息:number|common.d.ts| +|type有变化|类名:TouchObject;
方法or属性:screenX: number;
旧版本信息:|类名:TouchObject;
方法or属性:screenX: number;
新版本信息:number|common.d.ts| +|type有变化|类名:ClickEvent;
方法or属性:screenY: number;
旧版本信息:|类名:ClickEvent;
方法or属性:screenY: number;
新版本信息:number|common.d.ts| +|type有变化|类名:MouseEvent;
方法or属性:screenY: number;
旧版本信息:|类名:MouseEvent;
方法or属性:screenY: number;
新版本信息:number|common.d.ts| +|type有变化|类名:TouchObject;
方法or属性:screenY: number;
旧版本信息:|类名:TouchObject;
方法or属性:screenY: number;
新版本信息:number|common.d.ts| +|type有变化|类名:MouseEvent;
方法or属性:button: MouseButton;
旧版本信息:|类名:MouseEvent;
方法or属性:button: MouseButton;
新版本信息:MouseButton|common.d.ts| +|type有变化|类名:MouseEvent;
方法or属性:action: MouseAction;
旧版本信息:|类名:MouseEvent;
方法or属性:action: MouseAction;
新版本信息:MouseAction|common.d.ts| +|type有变化|类名:MouseEvent;
方法or属性:stopPropagation?: () => void;
旧版本信息:|类名:MouseEvent;
方法or属性:stopPropagation?: () => void;
新版本信息:?(() => void)|common.d.ts| +|type有变化|类名:KeyEvent;
方法or属性:stopPropagation?: () => void;
旧版本信息:|类名:KeyEvent;
方法or属性:stopPropagation?: () => void;
新版本信息:?(() => void)|common.d.ts| +|type有变化|类名:TouchObject;
方法or属性:type: TouchType;
旧版本信息:|类名:TouchObject;
方法or属性:type: TouchType;
新版本信息:TouchType|common.d.ts| +|type有变化|类名:TouchEvent;
方法or属性:type: TouchType;
旧版本信息:|类名:TouchEvent;
方法or属性:type: TouchType;
新版本信息:TouchType|common.d.ts| +|type有变化|类名:TouchObject;
方法or属性:id: number;
旧版本信息:|类名:TouchObject;
方法or属性:id: number;
新版本信息:number|common.d.ts| +|type有变化|类名:TouchEvent;
方法or属性:touches: TouchObject[];
旧版本信息:|类名:TouchEvent;
方法or属性:touches: TouchObject[];
新版本信息:TouchObject[]|common.d.ts| +|type有变化|类名:TouchEvent;
方法or属性:changedTouches: TouchObject[];
旧版本信息:|类名:TouchEvent;
方法or属性:changedTouches: TouchObject[];
新版本信息:TouchObject[]|common.d.ts| +|type有变化|类名:DragEvent;
方法or属性:getX(): number;
旧版本信息:|类名:DragEvent;
方法or属性:getX(): number;
新版本信息:number|common.d.ts| +|type有变化|类名:DragEvent;
方法or属性:getY(): number;
旧版本信息:|类名:DragEvent;
方法or属性:getY(): number;
新版本信息:number|common.d.ts| +|type有变化|类名:KeyEvent;
方法or属性:type: KeyType;
旧版本信息:|类名:KeyEvent;
方法or属性:type: KeyType;
新版本信息:KeyType|common.d.ts| +|type有变化|类名:KeyEvent;
方法or属性:keyCode: number;
旧版本信息:|类名:KeyEvent;
方法or属性:keyCode: number;
新版本信息:number|common.d.ts| +|type有变化|类名:KeyEvent;
方法or属性:keyText: string;
旧版本信息:|类名:KeyEvent;
方法or属性:keyText: string;
新版本信息:string|common.d.ts| +|type有变化|类名:KeyEvent;
方法or属性:keySource: KeySource;
旧版本信息:|类名:KeyEvent;
方法or属性:keySource: KeySource;
新版本信息:KeySource|common.d.ts| +|type有变化|类名:KeyEvent;
方法or属性:deviceId: number;
旧版本信息:|类名:KeyEvent;
方法or属性:deviceId: number;
新版本信息:number|common.d.ts| +|type有变化|类名:KeyEvent;
方法or属性:metaKey: number;
旧版本信息:|类名:KeyEvent;
方法or属性:metaKey: number;
新版本信息:number|common.d.ts| +|type有变化|类名:StateStyles;
方法or属性:normal?: any;
旧版本信息:|类名:StateStyles;
方法or属性:normal?: any;
新版本信息:?any|common.d.ts| +|type有变化|类名:StateStyles;
方法or属性:pressed?: any;
旧版本信息:|类名:StateStyles;
方法or属性:pressed?: any;
新版本信息:?any|common.d.ts| +|type有变化|类名:StateStyles;
方法or属性:disabled?: any;
旧版本信息:|类名:StateStyles;
方法or属性:disabled?: any;
新版本信息:?any|common.d.ts| +|type有变化|类名:StateStyles;
方法or属性:focused?: any;
旧版本信息:|类名:StateStyles;
方法or属性:focused?: any;
新版本信息:?any|common.d.ts| +|type有变化|类名:StateStyles;
方法or属性:clicked?: any;
旧版本信息:|类名:StateStyles;
方法or属性:clicked?: any;
新版本信息:?any|common.d.ts| +|type有变化|类名:PopupMessageOptions;
方法or属性:textColor?: ResourceColor;
旧版本信息:ResourceColor|类名:PopupMessageOptions;
方法or属性:textColor?: ResourceColor;
新版本信息:?ResourceColor|common.d.ts| +|type有变化|类名:PopupOptions;
方法or属性:message: string;
旧版本信息:|类名:PopupOptions;
方法or属性:message: string;
新版本信息:string|common.d.ts| +|type有变化|类名:PopupOptions;
方法or属性:placementOnTop?: boolean;
旧版本信息:|类名:PopupOptions;
方法or属性:placementOnTop?: boolean;
新版本信息:?boolean|common.d.ts| +|type有变化|类名:PopupOptions;
方法or属性:placement?: Placement;
旧版本信息:Placement|类名:PopupOptions;
方法or属性:placement?: Placement;
新版本信息:?Placement|common.d.ts| +|type有变化|类名:CustomPopupOptions;
方法or属性:placement?: Placement;
旧版本信息:|类名:CustomPopupOptions;
方法or属性:placement?: Placement;
新版本信息:?Placement|common.d.ts| +|type有变化|类名:PopupOptions;
方法or属性:arrowOffset?: Length;
旧版本信息:|类名:PopupOptions;
方法or属性:arrowOffset?: Length;
新版本信息:?Length|common.d.ts| +|type有变化|类名:CustomPopupOptions;
方法or属性:arrowOffset?: Length;
旧版本信息:|类名:CustomPopupOptions;
方法or属性:arrowOffset?: Length;
新版本信息:?Length|common.d.ts| +|type有变化|类名:PopupOptions;
方法or属性:showInSubWindow?: boolean;
旧版本信息:|类名:PopupOptions;
方法or属性:showInSubWindow?: boolean;
新版本信息:?boolean|common.d.ts| +|type有变化|类名:CustomPopupOptions;
方法or属性:showInSubWindow?: boolean;
旧版本信息:|类名:CustomPopupOptions;
方法or属性:showInSubWindow?: boolean;
新版本信息:?boolean|common.d.ts| +|type有变化|类名:PopupOptions;
方法or属性:mask?: boolean \| { color: ResourceColor };
旧版本信息:|类名:PopupOptions;
方法or属性:mask?: boolean \| { color: ResourceColor };
新版本信息:?(boolean \| { color: ResourceColor })|common.d.ts| +|type有变化|类名:CustomPopupOptions;
方法or属性:mask?: boolean \| { color: ResourceColor };
旧版本信息:|类名:CustomPopupOptions;
方法or属性:mask?: boolean \| { color: ResourceColor };
新版本信息:?(boolean \| { color: ResourceColor })|common.d.ts| +|type有变化|类名:PopupOptions;
方法or属性:messageOptions?: PopupMessageOptions
旧版本信息:PopupMessageOptions|类名:PopupOptions;
方法or属性:messageOptions?: PopupMessageOptions
新版本信息:?PopupMessageOptions|common.d.ts| +|type有变化|类名:PopupOptions;
方法or属性:targetSpace?: Length
旧版本信息:Length|类名:PopupOptions;
方法or属性:targetSpace?: Length
新版本信息:?Length|common.d.ts| +|type有变化|类名:CustomPopupOptions;
方法or属性:targetSpace?: Length
旧版本信息:Length|类名:CustomPopupOptions;
方法or属性:targetSpace?: Length
新版本信息:?Length|common.d.ts| +|type有变化|类名:CustomPopupOptions;
方法or属性:builder: CustomBuilder;
旧版本信息:|类名:CustomPopupOptions;
方法or属性:builder: CustomBuilder;
新版本信息:CustomBuilder|common.d.ts| +|type有变化|类名:CustomPopupOptions;
方法or属性:maskColor?: Color \| string \| Resource \| number;
旧版本信息:|类名:CustomPopupOptions;
方法or属性:maskColor?: Color \| string \| Resource \| number;
新版本信息:?(Color \| string \| Resource \| number)|common.d.ts| +|type有变化|类名:CustomPopupOptions;
方法or属性:popupColor?: Color \| string \| Resource \| number;
旧版本信息:|类名:CustomPopupOptions;
方法or属性:popupColor?: Color \| string \| Resource \| number;
新版本信息:?(Color \| string \| Resource \| number)|common.d.ts| +|type有变化|类名:CustomPopupOptions;
方法or属性:enableArrow?: boolean;
旧版本信息:|类名:CustomPopupOptions;
方法or属性:enableArrow?: boolean;
新版本信息:?boolean|common.d.ts| +|type有变化|类名:CustomPopupOptions;
方法or属性:autoCancel?: boolean;
旧版本信息:|类名:CustomPopupOptions;
方法or属性:autoCancel?: boolean;
新版本信息:?boolean|common.d.ts| +|type有变化|类名:ContextMenuOptions;
方法or属性:onAppear?: () => void;
旧版本信息:?() => void|类名:ContextMenuOptions;
方法or属性:onAppear?: () => void;
新版本信息:?(() => void)|common.d.ts| +|type有变化|类名:ContextMenuOptions;
方法or属性:onDisappear?: () => void;
旧版本信息:?() => void|类名:ContextMenuOptions;
方法or属性:onDisappear?: () => void;
新版本信息:?(() => void)|common.d.ts| +|type有变化|类名:PixelStretchEffectOptions;
方法or属性:top?: Length;
旧版本信息:Length|类名:PixelStretchEffectOptions;
方法or属性:top?: Length;
新版本信息:?Length|common.d.ts| +|type有变化|类名:PixelStretchEffectOptions;
方法or属性:bottom?: Length;
旧版本信息:Length|类名:PixelStretchEffectOptions;
方法or属性:bottom?: Length;
新版本信息:?Length|common.d.ts| +|type有变化|类名:PixelStretchEffectOptions;
方法or属性:left?: Length;
旧版本信息:Length|类名:PixelStretchEffectOptions;
方法or属性:left?: Length;
新版本信息:?Length|common.d.ts| +|type有变化|类名:LayoutBorderInfo;
方法or属性:borderWidth: EdgeWidths;
旧版本信息:|类名:LayoutBorderInfo;
方法or属性:borderWidth: EdgeWidths;
新版本信息:EdgeWidths|common.d.ts| +|type有变化|类名:LayoutBorderInfo;
方法or属性:margin: Margin,
旧版本信息:|类名:LayoutBorderInfo;
方法or属性:margin: Margin,
新版本信息:Margin|common.d.ts| +|type有变化|类名:LayoutBorderInfo;
方法or属性:padding: Padding,
旧版本信息:|类名:LayoutBorderInfo;
方法or属性:padding: Padding,
新版本信息:Padding|common.d.ts| +|type有变化|类名:LayoutInfo;
方法or属性:position: Position,
旧版本信息:|类名:LayoutInfo;
方法or属性:position: Position,
新版本信息:Position|common.d.ts| +|type有变化|类名:LayoutChild;
方法or属性:position: Position,
旧版本信息:|类名:LayoutChild;
方法or属性:position: Position,
新版本信息:Position|common.d.ts| +|type有变化|类名:LayoutInfo;
方法or属性:constraint: ConstraintSizeOptions,
旧版本信息:|类名:LayoutInfo;
方法or属性:constraint: ConstraintSizeOptions,
新版本信息:ConstraintSizeOptions|common.d.ts| +|type有变化|类名:LayoutChild;
方法or属性:constraint: ConstraintSizeOptions,
旧版本信息:|类名:LayoutChild;
方法or属性:constraint: ConstraintSizeOptions,
新版本信息:ConstraintSizeOptions|common.d.ts| +|type有变化|类名:LayoutChild;
方法or属性:name: string,
旧版本信息:|类名:LayoutChild;
方法or属性:name: string,
新版本信息:string|common.d.ts| +|type有变化|类名:LayoutChild;
方法or属性:id: string,
旧版本信息:|类名:LayoutChild;
方法or属性:id: string,
新版本信息:string|common.d.ts| +|type有变化|类名:LayoutChild;
方法or属性:borderInfo: LayoutBorderInfo,
旧版本信息:|类名:LayoutChild;
方法or属性:borderInfo: LayoutBorderInfo,
新版本信息:LayoutBorderInfo|common.d.ts| +|type有变化|类名:SubscribedAbstractProperty;
方法or属性:protected subscribers_: Set\;
旧版本信息:|类名:SubscribedAbstractProperty;
方法or属性:protected subscribers_: Set\;
新版本信息:Set\|common_ts_ets_api.d.ts| +|type有变化|类名:CustomDialogControllerOptions;
方法or属性:builder: any;
旧版本信息:|类名:CustomDialogControllerOptions;
方法or属性:builder: any;
新版本信息:any|custom_dialog_controller.d.ts| +|type有变化|类名:CustomDialogControllerOptions;
方法or属性:cancel?: () => void;
旧版本信息:|类名:CustomDialogControllerOptions;
方法or属性:cancel?: () => void;
新版本信息:?(() => void)|custom_dialog_controller.d.ts| +|type有变化|类名:CustomDialogControllerOptions;
方法or属性:autoCancel?: boolean;
旧版本信息:|类名:CustomDialogControllerOptions;
方法or属性:autoCancel?: boolean;
新版本信息:?boolean|custom_dialog_controller.d.ts| +|type有变化|类名:CustomDialogControllerOptions;
方法or属性:alignment?: DialogAlignment;
旧版本信息:|类名:CustomDialogControllerOptions;
方法or属性:alignment?: DialogAlignment;
新版本信息:?DialogAlignment|custom_dialog_controller.d.ts| +|type有变化|类名:CustomDialogControllerOptions;
方法or属性:offset?: Offset;
旧版本信息:|类名:CustomDialogControllerOptions;
方法or属性:offset?: Offset;
新版本信息:?Offset|custom_dialog_controller.d.ts| +|type有变化|类名:CustomDialogControllerOptions;
方法or属性:customStyle?: boolean;
旧版本信息:|类名:CustomDialogControllerOptions;
方法or属性:customStyle?: boolean;
新版本信息:?boolean|custom_dialog_controller.d.ts| +|type有变化|类名:CustomDialogControllerOptions;
方法or属性:gridCount?: number;
旧版本信息:|类名:CustomDialogControllerOptions;
方法or属性:gridCount?: number;
新版本信息:?number|custom_dialog_controller.d.ts| +|type有变化|类名:CustomDialogControllerOptions;
方法or属性:maskColor?: ResourceColor;
旧版本信息:|类名:CustomDialogControllerOptions;
方法or属性:maskColor?: ResourceColor;
新版本信息:?ResourceColor|custom_dialog_controller.d.ts| +|type有变化|类名:CustomDialogControllerOptions;
方法or属性:openAnimation?: AnimateParam;
旧版本信息:|类名:CustomDialogControllerOptions;
方法or属性:openAnimation?: AnimateParam;
新版本信息:?AnimateParam|custom_dialog_controller.d.ts| +|type有变化|类名:CustomDialogControllerOptions;
方法or属性:closeAnimation?: AnimateParam;
旧版本信息:|类名:CustomDialogControllerOptions;
方法or属性:closeAnimation?: AnimateParam;
新版本信息:?AnimateParam|custom_dialog_controller.d.ts| +|type有变化|类名:CustomDialogControllerOptions;
方法or属性:showInSubWindow?: boolean;
旧版本信息:boolean|类名:CustomDialogControllerOptions;
方法or属性:showInSubWindow?: boolean;
新版本信息:?boolean|custom_dialog_controller.d.ts| +|type有变化|类名:DataPanelOptions;
方法or属性:values: number[];
旧版本信息:|类名:DataPanelOptions;
方法or属性:values: number[];
新版本信息:number[]|data_panel.d.ts| +|type有变化|类名:DataPanelOptions;
方法or属性:max?: number;
旧版本信息:|类名:DataPanelOptions;
方法or属性:max?: number;
新版本信息:?number|data_panel.d.ts| +|type有变化|类名:DataPanelOptions;
方法or属性:type?: DataPanelType;
旧版本信息:|类名:DataPanelOptions;
方法or属性:type?: DataPanelType;
新版本信息:?DataPanelType|data_panel.d.ts| +|type有变化|类名:DatePickerResult;
方法or属性:year?: number;
旧版本信息:|类名:DatePickerResult;
方法or属性:year?: number;
新版本信息:?number|date_picker.d.ts| +|type有变化|类名:DatePickerResult;
方法or属性:month?: number;
旧版本信息:|类名:DatePickerResult;
方法or属性:month?: number;
新版本信息:?number|date_picker.d.ts| +|type有变化|类名:DatePickerResult;
方法or属性:day?: number;
旧版本信息:|类名:DatePickerResult;
方法or属性:day?: number;
新版本信息:?number|date_picker.d.ts| +|type有变化|类名:DatePickerOptions;
方法or属性:start?: Date;
旧版本信息:|类名:DatePickerOptions;
方法or属性:start?: Date;
新版本信息:?Date|date_picker.d.ts| +|type有变化|类名:DatePickerOptions;
方法or属性:end?: Date;
旧版本信息:|类名:DatePickerOptions;
方法or属性:end?: Date;
新版本信息:?Date|date_picker.d.ts| +|type有变化|类名:DatePickerOptions;
方法or属性:selected?: Date;
旧版本信息:|类名:DatePickerOptions;
方法or属性:selected?: Date;
新版本信息:?Date|date_picker.d.ts| +|type有变化|类名:DatePickerDialogOptions;
方法or属性:lunar?: boolean;
旧版本信息:|类名:DatePickerDialogOptions;
方法or属性:lunar?: boolean;
新版本信息:?boolean|date_picker.d.ts| +|type有变化|类名:DatePickerDialogOptions;
方法or属性:showTime?: boolean;
旧版本信息:boolean|类名:DatePickerDialogOptions;
方法or属性:showTime?: boolean;
新版本信息:?boolean|date_picker.d.ts| +|type有变化|类名:DatePickerDialogOptions;
方法or属性:useMilitaryTime?: boolean;
旧版本信息:boolean|类名:DatePickerDialogOptions;
方法or属性:useMilitaryTime?: boolean;
新版本信息:?boolean|date_picker.d.ts| +|type有变化|类名:DatePickerDialogOptions;
方法or属性:disappearTextStyle?: PickerTextStyle;
旧版本信息:PickerTextStyle|类名:DatePickerDialogOptions;
方法or属性:disappearTextStyle?: PickerTextStyle;
新版本信息:?PickerTextStyle|date_picker.d.ts| +|type有变化|类名:DatePickerDialogOptions;
方法or属性:textStyle?: PickerTextStyle;
旧版本信息:PickerTextStyle|类名:DatePickerDialogOptions;
方法or属性:textStyle?: PickerTextStyle;
新版本信息:?PickerTextStyle|date_picker.d.ts| +|type有变化|类名:DatePickerDialogOptions;
方法or属性:selectedTextStyle?: PickerTextStyle;
旧版本信息:PickerTextStyle|类名:DatePickerDialogOptions;
方法or属性:selectedTextStyle?: PickerTextStyle;
新版本信息:?PickerTextStyle|date_picker.d.ts| +|type有变化|类名:DatePickerDialogOptions;
方法or属性:onAccept?: (value: DatePickerResult) => void;
旧版本信息:|类名:DatePickerDialogOptions;
方法or属性:onAccept?: (value: DatePickerResult) => void;
新版本信息:?((value: DatePickerResult) => void)|date_picker.d.ts| +|type有变化|类名:DatePickerDialogOptions;
方法or属性:onCancel?: () => void;
旧版本信息:|类名:DatePickerDialogOptions;
方法or属性:onCancel?: () => void;
新版本信息:?(() => void)|date_picker.d.ts| +|type有变化|类名:DatePickerDialogOptions;
方法or属性:onChange?: (value: DatePickerResult) => void;
旧版本信息:|类名:DatePickerDialogOptions;
方法or属性:onChange?: (value: DatePickerResult) => void;
新版本信息:?((value: DatePickerResult) => void)|date_picker.d.ts| +|type有变化|类名:FlexOptions;
方法or属性:direction?: FlexDirection;
旧版本信息:|类名:FlexOptions;
方法or属性:direction?: FlexDirection;
新版本信息:?FlexDirection|flex.d.ts| +|type有变化|类名:FlexOptions;
方法or属性:wrap?: FlexWrap;
旧版本信息:|类名:FlexOptions;
方法or属性:wrap?: FlexWrap;
新版本信息:?FlexWrap|flex.d.ts| +|type有变化|类名:FlexOptions;
方法or属性:justifyContent?: FlexAlign;
旧版本信息:|类名:FlexOptions;
方法or属性:justifyContent?: FlexAlign;
新版本信息:?FlexAlign|flex.d.ts| +|type有变化|类名:FlexOptions;
方法or属性:alignItems?: ItemAlign;
旧版本信息:|类名:FlexOptions;
方法or属性:alignItems?: ItemAlign;
新版本信息:?ItemAlign|flex.d.ts| +|type有变化|类名:FlexOptions;
方法or属性:alignContent?: FlexAlign;
旧版本信息:|类名:FlexOptions;
方法or属性:alignContent?: FlexAlign;
新版本信息:?FlexAlign|flex.d.ts| +|type有变化|类名:FingerInfo;
方法or属性:id: number;
旧版本信息:|类名:FingerInfo;
方法or属性:id: number;
新版本信息:number|gesture.d.ts| +|type有变化|类名:FingerInfo;
方法or属性:globalX: number;
旧版本信息:|类名:FingerInfo;
方法or属性:globalX: number;
新版本信息:number|gesture.d.ts| +|type有变化|类名:FingerInfo;
方法or属性:globalY: number;
旧版本信息:|类名:FingerInfo;
方法or属性:globalY: number;
新版本信息:number|gesture.d.ts| +|type有变化|类名:FingerInfo;
方法or属性:localX: number;
旧版本信息:|类名:FingerInfo;
方法or属性:localX: number;
新版本信息:number|gesture.d.ts| +|type有变化|类名:FingerInfo;
方法or属性:localY: number;
旧版本信息:|类名:FingerInfo;
方法or属性:localY: number;
新版本信息:number|gesture.d.ts| +|type有变化|类名:GestureEvent;
方法or属性:repeat: boolean;
旧版本信息:|类名:GestureEvent;
方法or属性:repeat: boolean;
新版本信息:boolean|gesture.d.ts| +|type有变化|类名:GestureEvent;
方法or属性:fingerList: FingerInfo[];
旧版本信息:|类名:GestureEvent;
方法or属性:fingerList: FingerInfo[];
新版本信息:FingerInfo[]|gesture.d.ts| +|type有变化|类名:GestureEvent;
方法or属性:offsetX: number;
旧版本信息:|类名:GestureEvent;
方法or属性:offsetX: number;
新版本信息:number|gesture.d.ts| +|type有变化|类名:GestureEvent;
方法or属性:offsetY: number;
旧版本信息:|类名:GestureEvent;
方法or属性:offsetY: number;
新版本信息:number|gesture.d.ts| +|type有变化|类名:GestureEvent;
方法or属性:angle: number;
旧版本信息:|类名:GestureEvent;
方法or属性:angle: number;
新版本信息:number|gesture.d.ts| +|type有变化|类名:GestureEvent;
方法or属性:speed: number;
旧版本信息:|类名:GestureEvent;
方法or属性:speed: number;
新版本信息:number|gesture.d.ts| +|type有变化|类名:GestureEvent;
方法or属性:scale: number;
旧版本信息:|类名:GestureEvent;
方法or属性:scale: number;
新版本信息:number|gesture.d.ts| +|type有变化|类名:GestureEvent;
方法or属性:pinchCenterX: number;
旧版本信息:|类名:GestureEvent;
方法or属性:pinchCenterX: number;
新版本信息:number|gesture.d.ts| +|type有变化|类名:GestureEvent;
方法or属性:pinchCenterY: number;
旧版本信息:|类名:GestureEvent;
方法or属性:pinchCenterY: number;
新版本信息:number|gesture.d.ts| +|type有变化|类名:GridColColumnOption;
方法or属性:xs?: number,
旧版本信息:|类名:GridColColumnOption;
方法or属性:xs?: number,
新版本信息:?number|grid_col.d.ts| +|type有变化|类名:GridColColumnOption;
方法or属性:sm?: number,
旧版本信息:|类名:GridColColumnOption;
方法or属性:sm?: number,
新版本信息:?number|grid_col.d.ts| +|type有变化|类名:GridColColumnOption;
方法or属性:md?: number,
旧版本信息:|类名:GridColColumnOption;
方法or属性:md?: number,
新版本信息:?number|grid_col.d.ts| +|type有变化|类名:GridColColumnOption;
方法or属性:lg?: number,
旧版本信息:|类名:GridColColumnOption;
方法or属性:lg?: number,
新版本信息:?number|grid_col.d.ts| +|type有变化|类名:GridColColumnOption;
方法or属性:xl?: number,
旧版本信息:|类名:GridColColumnOption;
方法or属性:xl?: number,
新版本信息:?number|grid_col.d.ts| +|type有变化|类名:GridColColumnOption;
方法or属性:xxl?: number,
旧版本信息:|类名:GridColColumnOption;
方法or属性:xxl?: number,
新版本信息:?number|grid_col.d.ts| +|type有变化|类名:GridColOptions;
方法or属性:span?: number \| GridColColumnOption;
旧版本信息:|类名:GridColOptions;
方法or属性:span?: number \| GridColColumnOption;
新版本信息:?(number \| GridColColumnOption)|grid_col.d.ts| +|type有变化|类名:GridColOptions;
方法or属性:offset?: number \| GridColColumnOption;
旧版本信息:|类名:GridColOptions;
方法or属性:offset?: number \| GridColColumnOption;
新版本信息:?(number \| GridColColumnOption)|grid_col.d.ts| +|type有变化|类名:GridColOptions;
方法or属性:order?: number \| GridColColumnOption;
旧版本信息:|类名:GridColOptions;
方法or属性:order?: number \| GridColColumnOption;
新版本信息:?(number \| GridColColumnOption)|grid_col.d.ts| +|type有变化|类名:GridContainerOptions;
方法or属性:columns?: number \| "auto";
旧版本信息:|类名:GridContainerOptions;
方法or属性:columns?: number \| "auto";
新版本信息:?(number \| "auto")|grid_container.d.ts| +|type有变化|类名:GridContainerOptions;
方法or属性:sizeType?: SizeType;
旧版本信息:|类名:GridContainerOptions;
方法or属性:sizeType?: SizeType;
新版本信息:?SizeType|grid_container.d.ts| +|type有变化|类名:GridContainerOptions;
方法or属性:gutter?: number \| string;
旧版本信息:|类名:GridContainerOptions;
方法or属性:gutter?: number \| string;
新版本信息:?(number \| string)|grid_container.d.ts| +|type有变化|类名:GridContainerOptions;
方法or属性:margin?: number \| string;
旧版本信息:|类名:GridContainerOptions;
方法or属性:margin?: number \| string;
新版本信息:?(number \| string)|grid_container.d.ts| +|type有变化|类名:GridRowSizeOption;
方法or属性:xs?: Length,
旧版本信息:|类名:GridRowSizeOption;
方法or属性:xs?: Length,
新版本信息:?Length|grid_row.d.ts| +|type有变化|类名:GridRowSizeOption;
方法or属性:sm?: Length,
旧版本信息:|类名:GridRowSizeOption;
方法or属性:sm?: Length,
新版本信息:?Length|grid_row.d.ts| +|type有变化|类名:GridRowSizeOption;
方法or属性:md?: Length,
旧版本信息:|类名:GridRowSizeOption;
方法or属性:md?: Length,
新版本信息:?Length|grid_row.d.ts| +|type有变化|类名:GridRowSizeOption;
方法or属性:lg?: Length,
旧版本信息:|类名:GridRowSizeOption;
方法or属性:lg?: Length,
新版本信息:?Length|grid_row.d.ts| +|type有变化|类名:GridRowSizeOption;
方法or属性:xl?: Length,
旧版本信息:|类名:GridRowSizeOption;
方法or属性:xl?: Length,
新版本信息:?Length|grid_row.d.ts| +|type有变化|类名:GridRowColumnOption;
方法or属性:xs?: number,
旧版本信息:|类名:GridRowColumnOption;
方法or属性:xs?: number,
新版本信息:?number|grid_row.d.ts| +|type有变化|类名:GridRowColumnOption;
方法or属性:sm?: number,
旧版本信息:|类名:GridRowColumnOption;
方法or属性:sm?: number,
新版本信息:?number|grid_row.d.ts| +|type有变化|类名:GridRowColumnOption;
方法or属性:md?: number,
旧版本信息:|类名:GridRowColumnOption;
方法or属性:md?: number,
新版本信息:?number|grid_row.d.ts| +|type有变化|类名:GridRowColumnOption;
方法or属性:lg?: number,
旧版本信息:|类名:GridRowColumnOption;
方法or属性:lg?: number,
新版本信息:?number|grid_row.d.ts| +|type有变化|类名:GridRowColumnOption;
方法or属性:xl?: number,
旧版本信息:|类名:GridRowColumnOption;
方法or属性:xl?: number,
新版本信息:?number|grid_row.d.ts| +|type有变化|类名:GutterOption;
方法or属性:x?: Length \| GridRowSizeOption,
旧版本信息:|类名:GutterOption;
方法or属性:x?: Length \| GridRowSizeOption,
新版本信息:?(Length \| GridRowSizeOption)|grid_row.d.ts| +|type有变化|类名:GutterOption;
方法or属性:y?: Length \| GridRowSizeOption
旧版本信息:|类名:GutterOption;
方法or属性:y?: Length \| GridRowSizeOption
新版本信息:?(Length \| GridRowSizeOption)|grid_row.d.ts| +|type有变化|类名:BreakPoints;
方法or属性:value?: Array\,
旧版本信息:|类名:BreakPoints;
方法or属性:value?: Array\,
新版本信息:?Array\|grid_row.d.ts| +|type有变化|类名:BreakPoints;
方法or属性:reference?: BreakpointsReference,
旧版本信息:|类名:BreakPoints;
方法or属性:reference?: BreakpointsReference,
新版本信息:?BreakpointsReference|grid_row.d.ts| +|type有变化|类名:GridRowOptions;
方法or属性:gutter?: Length \| GutterOption;
旧版本信息:|类名:GridRowOptions;
方法or属性:gutter?: Length \| GutterOption;
新版本信息:?(Length \| GutterOption)|grid_row.d.ts| +|type有变化|类名:GridRowOptions;
方法or属性:columns?: number \| GridRowColumnOption;
旧版本信息:|类名:GridRowOptions;
方法or属性:columns?: number \| GridRowColumnOption;
新版本信息:?(number \| GridRowColumnOption)|grid_row.d.ts| +|type有变化|类名:GridRowOptions;
方法or属性:breakpoints?: BreakPoints;
旧版本信息:|类名:GridRowOptions;
方法or属性:breakpoints?: BreakPoints;
新版本信息:?BreakPoints|grid_row.d.ts| +|type有变化|类名:GridRowOptions;
方法or属性:direction?: GridRowDirection;
旧版本信息:|类名:GridRowOptions;
方法or属性:direction?: GridRowDirection;
新版本信息:?GridRowDirection|grid_row.d.ts| +|type有变化|类名:ImageFrameInfo;
方法or属性:width?: number \| string;
旧版本信息:|类名:ImageFrameInfo;
方法or属性:width?: number \| string;
新版本信息:?(number \| string)|image_animator.d.ts| +|type有变化|类名:ImageFrameInfo;
方法or属性:height?: number \| string;
旧版本信息:|类名:ImageFrameInfo;
方法or属性:height?: number \| string;
新版本信息:?(number \| string)|image_animator.d.ts| +|type有变化|类名:ImageFrameInfo;
方法or属性:top?: number \| string;
旧版本信息:|类名:ImageFrameInfo;
方法or属性:top?: number \| string;
新版本信息:?(number \| string)|image_animator.d.ts| +|type有变化|类名:ImageFrameInfo;
方法or属性:left?: number \| string;
旧版本信息:|类名:ImageFrameInfo;
方法or属性:left?: number \| string;
新版本信息:?(number \| string)|image_animator.d.ts| +|type有变化|类名:ImageFrameInfo;
方法or属性:duration?: number;
旧版本信息:|类名:ImageFrameInfo;
方法or属性:duration?: number;
新版本信息:?number|image_animator.d.ts| +|type有变化|类名:ChainAnimationOptions;
方法or属性:conductivity?: number;
旧版本信息:number|类名:ChainAnimationOptions;
方法or属性:conductivity?: number;
新版本信息:?number|list.d.ts| +|type有变化|类名:ChainAnimationOptions;
方法or属性:intensity?: number;
旧版本信息:number|类名:ChainAnimationOptions;
方法or属性:intensity?: number;
新版本信息:?number|list.d.ts| +|type有变化|类名:ChainAnimationOptions;
方法or属性:edgeEffect?: ChainEdgeEffect;
旧版本信息:ChainEdgeEffect|类名:ChainAnimationOptions;
方法or属性:edgeEffect?: ChainEdgeEffect;
新版本信息:?ChainEdgeEffect|list.d.ts| +|type有变化|类名:SwipeActionOptions;
方法or属性:start?: CustomBuilder \| SwipeActionItem;
旧版本信息:|类名:SwipeActionOptions;
方法or属性:start?: CustomBuilder \| SwipeActionItem;
新版本信息:?(CustomBuilder \| SwipeActionItem)|list_item.d.ts| +|type有变化|类名:SwipeActionOptions;
方法or属性:end?: CustomBuilder \| SwipeActionItem;
旧版本信息:|类名:SwipeActionOptions;
方法or属性:end?: CustomBuilder \| SwipeActionItem;
新版本信息:?(CustomBuilder \| SwipeActionItem)|list_item.d.ts| +|type有变化|类名:SwipeActionOptions;
方法or属性:edgeEffect?: SwipeEdgeEffect;
旧版本信息:|类名:SwipeActionOptions;
方法or属性:edgeEffect?: SwipeEdgeEffect;
新版本信息:?SwipeEdgeEffect|list_item.d.ts| +|type有变化|类名:ListItemGroupOptions;
方法or属性:header?: CustomBuilder;
旧版本信息:|类名:ListItemGroupOptions;
方法or属性:header?: CustomBuilder;
新版本信息:?CustomBuilder|list_item_group.d.ts| +|type有变化|类名:ListItemGroupOptions;
方法or属性:footer?: CustomBuilder;
旧版本信息:|类名:ListItemGroupOptions;
方法or属性:footer?: CustomBuilder;
新版本信息:?CustomBuilder|list_item_group.d.ts| +|type有变化|类名:ListItemGroupOptions;
方法or属性:space?: number \| string;
旧版本信息:|类名:ListItemGroupOptions;
方法or属性:space?: number \| string;
新版本信息:?(number \| string)|list_item_group.d.ts| +|type有变化|类名:Matrix2D;
方法or属性:scaleX?: number;
旧版本信息:|类名:Matrix2D;
方法or属性:scaleX?: number;
新版本信息:?number|matrix2d.d.ts| +|type有变化|类名:Matrix2D;
方法or属性:rotateY?: number;
旧版本信息:|类名:Matrix2D;
方法or属性:rotateY?: number;
新版本信息:?number|matrix2d.d.ts| +|type有变化|类名:Matrix2D;
方法or属性:rotateX?: number;
旧版本信息:|类名:Matrix2D;
方法or属性:rotateX?: number;
新版本信息:?number|matrix2d.d.ts| +|type有变化|类名:Matrix2D;
方法or属性:scaleY?: number;
旧版本信息:|类名:Matrix2D;
方法or属性:scaleY?: number;
新版本信息:?number|matrix2d.d.ts| +|type有变化|类名:Matrix2D;
方法or属性:translateX?: number;
旧版本信息:|类名:Matrix2D;
方法or属性:translateX?: number;
新版本信息:?number|matrix2d.d.ts| +|type有变化|类名:Matrix2D;
方法or属性:translateY?: number;
旧版本信息:|类名:Matrix2D;
方法or属性:translateY?: number;
新版本信息:?number|matrix2d.d.ts| +|type有变化|类名:MenuItemOptions;
方法or属性:startIcon?: ResourceStr;
旧版本信息:|类名:MenuItemOptions;
方法or属性:startIcon?: ResourceStr;
新版本信息:?ResourceStr|menu_item.d.ts| +|type有变化|类名:MenuItemOptions;
方法or属性:content?: ResourceStr;
旧版本信息:|类名:MenuItemOptions;
方法or属性:content?: ResourceStr;
新版本信息:?ResourceStr|menu_item.d.ts| +|type有变化|类名:MenuItemOptions;
方法or属性:endIcon?: ResourceStr;
旧版本信息:|类名:MenuItemOptions;
方法or属性:endIcon?: ResourceStr;
新版本信息:?ResourceStr|menu_item.d.ts| +|type有变化|类名:MenuItemOptions;
方法or属性:labelInfo?: ResourceStr;
旧版本信息:|类名:MenuItemOptions;
方法or属性:labelInfo?: ResourceStr;
新版本信息:?ResourceStr|menu_item.d.ts| +|type有变化|类名:MenuItemOptions;
方法or属性:builder?: CustomBuilder;
旧版本信息:|类名:MenuItemOptions;
方法or属性:builder?: CustomBuilder;
新版本信息:?CustomBuilder|menu_item.d.ts| +|type有变化|类名:MenuItemGroupOptions;
方法or属性:header?: ResourceStr \| CustomBuilder;
旧版本信息:|类名:MenuItemGroupOptions;
方法or属性:header?: ResourceStr \| CustomBuilder;
新版本信息:?(ResourceStr \| CustomBuilder)|menu_item_group.d.ts| +|type有变化|类名:MenuItemGroupOptions;
方法or属性:footer?: ResourceStr \| CustomBuilder;
旧版本信息:|类名:MenuItemGroupOptions;
方法or属性:footer?: ResourceStr \| CustomBuilder;
新版本信息:?(ResourceStr \| CustomBuilder)|menu_item_group.d.ts| +|type有变化|类名:NavigationCommonTitle;
方法or属性:main: string;
旧版本信息:|类名:NavigationCommonTitle;
方法or属性:main: string;
新版本信息:string|navigation.d.ts| +|type有变化|类名:NavigationCommonTitle;
方法or属性:sub: string;
旧版本信息:|类名:NavigationCommonTitle;
方法or属性:sub: string;
新版本信息:string|navigation.d.ts| +|type有变化|类名:NavigationCustomTitle;
方法or属性:builder: CustomBuilder;
旧版本信息:|类名:NavigationCustomTitle;
方法or属性:builder: CustomBuilder;
新版本信息:CustomBuilder|navigation.d.ts| +|type有变化|类名:NavigationCustomTitle;
方法or属性:height: TitleHeight \| Length;
旧版本信息:|类名:NavigationCustomTitle;
方法or属性:height: TitleHeight \| Length;
新版本信息:TitleHeight \| Length|navigation.d.ts| +|type有变化|类名:NavigationMenuItem;
方法or属性:value: string;
旧版本信息:|类名:NavigationMenuItem;
方法or属性:value: string;
新版本信息:string|navigation.d.ts| +|type有变化|类名:NavigationMenuItem;
方法or属性:icon?: string;
旧版本信息:|类名:NavigationMenuItem;
方法or属性:icon?: string;
新版本信息:?string|navigation.d.ts| +|type有变化|类名:NavigationMenuItem;
方法or属性:action?: () => void;
旧版本信息:|类名:NavigationMenuItem;
方法or属性:action?: () => void;
新版本信息:?(() => void)|navigation.d.ts| +|type有变化|类名:NavPathInfo;
方法or属性:param?: unknown;
旧版本信息:unknown|类名:NavPathInfo;
方法or属性:param?: unknown;
新版本信息:?unknown|navigation.d.ts| +|type有变化|类名:NavigationAttribute;
方法or属性:title(value: ResourceStr \| CustomBuilder \| NavigationCommonTitle \| NavigationCustomTitle): NavigationAttribute;
旧版本信息:(ResourceStr \| CustomBuilder \| NavigationCommonTitle \| NavigationCustomTitle)|类名:NavigationAttribute;
方法or属性:title(value: ResourceStr \| CustomBuilder \| NavigationCommonTitle \| NavigationCustomTitle): NavigationAttribute;
新版本信息:|navigation.d.ts| +|type有变化|类名:NavDestinationCommonTitle;
方法or属性:main: string;
旧版本信息:|类名:NavDestinationCommonTitle;
方法or属性:main: string;
新版本信息:string|nav_destination.d.ts| +|type有变化|类名:NavDestinationCommonTitle;
方法or属性:sub: string;
旧版本信息:|类名:NavDestinationCommonTitle;
方法or属性:sub: string;
新版本信息:string|nav_destination.d.ts| +|type有变化|类名:NavDestinationCustomTitle;
方法or属性:builder: CustomBuilder;
旧版本信息:|类名:NavDestinationCustomTitle;
方法or属性:builder: CustomBuilder;
新版本信息:CustomBuilder|nav_destination.d.ts| +|type有变化|类名:NavDestinationCustomTitle;
方法or属性:height: TitleHeight \| Length;
旧版本信息:|类名:NavDestinationCustomTitle;
方法or属性:height: TitleHeight \| Length;
新版本信息:TitleHeight \| Length|nav_destination.d.ts| +|type有变化|类名:RouteInfo;
方法or属性:param?: unknown;
旧版本信息:unknown|类名:RouteInfo;
方法or属性:param?: unknown;
新版本信息:?unknown|nav_router.d.ts| +|type有变化|类名:PluginComponentTemplate;
方法or属性:source: string;
旧版本信息:|类名:PluginComponentTemplate;
方法or属性:source: string;
新版本信息:string|plugin_component.d.ts| +|type有变化|类名:PluginComponentTemplate;
方法or属性:bundleName: string;
旧版本信息:|类名:PluginComponentTemplate;
方法or属性:bundleName: string;
新版本信息:string|plugin_component.d.ts| +|type有变化|类名:ProgressOptions;
方法or属性:value: number;
旧版本信息:|类名:ProgressOptions;
方法or属性:value: number;
新版本信息:number|progress.d.ts| +|type有变化|类名:ProgressOptions;
方法or属性:total?: number;
旧版本信息:|类名:ProgressOptions;
方法or属性:total?: number;
新版本信息:?number|progress.d.ts| +|type有变化|类名:ProgressOptions;
方法or属性:style?: ProgressStyle
旧版本信息:|类名:ProgressOptions;
方法or属性:style?: ProgressStyle
新版本信息:?ProgressStyle|progress.d.ts| +|type有变化|类名:ProgressOptions;
方法or属性:type?: Type
旧版本信息:|类名:ProgressOptions;
方法or属性:type?: Type
新版本信息:?Type|progress.d.ts| +|type有变化|类名:ProgressStyleOptions;
方法or属性:strokeWidth?: Length;
旧版本信息:|类名:ProgressStyleOptions;
方法or属性:strokeWidth?: Length;
新版本信息:?Length|progress.d.ts| +|type有变化|类名:ProgressStyleOptions;
方法or属性:scaleCount?: number;
旧版本信息:|类名:ProgressStyleOptions;
方法or属性:scaleCount?: number;
新版本信息:?number|progress.d.ts| +|type有变化|类名:ProgressStyleOptions;
方法or属性:scaleWidth?: Length;
旧版本信息:|类名:ProgressStyleOptions;
方法or属性:scaleWidth?: Length;
新版本信息:?Length|progress.d.ts| +|type有变化|类名:RadioOptions;
方法or属性:group: string;
旧版本信息:|类名:RadioOptions;
方法or属性:group: string;
新版本信息:string|radio.d.ts| +|type有变化|类名:RadioOptions;
方法or属性:value: string;
旧版本信息:|类名:RadioOptions;
方法or属性:value: string;
新版本信息:string|radio.d.ts| +|type有变化|类名:RadioStyle;
方法or属性:checkedBackgroundColor?: ResourceColor;
旧版本信息:ResourceColor|类名:RadioStyle;
方法or属性:checkedBackgroundColor?: ResourceColor;
新版本信息:?ResourceColor|radio.d.ts| +|type有变化|类名:RadioStyle;
方法or属性:uncheckedBorderColor?: ResourceColor;
旧版本信息:ResourceColor|类名:RadioStyle;
方法or属性:uncheckedBorderColor?: ResourceColor;
新版本信息:?ResourceColor|radio.d.ts| +|type有变化|类名:RadioStyle;
方法or属性:indicatorColor?: ResourceColor;
旧版本信息:ResourceColor|类名:RadioStyle;
方法or属性:indicatorColor?: ResourceColor;
新版本信息:?ResourceColor|radio.d.ts| +|type有变化|类名:RefreshOptions;
方法or属性:offset?: number \| string;
旧版本信息:number \| string|类名:RefreshOptions;
方法or属性:offset?: number \| string;
新版本信息:?(number \| string)|refresh.d.ts| +|type有变化|类名:RefreshOptions;
方法or属性:friction?: number \| string;
旧版本信息:number \| string|类名:RefreshOptions;
方法or属性:friction?: number \| string;
新版本信息:?(number \| string)|refresh.d.ts| +|type有变化|类名:RefreshOptions;
方法or属性:builder?: CustomBuilder;
旧版本信息:CustomBuilder|类名:RefreshOptions;
方法or属性:builder?: CustomBuilder;
新版本信息:?CustomBuilder|refresh.d.ts| +|type有变化|类名:RRect;
方法or属性:left: number;
旧版本信息:|类名:RRect;
方法or属性:left: number;
新版本信息:number|remote_window.d.ts| +|type有变化|类名:RRect;
方法or属性:top: number;
旧版本信息:|类名:RRect;
方法or属性:top: number;
新版本信息:number|remote_window.d.ts| +|type有变化|类名:RRect;
方法or属性:width: number;
旧版本信息:|类名:RRect;
方法or属性:width: number;
新版本信息:number|remote_window.d.ts| +|type有变化|类名:RRect;
方法or属性:height: number;
旧版本信息:|类名:RRect;
方法or属性:height: number;
新版本信息:number|remote_window.d.ts| +|type有变化|类名:RRect;
方法or属性:radius: number;
旧版本信息:|类名:RRect;
方法or属性:radius: number;
新版本信息:number|remote_window.d.ts| +|type有变化|类名:WindowAnimationTarget;
方法or属性:readonly bundleName: string;
旧版本信息:|类名:WindowAnimationTarget;
方法or属性:readonly bundleName: string;
新版本信息:string|remote_window.d.ts| +|type有变化|类名:WindowAnimationTarget;
方法or属性:readonly abilityName: string;
旧版本信息:|类名:WindowAnimationTarget;
方法or属性:readonly abilityName: string;
新版本信息:string|remote_window.d.ts| +|type有变化|类名:WindowAnimationTarget;
方法or属性:readonly windowBounds: RRect;
旧版本信息:|类名:WindowAnimationTarget;
方法or属性:readonly windowBounds: RRect;
新版本信息:RRect|remote_window.d.ts| +|type有变化|类名:WindowAnimationTarget;
方法or属性:readonly missionId: number;
旧版本信息:|类名:WindowAnimationTarget;
方法or属性:readonly missionId: number;
新版本信息:number|remote_window.d.ts| +|type有变化|类名:ScrollBarOptions;
方法or属性:scroller: Scroller;
旧版本信息:|类名:ScrollBarOptions;
方法or属性:scroller: Scroller;
新版本信息:Scroller|scroll_bar.d.ts| +|type有变化|类名:ScrollBarOptions;
方法or属性:direction?: ScrollBarDirection;
旧版本信息:|类名:ScrollBarOptions;
方法or属性:direction?: ScrollBarDirection;
新版本信息:?ScrollBarDirection|scroll_bar.d.ts| +|type有变化|类名:ScrollBarOptions;
方法or属性:state?: BarState;
旧版本信息:|类名:ScrollBarOptions;
方法or属性:state?: BarState;
新版本信息:?BarState|scroll_bar.d.ts| +|type有变化|类名:IconOptions;
方法or属性:size?: Length;
旧版本信息:Length|类名:IconOptions;
方法or属性:size?: Length;
新版本信息:?Length|search.d.ts| +|type有变化|类名:IconOptions;
方法or属性:color?: ResourceColor;
旧版本信息:ResourceColor|类名:IconOptions;
方法or属性:color?: ResourceColor;
新版本信息:?ResourceColor|search.d.ts| +|type有变化|类名:CaretStyle;
方法or属性:color?: ResourceColor,
旧版本信息:ResourceColor|类名:CaretStyle;
方法or属性:color?: ResourceColor,
新版本信息:?ResourceColor|search.d.ts| +|type有变化|类名:IconOptions;
方法or属性:src?: ResourceStr;
旧版本信息:ResourceStr|类名:IconOptions;
方法or属性:src?: ResourceStr;
新版本信息:?ResourceStr|search.d.ts| +|type有变化|类名:CaretStyle;
方法or属性:width?: Length,
旧版本信息:Length|类名:CaretStyle;
方法or属性:width?: Length,
新版本信息:?Length|search.d.ts| +|type有变化|类名:SelectOption;
方法or属性:value: ResourceStr;
旧版本信息:|类名:SelectOption;
方法or属性:value: ResourceStr;
新版本信息:ResourceStr|select.d.ts| +|type有变化|类名:SelectOption;
方法or属性:icon?: ResourceStr;
旧版本信息:|类名:SelectOption;
方法or属性:icon?: ResourceStr;
新版本信息:ResourceStr|select.d.ts| +|type有变化|类名:ButtonStyle;
方法or属性:left?: number;
旧版本信息:|类名:ButtonStyle;
方法or属性:left?: number;
新版本信息:?number|sidebar.d.ts| +|type有变化|类名:ButtonStyle;
方法or属性:top?: number;
旧版本信息:|类名:ButtonStyle;
方法or属性:top?: number;
新版本信息:?number|sidebar.d.ts| +|type有变化|类名:ButtonStyle;
方法or属性:width?: number;
旧版本信息:|类名:ButtonStyle;
方法or属性:width?: number;
新版本信息:?number|sidebar.d.ts| +|type有变化|类名:ButtonStyle;
方法or属性:height?: number;
旧版本信息:|类名:ButtonStyle;
方法or属性:height?: number;
新版本信息:?number|sidebar.d.ts| +|type有变化|类名:DividerStyle;
方法or属性:color?: ResourceColor;
旧版本信息:ResourceColor|类名:DividerStyle;
方法or属性:color?: ResourceColor;
新版本信息:?ResourceColor|sidebar.d.ts| +|type有变化|类名:DividerStyle;
方法or属性:startMargin?: Length;
旧版本信息:Length|类名:DividerStyle;
方法or属性:startMargin?: Length;
新版本信息:?Length|sidebar.d.ts| +|type有变化|类名:DividerStyle;
方法or属性:endMargin?: Length;
旧版本信息:Length|类名:DividerStyle;
方法or属性:endMargin?: Length;
新版本信息:?Length|sidebar.d.ts| +|type有变化|类名:SliderOptions;
方法or属性:value?: number;
旧版本信息:|类名:SliderOptions;
方法or属性:value?: number;
新版本信息:?number|slider.d.ts| +|type有变化|类名:SliderOptions;
方法or属性:min?: number;
旧版本信息:|类名:SliderOptions;
方法or属性:min?: number;
新版本信息:?number|slider.d.ts| +|type有变化|类名:SliderOptions;
方法or属性:max?: number;
旧版本信息:|类名:SliderOptions;
方法or属性:max?: number;
新版本信息:?number|slider.d.ts| +|type有变化|类名:SliderOptions;
方法or属性:step?: number;
旧版本信息:|类名:SliderOptions;
方法or属性:step?: number;
新版本信息:?number|slider.d.ts| +|type有变化|类名:SliderOptions;
方法or属性:style?: SliderStyle;
旧版本信息:|类名:SliderOptions;
方法or属性:style?: SliderStyle;
新版本信息:?SliderStyle|slider.d.ts| +|type有变化|类名:SliderOptions;
方法or属性:direction?: Axis;
旧版本信息:|类名:SliderOptions;
方法or属性:direction?: Axis;
新版本信息:?Axis|slider.d.ts| +|type有变化|类名:SliderOptions;
方法or属性:reverse?: boolean;
旧版本信息:|类名:SliderOptions;
方法or属性:reverse?: boolean;
新版本信息:?boolean|slider.d.ts| +|type有变化|类名:SliderBlockStyle;
方法or属性:image?: ResourceStr;
旧版本信息:ResourceStr|类名:SliderBlockStyle;
方法or属性:image?: ResourceStr;
新版本信息:?ResourceStr|slider.d.ts| +|type有变化|类名:SliderBlockStyle;
方法or属性:shape?: CircleAttribute \| EllipseAttribute \| PathAttribute \| RectAttribute;
旧版本信息:CircleAttribute \| EllipseAttribute \| PathAttribute \| RectAttribute|类名:SliderBlockStyle;
方法or属性:shape?: CircleAttribute \| EllipseAttribute \| PathAttribute \| RectAttribute;
新版本信息:?(CircleAttribute \| EllipseAttribute \| PathAttribute \| RectAttribute)|slider.d.ts| +|type有变化|类名:IndicatorStyle;
方法or属性:left?: Length;
旧版本信息:|类名:IndicatorStyle;
方法or属性:left?: Length;
新版本信息:?Length|swiper.d.ts| +|type有变化|类名:IndicatorStyle;
方法or属性:top?: Length;
旧版本信息:|类名:IndicatorStyle;
方法or属性:top?: Length;
新版本信息:?Length|swiper.d.ts| +|type有变化|类名:IndicatorStyle;
方法or属性:right?: Length;
旧版本信息:|类名:IndicatorStyle;
方法or属性:right?: Length;
新版本信息:?Length|swiper.d.ts| +|type有变化|类名:IndicatorStyle;
方法or属性:bottom?: Length;
旧版本信息:|类名:IndicatorStyle;
方法or属性:bottom?: Length;
新版本信息:?Length|swiper.d.ts| +|type有变化|类名:IndicatorStyle;
方法or属性:size?: Length;
旧版本信息:|类名:IndicatorStyle;
方法or属性:size?: Length;
新版本信息:?Length|swiper.d.ts| +|type有变化|类名:IndicatorStyle;
方法or属性:mask?: boolean;
旧版本信息:|类名:IndicatorStyle;
方法or属性:mask?: boolean;
新版本信息:?boolean|swiper.d.ts| +|type有变化|类名:IndicatorStyle;
方法or属性:color?: ResourceColor;
旧版本信息:|类名:IndicatorStyle;
方法or属性:color?: ResourceColor;
新版本信息:?ResourceColor|swiper.d.ts| +|type有变化|类名:IndicatorStyle;
方法or属性:selectedColor?: ResourceColor;
旧版本信息:|类名:IndicatorStyle;
方法or属性:selectedColor?: ResourceColor;
新版本信息:?ResourceColor|swiper.d.ts| +|type有变化|类名:IndicatorStyle;
方法or属性:height?: Length;
旧版本信息:Length|类名:IndicatorStyle;
方法or属性:height?: Length;
新版本信息:?Length|tab_content.d.ts| +|type有变化|类名:IndicatorStyle;
方法or属性:width?: Length;
旧版本信息:Length|类名:IndicatorStyle;
方法or属性:width?: Length;
新版本信息:?Length|tab_content.d.ts| +|type有变化|类名:IndicatorStyle;
方法or属性:borderRadius?: Length;
旧版本信息:Length|类名:IndicatorStyle;
方法or属性:borderRadius?: Length;
新版本信息:?Length|tab_content.d.ts| +|type有变化|类名:BoardStyle;
方法or属性:borderRadius?: Length;
旧版本信息:Length|类名:BoardStyle;
方法or属性:borderRadius?: Length;
新版本信息:?Length|tab_content.d.ts| +|type有变化|类名:IndicatorStyle;
方法or属性:marginTop?: Length;
旧版本信息:Length|类名:IndicatorStyle;
方法or属性:marginTop?: Length;
新版本信息:?Length|tab_content.d.ts| +|type有变化|类名:SwiperAttribute;
方法or属性:curve(value: Curve \| string \| ICurve): SwiperAttribute;
旧版本信息:?(Curve \| string \| ICurve)|类名:SwiperAttribute;
方法or属性:curve(value: Curve \| string \| ICurve): SwiperAttribute;
新版本信息:|swiper.d.ts| +|type有变化|类名:TextAttribute;
方法or属性:draggable(value: boolean): TextAttribute;
旧版本信息:|类名:TextAttribute;
方法or属性:draggable(value: boolean): TextAttribute;
新版本信息:|text.d.ts| +|type有变化|类名:TextAreaOptions;
方法or属性:placeholder?: ResourceStr;
旧版本信息:|类名:TextAreaOptions;
方法or属性:placeholder?: ResourceStr;
新版本信息:?ResourceStr|text_area.d.ts| +|type有变化|类名:TextAreaOptions;
方法or属性:text?: ResourceStr;
旧版本信息:|类名:TextAreaOptions;
方法or属性:text?: ResourceStr;
新版本信息:?ResourceStr|text_area.d.ts| +|type有变化|类名:TextAreaOptions;
方法or属性:controller?: TextAreaController;
旧版本信息:|类名:TextAreaOptions;
方法or属性:controller?: TextAreaController;
新版本信息:?TextAreaController|text_area.d.ts| +|type有变化|类名:TextInputOptions;
方法or属性:placeholder?: ResourceStr;
旧版本信息:|类名:TextInputOptions;
方法or属性:placeholder?: ResourceStr;
新版本信息:?ResourceStr|text_input.d.ts| +|type有变化|类名:TextInputOptions;
方法or属性:text?: ResourceStr;
旧版本信息:|类名:TextInputOptions;
方法or属性:text?: ResourceStr;
新版本信息:?ResourceStr|text_input.d.ts| +|type有变化|类名:TextInputOptions;
方法or属性:controller?: TextInputController;
旧版本信息:|类名:TextInputOptions;
方法or属性:controller?: TextInputController;
新版本信息:?TextInputController|text_input.d.ts| +|type有变化|类名:TextPickerRangeContent;
方法or属性:text?: string \| Resource;
旧版本信息:string \| Resource|类名:TextPickerRangeContent;
方法or属性:text?: string \| Resource;
新版本信息:?(string \| Resource)|text_picker.d.ts| +|type有变化|类名:TextPickerOptions;
方法or属性:range: string[] \| string[][] \| Resource \| TextPickerRangeContent[] \| TextCascadePickerRangeContent[];
旧版本信息:string[] \| Resource \| TextPickerRangeContent[]|类名:TextPickerOptions;
方法or属性:range: string[] \| string[][] \| Resource \| TextPickerRangeContent[] \| TextCascadePickerRangeContent[];
新版本信息:string[] \| string[][] \| Resource \| TextPickerRangeContent[] \| TextCascadePickerRangeContent[]|text_picker.d.ts| +|type有变化|类名:TextPickerOptions;
方法or属性:value?: string \| string[];
旧版本信息:string|类名:TextPickerOptions;
方法or属性:value?: string \| string[];
新版本信息:?(string \| string[])|text_picker.d.ts| +|type有变化|类名:TextPickerOptions;
方法or属性:selected?: number \| number[];
旧版本信息:|类名:TextPickerOptions;
方法or属性:selected?: number \| number[];
新版本信息:?(number \| number[])|text_picker.d.ts| +|type有变化|类名:TextPickerResult;
方法or属性:value: string \| string[];
旧版本信息:string|类名:TextPickerResult;
方法or属性:value: string \| string[];
新版本信息:string \| string[]|text_picker.d.ts| +|type有变化|类名:TextPickerResult;
方法or属性:index: number \| number[];
旧版本信息:|类名:TextPickerResult;
方法or属性:index: number \| number[];
新版本信息:number \| number[]|text_picker.d.ts| +|type有变化|类名:TextPickerDialogOptions;
方法or属性:defaultPickerItemHeight?: number \| string;
旧版本信息:|类名:TextPickerDialogOptions;
方法or属性:defaultPickerItemHeight?: number \| string;
新版本信息:number \| string|text_picker.d.ts| +|type有变化|类名:TextPickerDialogOptions;
方法or属性:disappearTextStyle?: PickerTextStyle;
旧版本信息:PickerTextStyle|类名:TextPickerDialogOptions;
方法or属性:disappearTextStyle?: PickerTextStyle;
新版本信息:?PickerTextStyle|text_picker.d.ts| +|type有变化|类名:TextPickerDialogOptions;
方法or属性:textStyle?: PickerTextStyle;
旧版本信息:PickerTextStyle|类名:TextPickerDialogOptions;
方法or属性:textStyle?: PickerTextStyle;
新版本信息:?PickerTextStyle|text_picker.d.ts| +|type有变化|类名:TextPickerDialogOptions;
方法or属性:selectedTextStyle?: PickerTextStyle;
旧版本信息:PickerTextStyle|类名:TextPickerDialogOptions;
方法or属性:selectedTextStyle?: PickerTextStyle;
新版本信息:?PickerTextStyle|text_picker.d.ts| +|type有变化|类名:TextPickerDialogOptions;
方法or属性:onAccept?: (value: TextPickerResult) => void;
旧版本信息:|类名:TextPickerDialogOptions;
方法or属性:onAccept?: (value: TextPickerResult) => void;
新版本信息:?((value: TextPickerResult) => void)|text_picker.d.ts| +|type有变化|类名:TextPickerDialogOptions;
方法or属性:onCancel?: () => void;
旧版本信息:|类名:TextPickerDialogOptions;
方法or属性:onCancel?: () => void;
新版本信息:?(() => void)|text_picker.d.ts| +|type有变化|类名:TextPickerDialogOptions;
方法or属性:onChange?: (value: TextPickerResult) => void;
旧版本信息:|类名:TextPickerDialogOptions;
方法or属性:onChange?: (value: TextPickerResult) => void;
新版本信息:?((value: TextPickerResult) => void)|text_picker.d.ts| +|type有变化|类名:TextTimerOptions;
方法or属性:isCountDown?: boolean;
旧版本信息:|类名:TextTimerOptions;
方法or属性:isCountDown?: boolean;
新版本信息:?boolean|text_timer.d.ts| +|type有变化|类名:TextTimerOptions;
方法or属性:count?: number;
旧版本信息:|类名:TextTimerOptions;
方法or属性:count?: number;
新版本信息:?number|text_timer.d.ts| +|type有变化|类名:TextTimerOptions;
方法or属性:controller?: TextTimerController;
旧版本信息:|类名:TextTimerOptions;
方法or属性:controller?: TextTimerController;
新版本信息:?TextTimerController|text_timer.d.ts| +|type有变化|类名:TimePickerResult;
方法or属性:hour?: number;
旧版本信息:|类名:TimePickerResult;
方法or属性:hour?: number;
新版本信息:?number|time_picker.d.ts| +|type有变化|类名:TimePickerResult;
方法or属性:minute?: number;
旧版本信息:|类名:TimePickerResult;
方法or属性:minute?: number;
新版本信息:?number|time_picker.d.ts| +|type有变化|类名:TimePickerOptions;
方法or属性:selected?: Date;
旧版本信息:|类名:TimePickerOptions;
方法or属性:selected?: Date;
新版本信息:?Date|time_picker.d.ts| +|type有变化|类名:TimePickerDialogOptions;
方法or属性:useMilitaryTime?: boolean;
旧版本信息:|类名:TimePickerDialogOptions;
方法or属性:useMilitaryTime?: boolean;
新版本信息:?boolean|time_picker.d.ts| +|type有变化|类名:TimePickerDialogOptions;
方法or属性:disappearTextStyle?: PickerTextStyle;
旧版本信息:PickerTextStyle|类名:TimePickerDialogOptions;
方法or属性:disappearTextStyle?: PickerTextStyle;
新版本信息:?PickerTextStyle|time_picker.d.ts| +|type有变化|类名:TimePickerDialogOptions;
方法or属性:textStyle?: PickerTextStyle;
旧版本信息:PickerTextStyle|类名:TimePickerDialogOptions;
方法or属性:textStyle?: PickerTextStyle;
新版本信息:?PickerTextStyle|time_picker.d.ts| +|type有变化|类名:TimePickerDialogOptions;
方法or属性:selectedTextStyle?: PickerTextStyle;
旧版本信息:PickerTextStyle|类名:TimePickerDialogOptions;
方法or属性:selectedTextStyle?: PickerTextStyle;
新版本信息:?PickerTextStyle|time_picker.d.ts| +|type有变化|类名:TimePickerDialogOptions;
方法or属性:onAccept?: (value: TimePickerResult) => void;
旧版本信息:|类名:TimePickerDialogOptions;
方法or属性:onAccept?: (value: TimePickerResult) => void;
新版本信息:?((value: TimePickerResult) => void)|time_picker.d.ts| +|type有变化|类名:TimePickerDialogOptions;
方法or属性:onCancel?: () => void;
旧版本信息:|类名:TimePickerDialogOptions;
方法or属性:onCancel?: () => void;
新版本信息:?(() => void)|time_picker.d.ts| +|type有变化|类名:TimePickerDialogOptions;
方法or属性:onChange?: (value: TimePickerResult) => void;
旧版本信息:|类名:TimePickerDialogOptions;
方法or属性:onChange?: (value: TimePickerResult) => void;
新版本信息:?((value: TimePickerResult) => void)|time_picker.d.ts| +|type有变化|类名:Resource;
方法or属性:readonly id: number;
旧版本信息:|类名:Resource;
方法or属性:readonly id: number;
新版本信息:number|units.d.ts| +|type有变化|类名:Resource;
方法or属性:readonly type: number;
旧版本信息:|类名:Resource;
方法or属性:readonly type: number;
新版本信息:number|units.d.ts| +|type有变化|类名:Resource;
方法or属性:readonly params?: any[];
旧版本信息:|类名:Resource;
方法or属性:readonly params?: any[];
新版本信息:?any[]|units.d.ts| +|type有变化|类名:Resource;
方法or属性:readonly bundleName: string;
旧版本信息:|类名:Resource;
方法or属性:readonly bundleName: string;
新版本信息:string|units.d.ts| +|type有变化|类名:Resource;
方法or属性:readonly moduleName: string;
旧版本信息:|类名:Resource;
方法or属性:readonly moduleName: string;
新版本信息:string|units.d.ts| +|type有变化|类名:Font;
方法or属性:size?: Length;
旧版本信息:|类名:Font;
方法or属性:size?: Length;
新版本信息:?Length|units.d.ts| +|type有变化|类名:MarkStyle;
方法or属性:size?: Length;
旧版本信息:Length|类名:MarkStyle;
方法or属性:size?: Length;
新版本信息:?Length|units.d.ts| +|type有变化|类名:Font;
方法or属性:weight?: FontWeight \| number \| string;
旧版本信息:|类名:Font;
方法or属性:weight?: FontWeight \| number \| string;
新版本信息:?(FontWeight \| number \| string)|units.d.ts| +|type有变化|类名:Font;
方法or属性:family?: string \| Resource;
旧版本信息:|类名:Font;
方法or属性:family?: string \| Resource;
新版本信息:?(string \| Resource)|units.d.ts| +|type有变化|类名:Font;
方法or属性:style?: FontStyle;
旧版本信息:|类名:Font;
方法or属性:style?: FontStyle;
新版本信息:?FontStyle|units.d.ts| +|type有变化|类名:Area;
方法or属性:width: Length;
旧版本信息:|类名:Area;
方法or属性:width: Length;
新版本信息:Length|units.d.ts| +|type有变化|类名:Area;
方法or属性:height: Length;
旧版本信息:|类名:Area;
方法or属性:height: Length;
新版本信息:Length|units.d.ts| +|type有变化|类名:Area;
方法or属性:position: Position;
旧版本信息:|类名:Area;
方法or属性:position: Position;
新版本信息:Position|units.d.ts| +|type有变化|类名:Area;
方法or属性:globalPosition: Position;
旧版本信息:|类名:Area;
方法or属性:globalPosition: Position;
新版本信息:Position|units.d.ts| +|type有变化|类名:Position;
方法or属性:x?: Length;
旧版本信息:|类名:Position;
方法or属性:x?: Length;
新版本信息:?Length|units.d.ts| +|type有变化|类名:Position;
方法or属性:y?: Length;
旧版本信息:|类名:Position;
方法or属性:y?: Length;
新版本信息:?Length|units.d.ts| +|type有变化|类名:ConstraintSizeOptions;
方法or属性:minWidth?: Length;
旧版本信息:|类名:ConstraintSizeOptions;
方法or属性:minWidth?: Length;
新版本信息:?Length|units.d.ts| +|type有变化|类名:ConstraintSizeOptions;
方法or属性:maxWidth?: Length;
旧版本信息:|类名:ConstraintSizeOptions;
方法or属性:maxWidth?: Length;
新版本信息:?Length|units.d.ts| +|type有变化|类名:ConstraintSizeOptions;
方法or属性:minHeight?: Length;
旧版本信息:|类名:ConstraintSizeOptions;
方法or属性:minHeight?: Length;
新版本信息:?Length|units.d.ts| +|type有变化|类名:ConstraintSizeOptions;
方法or属性:maxHeight?: Length;
旧版本信息:|类名:ConstraintSizeOptions;
方法or属性:maxHeight?: Length;
新版本信息:?Length|units.d.ts| +|type有变化|类名:SizeOptions;
方法or属性:width?: Length;
旧版本信息:|类名:SizeOptions;
方法or属性:width?: Length;
新版本信息:?Length|units.d.ts| +|type有变化|类名:SizeOptions;
方法or属性:height?: Length;
旧版本信息:|类名:SizeOptions;
方法or属性:height?: Length;
新版本信息:?Length|units.d.ts| +|type有变化|类名:BorderOptions;
方法or属性:width?: EdgeWidths \| Length;
旧版本信息:EdgeWidths \| Length|类名:BorderOptions;
方法or属性:width?: EdgeWidths \| Length;
新版本信息:?(EdgeWidths \| Length)|units.d.ts| +|type有变化|类名:BorderOptions;
方法or属性:color?: EdgeColors \| ResourceColor;
旧版本信息:EdgeColors \| ResourceColor|类名:BorderOptions;
方法or属性:color?: EdgeColors \| ResourceColor;
新版本信息:?(EdgeColors \| ResourceColor)|units.d.ts| +|type有变化|类名:BorderOptions;
方法or属性:radius?: BorderRadiuses \| Length;
旧版本信息:BorderRadiuses \| Length|类名:BorderOptions;
方法or属性:radius?: BorderRadiuses \| Length;
新版本信息:?(BorderRadiuses \| Length)|units.d.ts| +|type有变化|类名:BorderOptions;
方法or属性:style?: EdgeStyles \| BorderStyle;
旧版本信息:EdgeStyles \| BorderStyle|类名:BorderOptions;
方法or属性:style?: EdgeStyles \| BorderStyle;
新版本信息:?(EdgeStyles \| BorderStyle)|units.d.ts| +|type有变化|类名:MarkStyle;
方法or属性:strokeColor?: ResourceColor;
旧版本信息:ResourceColor|类名:MarkStyle;
方法or属性:strokeColor?: ResourceColor;
新版本信息:?ResourceColor|units.d.ts| +|type有变化|类名:MarkStyle;
方法or属性:strokeWidth?: Length;
旧版本信息:Length|类名:MarkStyle;
方法or属性:strokeWidth?: Length;
新版本信息:?Length|units.d.ts| +|type有变化|类名:VideoOptions;
方法or属性:src?: string \| Resource;
旧版本信息:|类名:VideoOptions;
方法or属性:src?: string \| Resource;
新版本信息:?(string \| Resource)|video.d.ts| +|type有变化|类名:VideoOptions;
方法or属性:currentProgressRate?: number \| string \| PlaybackSpeed;
旧版本信息:|类名:VideoOptions;
方法or属性:currentProgressRate?: number \| string \| PlaybackSpeed;
新版本信息:?(number \| string \| PlaybackSpeed)|video.d.ts| +|type有变化|类名:VideoOptions;
方法or属性:previewUri?: string \| PixelMap \| Resource;
旧版本信息:|类名:VideoOptions;
方法or属性:previewUri?: string \| PixelMap \| Resource;
新版本信息:?(string \| PixelMap \| Resource)|video.d.ts| +|type有变化|类名:VideoOptions;
方法or属性:controller?: VideoController;
旧版本信息:|类名:VideoOptions;
方法or属性:controller?: VideoController;
新版本信息:?VideoController|video.d.ts| +|type有变化|类名:WaterFlowOptions;
方法or属性:footer?: CustomBuilder;
旧版本信息:|类名:WaterFlowOptions;
方法or属性:footer?: CustomBuilder;
新版本信息:?CustomBuilder|water_flow.d.ts| +|type有变化|类名:WaterFlowOptions;
方法or属性:scroller?: Scroller;
旧版本信息:|类名:WaterFlowOptions;
方法or属性:scroller?: Scroller;
新版本信息:?Scroller|water_flow.d.ts| +|type有变化|类名:WebMediaOptions;
方法or属性:resumeInterval?: number;
旧版本信息:|类名:WebMediaOptions;
方法or属性:resumeInterval?: number;
新版本信息:?number|web.d.ts| +|type有变化|类名:WebMediaOptions;
方法or属性:audioExclusive?: boolean;
旧版本信息:|类名:WebMediaOptions;
方法or属性:audioExclusive?: boolean;
新版本信息:?boolean|web.d.ts| +|type有变化|类名:Header;
方法or属性:headerKey: string;
旧版本信息:|类名:Header;
方法or属性:headerKey: string;
新版本信息:string|web.d.ts| +|type有变化|类名:Header;
方法or属性:headerValue: string;
旧版本信息:|类名:Header;
方法or属性:headerValue: string;
新版本信息:string|web.d.ts| +|type有变化|类名:WebOptions;
方法or属性:src: string \| Resource;
旧版本信息:|类名:WebOptions;
方法or属性:src: string \| Resource;
新版本信息:string \| Resource|web.d.ts| +|type有变化|类名:WebOptions;
方法or属性:controller: WebController \| WebviewController;
旧版本信息:(WebController \| WebviewController)|类名:WebOptions;
方法or属性:controller: WebController \| WebviewController;
新版本信息:WebController \| WebviewController|web.d.ts| +|type有变化|类名:WebAttribute;
方法or属性:javaScriptProxy(javaScriptProxy: { object: object, name: string, methodList: Array\,
controller: WebController \| WebviewController }): WebAttribute;
旧版本信息:controller : WebController \| WebviewController|类名:WebAttribute;
方法or属性:javaScriptProxy(javaScriptProxy: { object: object, name: string, methodList: Array\,
controller: WebController \| WebviewController }): WebAttribute;
新版本信息:|web.d.ts| +|函数有变化|类名:FontOptions;
方法or属性:familyName: string;|类名:FontOptions;
方法or属性:familyName: string \| Resource;|@ohos.font.d.ts| +|函数有变化|类名:FontOptions;
方法or属性:familySrc: string;|类名:FontOptions;
方法or属性:familySrc: string \| Resource;|@ohos.font.d.ts| +|卡片应用支持性有变化|类名:ClickEvent;
方法or属性:screenX: number;
旧版本信息:form|类名:ClickEvent;
方法or属性:screenX: number;
新版本信息:|common.d.ts| +|卡片应用支持性有变化|类名:ClickEvent;
方法or属性:screenY: number;
旧版本信息:form|类名:ClickEvent;
方法or属性:screenY: number;
新版本信息:|common.d.ts| +|卡片应用支持性有变化|类名:TextAttribute;
方法or属性:textShadow(value: ShadowOptions): TextAttribute;
旧版本信息:|类名:TextAttribute;
方法or属性:textShadow(value: ShadowOptions): TextAttribute;
新版本信息:form|text.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-battery.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-battery.md new file mode 100644 index 0000000000..a857a91320 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-battery.md @@ -0,0 +1,15 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:power;
方法or属性:function isStandby(): boolean;|@ohos.power.d.ts| +|访问级别有变化|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_INVALID = -17
旧版本信息:|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_INVALID = -17
新版本信息:systemapi|@ohos.batteryStatistics.d.ts| +|访问级别有变化|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_APP
旧版本信息:|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_APP
新版本信息:systemapi|@ohos.batteryStatistics.d.ts| +|访问级别有变化|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_BLUETOOTH
旧版本信息:|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_BLUETOOTH
新版本信息:systemapi|@ohos.batteryStatistics.d.ts| +|访问级别有变化|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_IDLE
旧版本信息:|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_IDLE
新版本信息:systemapi|@ohos.batteryStatistics.d.ts| +|访问级别有变化|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_PHONE
旧版本信息:|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_PHONE
新版本信息:systemapi|@ohos.batteryStatistics.d.ts| +|访问级别有变化|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_RADIO
旧版本信息:|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_RADIO
新版本信息:systemapi|@ohos.batteryStatistics.d.ts| +|访问级别有变化|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_SCREEN
旧版本信息:|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_SCREEN
新版本信息:systemapi|@ohos.batteryStatistics.d.ts| +|访问级别有变化|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_USER
旧版本信息:|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_USER
新版本信息:systemapi|@ohos.batteryStatistics.d.ts| +|访问级别有变化|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_WIFI
旧版本信息:|类名:ConsumptionType;
方法or属性:CONSUMPTION_TYPE_WIFI
新版本信息:systemapi|@ohos.batteryStatistics.d.ts| +|访问级别有变化|类名:BatteryStatsInfo;
方法or属性:uid: number;
旧版本信息:|类名:BatteryStatsInfo;
方法or属性:uid: number;
新版本信息:systemapi|@ohos.batteryStatistics.d.ts| +|访问级别有变化|类名:BatteryStatsInfo;
方法or属性:type: ConsumptionType;
旧版本信息:|类名:BatteryStatsInfo;
方法or属性:type: ConsumptionType;
新版本信息:systemapi|@ohos.batteryStatistics.d.ts| +|访问级别有变化|类名:BatteryStatsInfo;
方法or属性:power: number;
旧版本信息:|类名:BatteryStatsInfo;
方法or属性:power: number;
新版本信息:systemapi|@ohos.batteryStatistics.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-bundle.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-bundle.md new file mode 100644 index 0000000000..5cd82fa61b --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-bundle.md @@ -0,0 +1,38 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|删除|类名:BusinessAbilityInfo;
方法or属性:readonly bundleName: string;|NA|BusinessAbilityInfo.d.ts| +|删除|类名:BusinessAbilityInfo;
方法or属性:readonly moduleName: string;|NA|BusinessAbilityInfo.d.ts| +|删除|类名:BusinessAbilityInfo;
方法or属性:readonly name: string;|NA|BusinessAbilityInfo.d.ts| +|删除|类名:BusinessAbilityInfo;
方法or属性:readonly labelId: number;|NA|BusinessAbilityInfo.d.ts| +|删除|类名:BusinessAbilityInfo;
方法or属性:readonly descriptionId: number;|NA|BusinessAbilityInfo.d.ts| +|删除|类名:BusinessAbilityInfo;
方法or属性:readonly iconId: number;|NA|BusinessAbilityInfo.d.ts| +|删除|类名:BusinessAbilityInfo;
方法or属性:readonly businessType: businessAbilityRouter.BusinessType;|NA|BusinessAbilityInfo.d.ts| +|删除|类名:BusinessAbilityInfo;
方法or属性:readonly applicationInfo: ApplicationInfo;|NA|BusinessAbilityInfo.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function getBundleInfoForSelfSync(bundleFlags: number): BundleInfo;|@ohos.bundle.bundleManager.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function getSpecifiedDistributionType(bundleName: string): string;|@ohos.bundle.bundleManager.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function getAdditionalInfo(bundleName: string): string;|@ohos.bundle.bundleManager.d.ts| +|新增|NA|类名:ExtensionAbilityType;
方法or属性:PUSH = 17|@ohos.bundle.bundleManager.d.ts| +|新增|NA|类名:ExtensionAbilityType;
方法or属性:APP_ACCOUNT_AUTHORIZATION = 19|@ohos.bundle.bundleManager.d.ts| +|新增|NA|类名:VerifyCodeParam;
方法or属性:moduleName: string;|@ohos.bundle.installer.d.ts| +|新增|NA|类名:VerifyCodeParam;
方法or属性:signatureFilePath: string;|@ohos.bundle.installer.d.ts| +|新增|NA|类名:InstallParam;
方法or属性:specifiedDistributionType?: string;|@ohos.bundle.installer.d.ts| +|新增|NA|类名:InstallParam;
方法or属性:additionalInfo?: string;|@ohos.bundle.installer.d.ts| +|新增|NA|类名:InstallParam;
方法or属性:verifyCodeParams?: Array\;|@ohos.bundle.installer.d.ts| +|新增|NA|类名:ReqPermissionDetail;
方法or属性:moduleName: string;|BundleInfo.d.ts| +|错误码有变化|类名:BundleInstaller;
方法or属性:install(hapFilePaths: Array\, installParam: InstallParam, callback: AsyncCallback\): void;
旧版本信息:201,202,401,17700004,17700010,17700011,17700012,17700015,17700016,17700017,17700018,17700031,17700036,17700039,17700041,17700042,17700043,17700044,17700047|类名:BundleInstaller;
方法or属性:install(hapFilePaths: Array\, installParam: InstallParam, callback: AsyncCallback\): void;
新版本信息:201,202,401,17700004,17700010,17700011,17700012,17700015,17700016,17700017,17700018,17700031,17700036,17700039,17700041,17700042,17700043,17700044,17700047,17700048|@ohos.bundle.installer.d.ts| +|错误码有变化|类名:BundleInstaller;
方法or属性:install(hapFilePaths: Array\, callback: AsyncCallback\): void;
旧版本信息:201,202,401,17700010,17700011,17700012,17700015,17700016,17700017,17700018,17700031,17700036,17700039,17700041,17700042,17700043,17700044,17700047|类名:BundleInstaller;
方法or属性:install(hapFilePaths: Array\, callback: AsyncCallback\): void;
新版本信息:201,202,401,17700010,17700011,17700012,17700015,17700016,17700017,17700018,17700031,17700036,17700039,17700041,17700042,17700043,17700044,17700047,17700048|@ohos.bundle.installer.d.ts| +|错误码有变化|类名:BundleInstaller;
方法or属性:install(hapFilePaths: Array\, installParam?: InstallParam): Promise\;
旧版本信息:201,202,401,17700004,17700010,17700011,17700012,17700015,17700016,17700017,17700018,17700031,17700036,17700039,17700041,17700042,17700043,17700044,17700047|类名:BundleInstaller;
方法or属性:install(hapFilePaths: Array\, installParam?: InstallParam): Promise\;
新版本信息:201,202,401,17700004,17700010,17700011,17700012,17700015,17700016,17700017,17700018,17700031,17700036,17700039,17700041,17700042,17700043,17700044,17700047,17700048|@ohos.bundle.installer.d.ts| +|错误码有变化|类名:zlib;
方法or属性:function decompressFile(inFile: string, outFile: string, options: Options, callback: AsyncCallback\): void;
旧版本信息:401,900001,900002|类名:zlib;
方法or属性:function decompressFile(inFile: string, outFile: string, options: Options, callback: AsyncCallback\): void;
新版本信息:401,900001,900002,900003|@ohos.zlib.d.ts| +|错误码有变化|类名:zlib;
方法or属性:function decompressFile(inFile: string, outFile: string, options: Options): Promise\;
旧版本信息:401,900001,900002|类名:zlib;
方法or属性:function decompressFile(inFile: string, outFile: string, options: Options): Promise\;
新版本信息:401,900001,900002,900003|@ohos.zlib.d.ts| +|权限有变化|类名:bundleManager;
方法or属性:function getAllBundleInfo(bundleFlags: number, callback: AsyncCallback\>): void;
旧版本信息:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED|类名:bundleManager;
方法or属性:function getAllBundleInfo(bundleFlags: number, callback: AsyncCallback\>): void;
新版本信息:ohos.permission.GET_INSTALLED_BUNDLE_LIST|@ohos.bundle.bundleManager.d.ts| +|权限有变化|类名:bundleManager;
方法or属性:function getAllBundleInfo(bundleFlags: number, userId: number, callback: AsyncCallback\>): void;
旧版本信息:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED|类名:bundleManager;
方法or属性:function getAllBundleInfo(bundleFlags: number, userId: number, callback: AsyncCallback\>): void;
新版本信息:ohos.permission.GET_INSTALLED_BUNDLE_LIST|@ohos.bundle.bundleManager.d.ts| +|权限有变化|类名:bundleManager;
方法or属性:function getAllBundleInfo(bundleFlags: number, userId?: number): Promise\>;
旧版本信息:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED|类名:bundleManager;
方法or属性:function getAllBundleInfo(bundleFlags: number, userId?: number): Promise\>;
新版本信息:ohos.permission.GET_INSTALLED_BUNDLE_LIST|@ohos.bundle.bundleManager.d.ts| +|权限有变化|类名:bundleManager;
方法or属性:function getAllApplicationInfo(appFlags: number, callback: AsyncCallback\>): void;
旧版本信息:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED|类名:bundleManager;
方法or属性:function getAllApplicationInfo(appFlags: number, callback: AsyncCallback\>): void;
新版本信息:ohos.permission.GET_INSTALLED_BUNDLE_LIST|@ohos.bundle.bundleManager.d.ts| +|权限有变化|类名:bundleManager;
方法or属性:function getAllApplicationInfo(appFlags: number,

userId: number, callback: AsyncCallback\>): void;
旧版本信息:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED|类名:bundleManager;
方法or属性:function getAllApplicationInfo(appFlags: number,

userId: number, callback: AsyncCallback\>): void;
新版本信息:ohos.permission.GET_INSTALLED_BUNDLE_LIST|@ohos.bundle.bundleManager.d.ts| +|权限有变化|类名:bundleManager;
方法or属性:function getAllApplicationInfo(appFlags: number, userId?: number): Promise\>;
旧版本信息:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED|类名:bundleManager;
方法or属性:function getAllApplicationInfo(appFlags: number, userId?: number): Promise\>;
新版本信息:ohos.permission.GET_INSTALLED_BUNDLE_LIST|@ohos.bundle.bundleManager.d.ts| +|权限有变化|类名:BundleInstaller;
方法or属性:install(hapFilePaths: Array\, installParam: InstallParam, callback: AsyncCallback\): void;
旧版本信息:ohos.permission.INSTALL_BUNDLE|类名:BundleInstaller;
方法or属性:install(hapFilePaths: Array\, installParam: InstallParam, callback: AsyncCallback\): void;
新版本信息:ohos.permission.INSTALL_BUNDLE,ohos.permission.INSTALL_ENTERPRISE_BUNDLE|@ohos.bundle.installer.d.ts| +|权限有变化|类名:BundleInstaller;
方法or属性:install(hapFilePaths: Array\, callback: AsyncCallback\): void;
旧版本信息:ohos.permission.INSTALL_BUNDLE|类名:BundleInstaller;
方法or属性:install(hapFilePaths: Array\, callback: AsyncCallback\): void;
新版本信息:ohos.permission.INSTALL_BUNDLE,ohos.permission.INSTALL_ENTERPRISE_BUNDLE|@ohos.bundle.installer.d.ts| +|权限有变化|类名:BundleInstaller;
方法or属性:install(hapFilePaths: Array\, installParam?: InstallParam): Promise\;
旧版本信息:ohos.permission.INSTALL_BUNDLE|类名:BundleInstaller;
方法or属性:install(hapFilePaths: Array\, installParam?: InstallParam): Promise\;
新版本信息:ohos.permission.INSTALL_BUNDLE,ohos.permission.INSTALL_ENTERPRISE_BUNDLE|@ohos.bundle.installer.d.ts| +|model有变化|类名:AbilityType;
方法or属性:PAGE = 1
旧版本信息:|类名:AbilityType;
方法or属性:PAGE = 1
新版本信息:FAModelOnly|@ohos.bundle.bundleManager.d.ts| +|model有变化|类名:AbilityType;
方法or属性:SERVICE = 2
旧版本信息:|类名:AbilityType;
方法or属性:SERVICE = 2
新版本信息:FAModelOnly|@ohos.bundle.bundleManager.d.ts| +|model有变化|类名:AbilityType;
方法or属性:DATA = 3
旧版本信息:|类名:AbilityType;
方法or属性:DATA = 3
新版本信息:FAModelOnly|@ohos.bundle.bundleManager.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-communication.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-communication.md new file mode 100644 index 0000000000..fb0d1874ff --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-communication.md @@ -0,0 +1,605 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|删除|类名:wifiManager;
方法or属性:function getScanInfoList(): Array\;|NA|@ohos.wifiManager.d.ts| +|删除|类名:wifiManager;
方法or属性:function updateDeviceConfig(config: WifiDeviceConfig): number;|NA|@ohos.wifiManager.d.ts| +|删除|类名:wifiManager;
方法or属性:function disableDeviceConfig(networkId: number): void;|NA|@ohos.wifiManager.d.ts| +|删除|类名:wifiManager;
方法or属性:function removeAllDeviceConfigs(): void;|NA|@ohos.wifiManager.d.ts| +|删除|类名:wifiManager;
方法or属性:function removeDeviceConfig(networkId: number): void;|NA|@ohos.wifiManager.d.ts| +|删除|类名:wifiManager;
方法or属性:function getHotspotStations(): Array\;|NA|@ohos.wifiManager.d.ts| +|删除|类名:wifiManager;
方法or属性:function createP2pGroup(config: WifiP2PConfig): void;|NA|@ohos.wifiManager.d.ts| +|删除|类名:wifiManager;
方法or属性:function removeP2pGroup(): void;|NA|@ohos.wifiManager.d.ts| +|删除|类名:wifiManager;
方法or属性:function startDiscoverP2pDevices(): void;|NA|@ohos.wifiManager.d.ts| +|删除|类名:wifiManager;
方法or属性:function stopDiscoverP2pDevices(): void;|NA|@ohos.wifiManager.d.ts| +|删除|类名:wifiManager;
方法or属性:function deletePersistentP2pGroup(netId: number): void;|NA|@ohos.wifiManager.d.ts| +|删除|类名:wifiManager;
方法or属性:function setP2pDeviceName(devName: string): void;|NA|@ohos.wifiManager.d.ts| +|新增|NA|类名:TCPSocketConnection;
方法or属性:close(): Promise\;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:close(): Promise\;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketServer;
方法or属性:getState(): Promise\;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketServer;
方法or属性:getState(): Promise\;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketConnection;
方法or属性:send(options: TCPSendOptions): Promise\;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketConnection;
方法or属性:getRemoteAddress(): Promise\;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:getRemoteAddress(): Promise\;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketServer;
方法or属性:setExtraOptions(options: TCPExtraOptions): Promise\;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketServer;
方法or属性:setExtraOptions(options: TCPExtraOptions): Promise\;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketServer;
方法or属性:getCertificate(): Promise\;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:getRemoteCertificate(): Promise\;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketServer;
方法or属性:getProtocol(): Promise\;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:getCipherSuite(): Promise\>;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:getSignatureAlgorithms(): Promise\>;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:send(data: string): Promise\;|@ohos.net.socket.d.ts| +|新增|NA|类名:bluetoothManager;
方法or属性:function pairCredibleDevice(deviceId: string, transport: BluetoothTransport, callback: AsyncCallback\): void;|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:bluetoothManager;
方法or属性:function pairCredibleDevice(deviceId: string, transport: BluetoothTransport): Promise\;|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:bluetoothManager;
方法or属性:function getRemoteProfileUuids(device: string, callback: AsyncCallback\>): void;|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:bluetoothManager;
方法or属性:function getRemoteProfileUuids(device: string): Promise\>;|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:bluetoothManager;
方法or属性:function getLocalProfileUuids(callback: AsyncCallback\>): void;|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:bluetoothManager;
方法or属性:function getLocalProfileUuids(): Promise\>;|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:BaseProfile;
方法or属性:setConnectionStrategy(device: string, strategy: ConnectionStrategy, callback: AsyncCallback\): void;|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:BaseProfile;
方法or属性:setConnectionStrategy(device: string, strategy: ConnectionStrategy): Promise\;|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:BaseProfile;
方法or属性:getConnectionStrategy(device: string, callback: AsyncCallback\): void;|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:BaseProfile;
方法or属性:getConnectionStrategy(device: string): Promise\;|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:AdvertiseData;
方法or属性:includeDeviceName?: boolean;|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:BluetoothTransport;
方法or属性:TRANSPORT_BR_EDR = 0|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:BluetoothTransport;
方法or属性:TRANSPORT_LE = 1|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:ConnectionStrategy;
方法or属性:CONNECT_STRATEGY_UNSUPPORTED = 0|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:ConnectionStrategy;
方法or属性:CONNECT_STRATEGY_ALLOWED = 1|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:ConnectionStrategy;
方法or属性:CONNECT_STRATEGY_FORBIDDEN = 2|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:ProfileUuids;
方法or属性:PROFILE_UUID_HFP_AG = '0000111F-0000-1000-8000-00805F9B34FB'|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:ProfileUuids;
方法or属性:PROFILE_UUID_HFP_HF = '0000111E-0000-1000-8000-00805F9B34FB'|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:ProfileUuids;
方法or属性:PROFILE_UUID_HSP_AG = '00001112-0000-1000-8000-00805F9B34FB'|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:ProfileUuids;
方法or属性:PROFILE_UUID_HSP_HS = '00001108-0000-1000-8000-00805F9B34FB'|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:ProfileUuids;
方法or属性:PROFILE_UUID_A2DP_SRC = '0000110A-0000-1000-8000-00805F9B34FB'|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:ProfileUuids;
方法or属性:PROFILE_UUID_A2DP_SINK = '0000110B-0000-1000-8000-00805F9B34FB'|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:ProfileUuids;
方法or属性:PROFILE_UUID_AVRCP_CT = '0000110E-0000-1000-8000-00805F9B34FB'|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:ProfileUuids;
方法or属性:PROFILE_UUID_AVRCP_TG = '0000110C-0000-1000-8000-00805F9B34FB'|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:ProfileUuids;
方法or属性:PROFILE_UUID_HID = '00001124-0000-1000-8000-00805F9B34FB'|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:ProfileUuids;
方法or属性:PROFILE_UUID_HOGP = '00001812-0000-1000-8000-00805F9B34FB'|@ohos.bluetoothManager.d.ts| +|新增|NA|类名:connection;
方法or属性:function getDefaultHttpProxy(callback: AsyncCallback\): void;|@ohos.net.connection.d.ts| +|新增|NA|类名:connection;
方法or属性:function getDefaultHttpProxy(): Promise\;|@ohos.net.connection.d.ts| +|新增|NA|类名:ethernet;
方法or属性:type HttpProxy = connection.HttpProxy;|@ohos.net.ethernet.d.ts| +|新增|NA|类名:InterfaceConfiguration;
方法or属性:httpProxy?: HttpProxy;|@ohos.net.ethernet.d.ts| +|新增|NA|类名:DiscoveryService;
方法or属性:off(type: 'discoveryStart', callback?: Callback\<{ serviceInfo: LocalServiceInfo, errorCode?: MdnsError }>): void;|@ohos.net.mdns.d.ts| +|新增|NA|类名:DiscoveryService;
方法or属性:off(type: 'discoveryStop', callback?: Callback\<{ serviceInfo: LocalServiceInfo, errorCode?: MdnsError }>): void;|@ohos.net.mdns.d.ts| +|新增|NA|类名:DiscoveryService;
方法or属性:off(type: 'serviceFound', callback?: Callback\): void;|@ohos.net.mdns.d.ts| +|新增|NA|类名:DiscoveryService;
方法or属性:off(type: 'serviceLost', callback?: Callback\): void;|@ohos.net.mdns.d.ts| +|新增|NA|类名:policy;
方法or属性:type NetBearType = connection.NetBearType;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function setBackgroundAllowed(isAllowed: boolean, callback: AsyncCallback\): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function setBackgroundAllowed(isAllowed: boolean): Promise\;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function isBackgroundAllowed(callback: AsyncCallback\): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function isBackgroundAllowed(): Promise\;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function getBackgroundPolicyByUid(uid: number, callback: AsyncCallback\): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function getBackgroundPolicyByUid(uid: number): Promise\;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function setPolicyByUid(uid: number, policy: NetUidPolicy, callback: AsyncCallback\): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function setPolicyByUid(uid: number, policy: NetUidPolicy): Promise\;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function getPolicyByUid(uid: number, callback: AsyncCallback\): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function getPolicyByUid(uid: number): Promise\;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function getUidsByPolicy(policy: NetUidPolicy, callback: AsyncCallback\>): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function getUidsByPolicy(policy: NetUidPolicy): Promise\>;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function isUidNetAllowed(uid: number, isMetered: boolean, callback: AsyncCallback\): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function isUidNetAllowed(uid: number, isMetered: boolean): Promise\;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function isUidNetAllowed(uid: number, iface: string, callback: AsyncCallback\): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function isUidNetAllowed(uid: number, iface: string): Promise\;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function setNetQuotaPolicies(quotaPolicies: Array\, callback: AsyncCallback\): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function setNetQuotaPolicies(quotaPolicies: Array\): Promise\;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function getNetQuotaPolicies(callback: AsyncCallback\>): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function getNetQuotaPolicies(): Promise\>;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function updateRemindPolicy(netType: NetBearType, simId: string, remindType: RemindType, callback: AsyncCallback\): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function updateRemindPolicy(netType: NetBearType, simId: string, remindType: RemindType): Promise\;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function setDeviceIdleTrustlist(uids: Array\, isAllowed: boolean, callback: AsyncCallback\): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function setDeviceIdleTrustlist(uids: Array\, isAllowed: boolean): Promise\;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function getDeviceIdleTrustlist(callback: AsyncCallback\>): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function getDeviceIdleTrustlist(): Promise\>;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function setPowerSaveTrustlist(uids: Array\, isAllowed: boolean, callback: AsyncCallback\): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function setPowerSaveTrustlist(uids: Array\, isAllowed: boolean): Promise\;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function getPowerSaveTrustlist(callback: AsyncCallback\>): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function getPowerSaveTrustlist(): Promise\>;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function resetPolicies(simId: string, callback: AsyncCallback\): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function resetPolicies(simId: string): Promise\;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function on(type: 'netUidPolicyChange', callback: Callback\<{ uid: number, policy: NetUidPolicy }>): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function on(type: 'netUidRuleChange', callback: Callback\<{ uid: number, rule: NetUidRule }>): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function on(type: 'netMeteredIfacesChange', callback: Callback\>): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function on(type: 'netQuotaPolicyChange', callback: Callback\>): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function on(type: 'netBackgroundPolicyChange', callback: Callback\): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function off(type: 'netUidPolicyChange', callback?: Callback\<{ uid: number, policy: NetUidPolicy }>): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function off(type: 'netUidRuleChange', callback?: Callback\<{ uid: number, rule: NetUidRule }>): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function off(type: 'netMeteredIfacesChange', callback?: Callback\>): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function off(type: 'netQuotaPolicyChange', callback?: Callback\>): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:policy;
方法or属性:function off(type: 'netBackgroundPolicyChange', callback?: Callback\): void;|@ohos.net.policy.d.ts| +|新增|NA|类名:NetBackgroundPolicy;
方法or属性:NET_BACKGROUND_POLICY_NONE = 0|@ohos.net.policy.d.ts| +|新增|NA|类名:NetBackgroundPolicy;
方法or属性:NET_BACKGROUND_POLICY_ENABLE = 1|@ohos.net.policy.d.ts| +|新增|NA|类名:NetBackgroundPolicy;
方法or属性:NET_BACKGROUND_POLICY_DISABLE = 2|@ohos.net.policy.d.ts| +|新增|NA|类名:NetBackgroundPolicy;
方法or属性:NET_BACKGROUND_POLICY_TRUSTLIST = 3|@ohos.net.policy.d.ts| +|新增|NA|类名:NetQuotaPolicy;
方法or属性:networkMatchRule: NetworkMatchRule;|@ohos.net.policy.d.ts| +|新增|NA|类名:NetQuotaPolicy;
方法or属性:quotaPolicy: QuotaPolicy;|@ohos.net.policy.d.ts| +|新增|NA|类名:QuotaPolicy;
方法or属性:periodDuration: string;|@ohos.net.policy.d.ts| +|新增|NA|类名:QuotaPolicy;
方法or属性:warningBytes: number;|@ohos.net.policy.d.ts| +|新增|NA|类名:QuotaPolicy;
方法or属性:limitBytes: number;|@ohos.net.policy.d.ts| +|新增|NA|类名:QuotaPolicy;
方法or属性:metered: boolean;|@ohos.net.policy.d.ts| +|新增|NA|类名:QuotaPolicy;
方法or属性:limitAction: LimitAction;|@ohos.net.policy.d.ts| +|新增|NA|类名:QuotaPolicy;
方法or属性:lastWarningRemind?: number;|@ohos.net.policy.d.ts| +|新增|NA|类名:QuotaPolicy;
方法or属性:lastLimitRemind?: number;|@ohos.net.policy.d.ts| +|新增|NA|类名:NetworkMatchRule;
方法or属性:netType: NetBearType;|@ohos.net.policy.d.ts| +|新增|NA|类名:NetworkMatchRule;
方法or属性:identity: string;|@ohos.net.policy.d.ts| +|新增|NA|类名:NetworkMatchRule;
方法or属性:simId: string;|@ohos.net.policy.d.ts| +|新增|NA|类名:LimitAction;
方法or属性:LIMIT_ACTION_NONE = -1|@ohos.net.policy.d.ts| +|新增|NA|类名:LimitAction;
方法or属性:LIMIT_ACTION_ACCESS_DISABLED = 0|@ohos.net.policy.d.ts| +|新增|NA|类名:LimitAction;
方法or属性:LIMIT_ACTION_ALERT_ONLY = 1|@ohos.net.policy.d.ts| +|新增|NA|类名:NetUidRule;
方法or属性:NET_RULE_NONE = 0|@ohos.net.policy.d.ts| +|新增|NA|类名:NetUidRule;
方法or属性:NET_RULE_ALLOW_METERED_FOREGROUND = 1 \<\< 0|@ohos.net.policy.d.ts| +|新增|NA|类名:NetUidRule;
方法or属性:NET_RULE_ALLOW_METERED = 1 \<\< 1|@ohos.net.policy.d.ts| +|新增|NA|类名:NetUidRule;
方法or属性:NET_RULE_REJECT_METERED = 1 \<\< 2|@ohos.net.policy.d.ts| +|新增|NA|类名:NetUidRule;
方法or属性:NET_RULE_ALLOW_ALL = 1 \<\< 5|@ohos.net.policy.d.ts| +|新增|NA|类名:NetUidRule;
方法or属性:NET_RULE_REJECT_ALL = 1 \<\< 6|@ohos.net.policy.d.ts| +|新增|NA|类名:RemindType;
方法or属性:REMIND_TYPE_WARNING = 1|@ohos.net.policy.d.ts| +|新增|NA|类名:RemindType;
方法or属性:REMIND_TYPE_LIMIT = 2|@ohos.net.policy.d.ts| +|新增|NA|类名:NetUidPolicy;
方法or属性:NET_POLICY_NONE = 0|@ohos.net.policy.d.ts| +|新增|NA|类名:NetUidPolicy;
方法or属性:NET_POLICY_ALLOW_METERED_BACKGROUND = 1 \<\< 0|@ohos.net.policy.d.ts| +|新增|NA|类名:NetUidPolicy;
方法or属性:NET_POLICY_REJECT_METERED_BACKGROUND = 1 \<\< 1|@ohos.net.policy.d.ts| +|新增|NA|类名:socket;
方法or属性:function constructTCPSocketServerInstance(): TCPSocketServer;|@ohos.net.socket.d.ts| +|新增|NA|类名:socket;
方法or属性:function constructTLSSocketServerInstance(): TLSSocketServer;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocket;
方法or属性:getSocketFd(callback: AsyncCallback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocket;
方法or属性:getSocketFd(): Promise\;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketConnection;
方法or属性:clientId: number;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:clientId: number;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketConnection;
方法or属性:send(options: TCPSendOptions, callback: AsyncCallback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketConnection;
方法or属性:close(callback: AsyncCallback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:close(callback: AsyncCallback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketConnection;
方法or属性:getRemoteAddress(callback: AsyncCallback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:getRemoteAddress(callback: AsyncCallback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketConnection;
方法or属性:on(type: 'message', callback: Callback\<{ message: ArrayBuffer, remoteInfo: SocketRemoteInfo }>): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:on(type: 'message', callback: Callback\<{ message: ArrayBuffer, remoteInfo: SocketRemoteInfo }>): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketConnection;
方法or属性:on(type: 'close', callback: Callback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:on(type: 'close', callback: Callback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketConnection;
方法or属性:on(type: 'error', callback: ErrorCallback): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketServer;
方法or属性:on(type: 'error', callback: ErrorCallback): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:on(type: 'error', callback: ErrorCallback): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketServer;
方法or属性:on(type: 'error', callback: ErrorCallback): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketConnection;
方法or属性:off(type: 'message', callback?: Callback\<{ message: ArrayBuffer, remoteInfo: SocketRemoteInfo }>): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:off(type: 'message', callback?: Callback\<{ message: ArrayBuffer, remoteInfo: SocketRemoteInfo }>): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketConnection;
方法or属性:off(type: 'close', callback?: Callback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:off(type: 'close', callback?: Callback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketConnection;
方法or属性:off(type: 'error', callback?: ErrorCallback): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketServer;
方法or属性:off(type: 'error', callback?: ErrorCallback): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:off(type: 'error', callback?: ErrorCallback): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketServer;
方法or属性:off(type: 'error', callback?: ErrorCallback): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketServer;
方法or属性:listen(address: NetAddress, callback: AsyncCallback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketServer;
方法or属性:listen(address: NetAddress): Promise\;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketServer;
方法or属性:getState(callback: AsyncCallback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketServer;
方法or属性:getState(callback: AsyncCallback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketServer;
方法or属性:setExtraOptions(options: TCPExtraOptions, callback: AsyncCallback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketServer;
方法or属性:setExtraOptions(options: TCPExtraOptions, callback: AsyncCallback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketServer;
方法or属性:on(type: 'connect', callback: Callback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TCPSocketServer;
方法or属性:off(type: 'connect', callback?: Callback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:send(data: string, callback: AsyncCallback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:getRemoteCertificate(callback: AsyncCallback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:getCipherSuite(callback: AsyncCallback\>): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketConnection;
方法or属性:getSignatureAlgorithms(callback: AsyncCallback\>): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketServer;
方法or属性:listen(options: TLSConnectOptions, callback: AsyncCallback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketServer;
方法or属性:listen(options: TLSConnectOptions): Promise\;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketServer;
方法or属性:getCertificate(callback: AsyncCallback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketServer;
方法or属性:getProtocol(callback: AsyncCallback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketServer;
方法or属性:on(type: 'connect', callback: Callback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:TLSSocketServer;
方法or属性:off(type: 'connect', callback?: Callback\): void;|@ohos.net.socket.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getIfaceRxBytes(nic: string, callback: AsyncCallback\): void;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getIfaceRxBytes(nic: string): Promise\;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getIfaceTxBytes(nic: string, callback: AsyncCallback\): void;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getIfaceTxBytes(nic: string): Promise\;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getCellularRxBytes(callback: AsyncCallback\): void;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getCellularRxBytes(): Promise\;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getCellularTxBytes(callback: AsyncCallback\): void;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getCellularTxBytes(): Promise\;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getAllRxBytes(callback: AsyncCallback\): void;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getAllRxBytes(): Promise\;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getAllTxBytes(callback: AsyncCallback\): void;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getAllTxBytes(): Promise\;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getUidRxBytes(uid: number, callback: AsyncCallback\): void;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getUidRxBytes(uid: number): Promise\;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getUidTxBytes(uid: number, callback: AsyncCallback\): void;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getUidTxBytes(uid: number): Promise\;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function on(type: 'netStatsChange', callback: Callback\<{ iface: string, uid?: number }>): void;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function off(type: 'netStatsChange', callback?: Callback\<{ iface: string, uid?: number }>): void;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getTrafficStatsByIface(ifaceInfo: IfaceInfo, callback: AsyncCallback\): void;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getTrafficStatsByIface(ifaceInfo: IfaceInfo): Promise\;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getTrafficStatsByUid(uidInfo: UidInfo, callback: AsyncCallback\): void;|@ohos.net.statistics.d.ts| +|新增|NA|类名:statistics;
方法or属性:function getTrafficStatsByUid(uidInfo: UidInfo): Promise\;|@ohos.net.statistics.d.ts| +|新增|NA|类名:IfaceInfo;
方法or属性:iface: string;|@ohos.net.statistics.d.ts| +|新增|NA|类名:IfaceInfo;
方法or属性:startTime: number;|@ohos.net.statistics.d.ts| +|新增|NA|类名:IfaceInfo;
方法or属性:endTime: number;|@ohos.net.statistics.d.ts| +|新增|NA|类名:UidInfo;
方法or属性:ifaceInfo: IfaceInfo;|@ohos.net.statistics.d.ts| +|新增|NA|类名:UidInfo;
方法or属性:uid: number;|@ohos.net.statistics.d.ts| +|新增|NA|类名:NetStatsInfo;
方法or属性:rxBytes: number;|@ohos.net.statistics.d.ts| +|新增|NA|类名:NetStatsInfo;
方法or属性:txBytes: number;|@ohos.net.statistics.d.ts| +|新增|NA|类名:NetStatsInfo;
方法or属性:rxPackets: number;|@ohos.net.statistics.d.ts| +|新增|NA|类名:NetStatsInfo;
方法or属性:txPackets: number;|@ohos.net.statistics.d.ts| +|新增|NA|类名:vpn;
方法or属性:export type LinkAddress = connection.LinkAddress;|@ohos.net.vpn.d.ts| +|新增|NA|类名:vpn;
方法or属性:export type RouteInfo = connection.RouteInfo;|@ohos.net.vpn.d.ts| +|新增|NA|类名:vpn;
方法or属性:function createVpnConnection(context: AbilityContext): VpnConnection;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConnection;
方法or属性:setUp(config: VpnConfig, callback: AsyncCallback\): void;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConnection;
方法or属性:setUp(config: VpnConfig): Promise\;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConnection;
方法or属性:protect(socketFd: number, callback: AsyncCallback\): void;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConnection;
方法or属性:protect(socketFd: number): Promise\;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConnection;
方法or属性:destroy(callback: AsyncCallback\): void;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConnection;
方法or属性:destroy(): Promise\;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConfig;
方法or属性:addresses: Array\;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConfig;
方法or属性:routes?: Array\;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConfig;
方法or属性:dnsAddresses?: Array\;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConfig;
方法or属性:searchDomains?: Array\;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConfig;
方法or属性:mtu?: number;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConfig;
方法or属性:isIPv4Accepted?: boolean;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConfig;
方法or属性:isIPv6Accepted?: boolean;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConfig;
方法or属性:isLegacy?: boolean;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConfig;
方法or属性:isBlocking?: boolean;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConfig;
方法or属性:trustedApplications?: Array\;|@ohos.net.vpn.d.ts| +|新增|NA|类名:VpnConfig;
方法or属性:blockedApplications?: Array\;|@ohos.net.vpn.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function getScanResults(): Promise\>;|@ohos.wifiManager.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function getScanResults(callback: AsyncCallback\>): void;|@ohos.wifiManager.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function getScanResultsSync(): Array\;|@ohos.wifiManager.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function setScanAlwaysAllowed(isScanAlwaysAllowed: boolean): void;|@ohos.wifiManager.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function getScanAlwaysAllowed(): boolean;|@ohos.wifiManager.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function updateNetwork(config: WifiDeviceConfig): number;|@ohos.wifiManager.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function disableNetwork(netId: number): void;|@ohos.wifiManager.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function removeAllNetwork(): void;|@ohos.wifiManager.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function removeDevice(id: number): void;|@ohos.wifiManager.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function getDisconnectedReason(): DisconnectedReason;|@ohos.wifiManager.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function getStations(): Array\;|@ohos.wifiManager.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function createGroup(config: WifiP2PConfig): void;|@ohos.wifiManager.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function removeGroup(): void;|@ohos.wifiManager.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function startDiscoverDevices(): void;|@ohos.wifiManager.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function stopDiscoverDevices(): void;|@ohos.wifiManager.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function deletePersistentGroup(netId: number): void;|@ohos.wifiManager.d.ts| +|新增|NA|类名:wifiManager;
方法or属性:function setDeviceName(devName: string): void;|@ohos.wifiManager.d.ts| +|新增|NA|类名:DisconnectedReason;
方法or属性:DISC_REASON_DEFAULT = 0|@ohos.wifiManager.d.ts| +|新增|NA|类名:DisconnectedReason;
方法or属性:DISC_REASON_WRONG_PWD = 1|@ohos.wifiManager.d.ts| +|新增|NA|类名:DisconnectedReason;
方法or属性:DISC_REASON_CONNECTION_FULL = 2|@ohos.wifiManager.d.ts| +|新增|NA|类名:ProxyMethod;
方法or属性:METHOD_NONE = 0|@ohos.wifiManager.d.ts| +|新增|NA|类名:ProxyMethod;
方法or属性:METHOD_AUTO = 1|@ohos.wifiManager.d.ts| +|新增|NA|类名:ProxyMethod;
方法or属性:METHOD_MANUAL = 2|@ohos.wifiManager.d.ts| +|新增|NA|类名:WifiProxyConfig;
方法or属性:proxyMethod?: ProxyMethod;|@ohos.wifiManager.d.ts| +|新增|NA|类名:WifiProxyConfig;
方法or属性:pacWebAddress?: string;|@ohos.wifiManager.d.ts| +|新增|NA|类名:WifiProxyConfig;
方法or属性:serverHostName?: string;|@ohos.wifiManager.d.ts| +|新增|NA|类名:WifiProxyConfig;
方法or属性:serverPort?: number;|@ohos.wifiManager.d.ts| +|新增|NA|类名:WifiProxyConfig;
方法or属性:exclusionObjects?: string;|@ohos.wifiManager.d.ts| +|新增|NA|类名:WifiDeviceConfig;
方法or属性:proxyConfig?: WifiProxyConfig;|@ohos.wifiManager.d.ts| +|新增|NA|类名:HotspotConfig;
方法or属性:ipAddress?: string;|@ohos.wifiManager.d.ts| +|新增(错误码)|类名:GattClientDevice;
方法or属性:getDeviceName(): Promise\;
旧版本信息:|类名:GattClientDevice;
方法or属性:getDeviceName(): Promise\;
新版本信息:201,401,801,2900001,2900099|@ohos.bluetoothManager.d.ts| +|新增(错误码)|类名:GattClientDevice;
方法or属性:getServices(): Promise\>;
旧版本信息:|类名:GattClientDevice;
方法or属性:getServices(): Promise\>;
新版本信息:201,401,801,2900001,2900099|@ohos.bluetoothManager.d.ts| +|新增(错误码)|类名:GattClientDevice;
方法or属性:readCharacteristicValue(characteristic: BLECharacteristic): Promise\;
旧版本信息:|类名:GattClientDevice;
方法or属性:readCharacteristicValue(characteristic: BLECharacteristic): Promise\;
新版本信息:201,401,801,2900001,2901000,2900099|@ohos.bluetoothManager.d.ts| +|新增(错误码)|类名:GattClientDevice;
方法or属性:readDescriptorValue(descriptor: BLEDescriptor): Promise\;
旧版本信息:|类名:GattClientDevice;
方法or属性:readDescriptorValue(descriptor: BLEDescriptor): Promise\;
新版本信息:201,401,801,2900001,2901000,2900099|@ohos.bluetoothManager.d.ts| +|新增(错误码)|类名:GattClientDevice;
方法or属性:getRssiValue(): Promise\;
旧版本信息:|类名:GattClientDevice;
方法or属性:getRssiValue(): Promise\;
新版本信息:201,401,801,2900099|@ohos.bluetoothManager.d.ts| +|新增(错误码)|类名:connection;
方法or属性:function getDefaultNet(): Promise\;
旧版本信息:|类名:connection;
方法or属性:function getDefaultNet(): Promise\;
新版本信息:201,401,2100002,2100003|@ohos.net.connection.d.ts| +|新增(错误码)|类名:connection;
方法or属性:function getAllNets(): Promise\>;
旧版本信息:|类名:connection;
方法or属性:function getAllNets(): Promise\>;
新版本信息:201,401,2100002,2100003|@ohos.net.connection.d.ts| +|新增(错误码)|类名:connection;
方法or属性:function getConnectionProperties(netHandle: NetHandle): Promise\;
旧版本信息:|类名:connection;
方法or属性:function getConnectionProperties(netHandle: NetHandle): Promise\;
新版本信息:201,401,2100001,2100002,2100003|@ohos.net.connection.d.ts| +|新增(错误码)|类名:connection;
方法or属性:function getNetCapabilities(netHandle: NetHandle): Promise\;
旧版本信息:|类名:connection;
方法or属性:function getNetCapabilities(netHandle: NetHandle): Promise\;
新版本信息:201,401,2100001,2100002,2100003|@ohos.net.connection.d.ts| +|新增(错误码)|类名:connection;
方法or属性:function isDefaultNetMetered(): Promise\;
旧版本信息:|类名:connection;
方法or属性:function isDefaultNetMetered(): Promise\;
新版本信息:201,401,2100002,2100003|@ohos.net.connection.d.ts| +|新增(错误码)|类名:connection;
方法or属性:function hasDefaultNet(): Promise\;
旧版本信息:|类名:connection;
方法or属性:function hasDefaultNet(): Promise\;
新版本信息:201,401,2100002,2100003|@ohos.net.connection.d.ts| +|新增(错误码)|类名:connection;
方法or属性:function enableAirplaneMode(): Promise\;
旧版本信息:|类名:connection;
方法or属性:function enableAirplaneMode(): Promise\;
新版本信息:201,202,401,2100002,2100003|@ohos.net.connection.d.ts| +|新增(错误码)|类名:connection;
方法or属性:function disableAirplaneMode(): Promise\;
旧版本信息:|类名:connection;
方法or属性:function disableAirplaneMode(): Promise\;
新版本信息:201,202,401,2100002,2100003|@ohos.net.connection.d.ts| +|新增(错误码)|类名:connection;
方法or属性:function reportNetConnected(netHandle: NetHandle): Promise\;
旧版本信息:|类名:connection;
方法or属性:function reportNetConnected(netHandle: NetHandle): Promise\;
新版本信息:201,401,2100001,2100002,2100003|@ohos.net.connection.d.ts| +|新增(错误码)|类名:connection;
方法or属性:function reportNetDisconnected(netHandle: NetHandle): Promise\;
旧版本信息:|类名:connection;
方法or属性:function reportNetDisconnected(netHandle: NetHandle): Promise\;
新版本信息:201,401,2100001,2100002,2100003|@ohos.net.connection.d.ts| +|新增(错误码)|类名:connection;
方法or属性:function getAddressesByName(host: string): Promise\>;
旧版本信息:|类名:connection;
方法or属性:function getAddressesByName(host: string): Promise\>;
新版本信息:201,401,2100001,2100002,2100003|@ohos.net.connection.d.ts| +|新增(错误码)|类名:NetHandle;
方法or属性:bindSocket(socketParam: TCPSocket \| UDPSocket): Promise\;
旧版本信息:|类名:NetHandle;
方法or属性:bindSocket(socketParam: TCPSocket \| UDPSocket): Promise\;
新版本信息:401,2100001,2100002,2100003|@ohos.net.connection.d.ts| +|新增(错误码)|类名:NetHandle;
方法or属性:getAddressesByName(host: string): Promise\>;
旧版本信息:|类名:NetHandle;
方法or属性:getAddressesByName(host: string): Promise\>;
新版本信息:201,401,2100001,2100002,2100003|@ohos.net.connection.d.ts| +|新增(错误码)|类名:NetHandle;
方法or属性:getAddressByName(host: string): Promise\;
旧版本信息:|类名:NetHandle;
方法or属性:getAddressByName(host: string): Promise\;
新版本信息:201,401,2100001,2100002,2100003|@ohos.net.connection.d.ts| +|新增(错误码)|类名:ethernet;
方法or属性:function getIfaceConfig(iface: string): Promise\;
旧版本信息:|类名:ethernet;
方法or属性:function getIfaceConfig(iface: string): Promise\;
新版本信息:201,202,401,2200001,2200002,2200003,2201005|@ohos.net.ethernet.d.ts| +|新增(错误码)|类名:ethernet;
方法or属性:function setIfaceConfig(iface: string, ic: InterfaceConfiguration): Promise\;
旧版本信息:|类名:ethernet;
方法or属性:function setIfaceConfig(iface: string, ic: InterfaceConfiguration): Promise\;
新版本信息:201,202,401,2200001,2200002,2200003,2201004,2201005,2201006,2201007|@ohos.net.ethernet.d.ts| +|新增(错误码)|类名:ethernet;
方法or属性:function isIfaceActive(iface: string): Promise\;
旧版本信息:|类名:ethernet;
方法or属性:function isIfaceActive(iface: string): Promise\;
新版本信息:201,202,401,2200001,2200002,2200003,2201005|@ohos.net.ethernet.d.ts| +|新增(错误码)|类名:ethernet;
方法or属性:function getAllActiveIfaces(): Promise\>;
旧版本信息:|类名:ethernet;
方法or属性:function getAllActiveIfaces(): Promise\>;
新版本信息:201,202,2200002,2200003|@ohos.net.ethernet.d.ts| +|新增(错误码)|类名:HttpRequest;
方法or属性:request(url: string, options: HttpRequestOptions, callback: AsyncCallback\): void;
旧版本信息:|类名:HttpRequest;
方法or属性:request(url: string, options: HttpRequestOptions, callback: AsyncCallback\): void;
新版本信息:401,201,2300001,2300003,2300005,2300006,2300007,2300008,2300009,2300016,2300018,2300023,2300025,2300026,2300027,2300028,2300047,2300052,2300055,2300056,2300058,2300059,2300060,2300061,2300063,2300070,2300073,2300077,2300078,2300094,2300999|@ohos.net.http.d.ts| +|新增(错误码)|类名:HttpRequest;
方法or属性:request(url: string, options?: HttpRequestOptions): Promise\;
旧版本信息:|类名:HttpRequest;
方法or属性:request(url: string, options?: HttpRequestOptions): Promise\;
新版本信息:401,201,2300001,2300003,2300005,2300006,2300007,2300008,2300009,2300016,2300018,2300023,2300025,2300026,2300027,2300028,2300047,2300052,2300055,2300056,2300058,2300059,2300060,2300061,2300063,2300070,2300073,2300077,2300078,2300094,2300999|@ohos.net.http.d.ts| +|新增(错误码)|类名:sharing;
方法or属性:function isSharingSupported(): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function isSharingSupported(): Promise\;
新版本信息:201,202,2200002,2200003,2202011|@ohos.net.sharing.d.ts| +|新增(错误码)|类名:sharing;
方法or属性:function isSharing(): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function isSharing(): Promise\;
新版本信息:201,202,2200002,2200003,2202011|@ohos.net.sharing.d.ts| +|新增(错误码)|类名:sharing;
方法or属性:function startSharing(type: SharingIfaceType): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function startSharing(type: SharingIfaceType): Promise\;
新版本信息:201,202,401,2200001,2200002,2200003,2202004,2202005,2202006,2202009,2202011|@ohos.net.sharing.d.ts| +|新增(错误码)|类名:sharing;
方法or属性:function stopSharing(type: SharingIfaceType): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function stopSharing(type: SharingIfaceType): Promise\;
新版本信息:201,202,401,2200001,2200002,2200003,2202004,2202005,2202006,2202011|@ohos.net.sharing.d.ts| +|新增(错误码)|类名:sharing;
方法or属性:function getStatsRxBytes(): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function getStatsRxBytes(): Promise\;
新版本信息:201,202,401,2200002,2200003|@ohos.net.sharing.d.ts| +|新增(错误码)|类名:sharing;
方法or属性:function getStatsTxBytes(): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function getStatsTxBytes(): Promise\;
新版本信息:201,202,401,2200002,2200003|@ohos.net.sharing.d.ts| +|新增(错误码)|类名:sharing;
方法or属性:function getStatsTotalBytes(): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function getStatsTotalBytes(): Promise\;
新版本信息:201,202,401,2200002,2200003|@ohos.net.sharing.d.ts| +|新增(错误码)|类名:sharing;
方法or属性:function getSharingIfaces(state: SharingIfaceState): Promise\>;
旧版本信息:|类名:sharing;
方法or属性:function getSharingIfaces(state: SharingIfaceState): Promise\>;
新版本信息:201,202,401,2200001,2200002,2200003|@ohos.net.sharing.d.ts| +|新增(错误码)|类名:sharing;
方法or属性:function getSharingState(type: SharingIfaceType): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function getSharingState(type: SharingIfaceType): Promise\;
新版本信息:201,202,401,2200001,2200002,2200003|@ohos.net.sharing.d.ts| +|新增(错误码)|类名:sharing;
方法or属性:function getSharableRegexes(type: SharingIfaceType): Promise\>;
旧版本信息:|类名:sharing;
方法or属性:function getSharableRegexes(type: SharingIfaceType): Promise\>;
新版本信息:201,202,401,2200001,2200002,2200003|@ohos.net.sharing.d.ts| +|新增(错误码)|类名:UDPSocket;
方法or属性:bind(address: NetAddress): Promise\;
旧版本信息:|类名:UDPSocket;
方法or属性:bind(address: NetAddress): Promise\;
新版本信息:401,201|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TCPSocket;
方法or属性:bind(address: NetAddress): Promise\;
旧版本信息:|类名:TCPSocket;
方法or属性:bind(address: NetAddress): Promise\;
新版本信息:401,201|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TLSSocket;
方法or属性:bind(address: NetAddress): Promise\;
旧版本信息:|类名:TLSSocket;
方法or属性:bind(address: NetAddress): Promise\;
新版本信息:401,201,2303198,2300002|@ohos.net.socket.d.ts| +|新增(错误码)|类名:UDPSocket;
方法or属性:send(options: UDPSendOptions): Promise\;
旧版本信息:|类名:UDPSocket;
方法or属性:send(options: UDPSendOptions): Promise\;
新版本信息:401,201|@ohos.net.socket.d.ts| +|新增(错误码)|类名:UDPSocket;
方法or属性:close(): Promise\;
旧版本信息:|类名:UDPSocket;
方法or属性:close(): Promise\;
新版本信息:201|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TCPSocket;
方法or属性:close(): Promise\;
旧版本信息:|类名:TCPSocket;
方法or属性:close(): Promise\;
新版本信息:201|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TLSSocket;
方法or属性:close(): Promise\;
旧版本信息:|类名:TLSSocket;
方法or属性:close(): Promise\;
新版本信息:401,2303501,2303505,2303506,2300002|@ohos.net.socket.d.ts| +|新增(错误码)|类名:UDPSocket;
方法or属性:getState(): Promise\;
旧版本信息:|类名:UDPSocket;
方法or属性:getState(): Promise\;
新版本信息:201|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TCPSocket;
方法or属性:getState(): Promise\;
旧版本信息:|类名:TCPSocket;
方法or属性:getState(): Promise\;
新版本信息:201|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TLSSocket;
方法or属性:getState(): Promise\;
旧版本信息:|类名:TLSSocket;
方法or属性:getState(): Promise\;
新版本信息:2303188,2300002|@ohos.net.socket.d.ts| +|新增(错误码)|类名:UDPSocket;
方法or属性:setExtraOptions(options: UDPExtraOptions): Promise\;
旧版本信息:|类名:UDPSocket;
方法or属性:setExtraOptions(options: UDPExtraOptions): Promise\;
新版本信息:401,201|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TCPSocket;
方法or属性:connect(options: TCPConnectOptions): Promise\;
旧版本信息:|类名:TCPSocket;
方法or属性:connect(options: TCPConnectOptions): Promise\;
新版本信息:401,201|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TCPSocket;
方法or属性:send(options: TCPSendOptions): Promise\;
旧版本信息:|类名:TCPSocket;
方法or属性:send(options: TCPSendOptions): Promise\;
新版本信息:401,201|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TCPSocket;
方法or属性:getRemoteAddress(): Promise\;
旧版本信息:|类名:TCPSocket;
方法or属性:getRemoteAddress(): Promise\;
新版本信息:201|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TLSSocket;
方法or属性:getRemoteAddress(): Promise\;
旧版本信息:|类名:TLSSocket;
方法or属性:getRemoteAddress(): Promise\;
新版本信息:2303188,2300002|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TCPSocket;
方法or属性:setExtraOptions(options: TCPExtraOptions): Promise\;
旧版本信息:|类名:TCPSocket;
方法or属性:setExtraOptions(options: TCPExtraOptions): Promise\;
新版本信息:401,201|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TLSSocket;
方法or属性:setExtraOptions(options: TCPExtraOptions): Promise\;
旧版本信息:|类名:TLSSocket;
方法or属性:setExtraOptions(options: TCPExtraOptions): Promise\;
新版本信息:401,2303188,2300002|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TLSSocket;
方法or属性:getCertificate(): Promise\;
旧版本信息:|类名:TLSSocket;
方法or属性:getCertificate(): Promise\;
新版本信息:2303501,2303504,2300002|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TLSSocket;
方法or属性:getRemoteCertificate(): Promise\;
旧版本信息:|类名:TLSSocket;
方法or属性:getRemoteCertificate(): Promise\;
新版本信息:2303501,2300002|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TLSSocket;
方法or属性:getProtocol(): Promise\;
旧版本信息:|类名:TLSSocket;
方法or属性:getProtocol(): Promise\;
新版本信息:2303501,2303505,2300002|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TLSSocket;
方法or属性:getCipherSuite(): Promise\>;
旧版本信息:|类名:TLSSocket;
方法or属性:getCipherSuite(): Promise\>;
新版本信息:2303501,2303502,2303505,2300002|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TLSSocket;
方法or属性:getSignatureAlgorithms(): Promise\>;
旧版本信息:|类名:TLSSocket;
方法or属性:getSignatureAlgorithms(): Promise\>;
新版本信息:2303501,2300002|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TLSSocket;
方法or属性:connect(options: TLSConnectOptions): Promise\;
旧版本信息:|类名:TLSSocket;
方法or属性:connect(options: TLSConnectOptions): Promise\;
新版本信息:401,2303104,2303109,2303111,2303188,2303191,2303198,2303199,2303210,2303501,2303502,2303503,2303505,2303506,2300002|@ohos.net.socket.d.ts| +|新增(错误码)|类名:TLSSocket;
方法or属性:send(data: string): Promise\;
旧版本信息:|类名:TLSSocket;
方法or属性:send(data: string): Promise\;
新版本信息:401,2303501,2303503,2303505,2303506,2300002|@ohos.net.socket.d.ts| +|新增(错误码)|类名:WebSocket;
方法or属性:connect(url: string, options: WebSocketRequestOptions, callback: AsyncCallback\): void;
旧版本信息:|类名:WebSocket;
方法or属性:connect(url: string, options: WebSocketRequestOptions, callback: AsyncCallback\): void;
新版本信息:401,201|@ohos.net.webSocket.d.ts| +|新增(错误码)|类名:WebSocket;
方法or属性:connect(url: string, options?: WebSocketRequestOptions): Promise\;
旧版本信息:|类名:WebSocket;
方法or属性:connect(url: string, options?: WebSocketRequestOptions): Promise\;
新版本信息:401,201|@ohos.net.webSocket.d.ts| +|新增(错误码)|类名:WebSocket;
方法or属性:send(data: string \| ArrayBuffer): Promise\;
旧版本信息:|类名:WebSocket;
方法or属性:send(data: string \| ArrayBuffer): Promise\;
新版本信息:401,201|@ohos.net.webSocket.d.ts| +|新增(错误码)|类名:WebSocket;
方法or属性:close(options: WebSocketCloseOptions, callback: AsyncCallback\): void;
旧版本信息:|类名:WebSocket;
方法or属性:close(options: WebSocketCloseOptions, callback: AsyncCallback\): void;
新版本信息:401,201|@ohos.net.webSocket.d.ts| +|新增(错误码)|类名:WebSocket;
方法or属性:close(options?: WebSocketCloseOptions): Promise\;
旧版本信息:|类名:WebSocket;
方法or属性:close(options?: WebSocketCloseOptions): Promise\;
新版本信息:401,201|@ohos.net.webSocket.d.ts| +|新增(错误码)|类名:wifiManager;
方法or属性:function addDeviceConfig(config: WifiDeviceConfig, callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function addDeviceConfig(config: WifiDeviceConfig, callback: AsyncCallback\): void;
新版本信息:201,202,401,801,2501000|@ohos.wifiManager.d.ts| +|新增(错误码)|类名:wifiManager;
方法or属性:function addCandidateConfig(config: WifiDeviceConfig, callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function addCandidateConfig(config: WifiDeviceConfig, callback: AsyncCallback\): void;
新版本信息:201,401,801,2501000|@ohos.wifiManager.d.ts| +|新增(错误码)|类名:wifiManager;
方法or属性:function removeCandidateConfig(networkId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function removeCandidateConfig(networkId: number, callback: AsyncCallback\): void;
新版本信息:201,401,801,2501000|@ohos.wifiManager.d.ts| +|新增(错误码)|类名:wifiManager;
方法or属性:function getLinkedInfo(callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function getLinkedInfo(callback: AsyncCallback\): void;
新版本信息:201,202,801,2501000,2501001|@ohos.wifiManager.d.ts| +|新增(错误码)|类名:wifiManager;
方法or属性:function getP2pLinkedInfo(callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function getP2pLinkedInfo(callback: AsyncCallback\): void;
新版本信息:201,801,2801000|@ohos.wifiManager.d.ts| +|新增(错误码)|类名:wifiManager;
方法or属性:function getCurrentP2pGroup(callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function getCurrentP2pGroup(callback: AsyncCallback\): void;
新版本信息:201,801,2801000|@ohos.wifiManager.d.ts| +|新增(错误码)|类名:wifiManager;
方法or属性:function getP2pPeerDevices(callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function getP2pPeerDevices(callback: AsyncCallback\): void;
新版本信息:201,801,2801000|@ohos.wifiManager.d.ts| +|新增(错误码)|类名:wifiManager;
方法or属性:function getP2pLocalDevice(callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function getP2pLocalDevice(callback: AsyncCallback\): void;
新版本信息:201,801,2801000|@ohos.wifiManager.d.ts| +|新增(错误码)|类名:wifiManager;
方法or属性:function getP2pGroups(callback: AsyncCallback\>): void;
旧版本信息:|类名:wifiManager;
方法or属性:function getP2pGroups(callback: AsyncCallback\>): void;
新版本信息:201,202,801,2801000|@ohos.wifiManager.d.ts| +|错误码有变化|类名:connection;
方法or属性:function getDefaultNet(callback: AsyncCallback\): void;
旧版本信息:201,2100002,2100003|类名:connection;
方法or属性:function getDefaultNet(callback: AsyncCallback\): void;
新版本信息:201,401,2100002,2100003|@ohos.net.connection.d.ts| +|错误码有变化|类名:connection;
方法or属性:function getDefaultNetSync(): NetHandle;
旧版本信息:201,2100002,2100003|类名:connection;
方法or属性:function getDefaultNetSync(): NetHandle;
新版本信息:201,401,2100002,2100003|@ohos.net.connection.d.ts| +|错误码有变化|类名:connection;
方法or属性:function getAllNets(callback: AsyncCallback\>): void;
旧版本信息:201,2100002,2100003|类名:connection;
方法or属性:function getAllNets(callback: AsyncCallback\>): void;
新版本信息:201,401,2100002,2100003|@ohos.net.connection.d.ts| +|错误码有变化|类名:connection;
方法or属性:function isDefaultNetMetered(callback: AsyncCallback\): void;
旧版本信息:201,2100002,2100003|类名:connection;
方法or属性:function isDefaultNetMetered(callback: AsyncCallback\): void;
新版本信息:201,401,2100002,2100003|@ohos.net.connection.d.ts| +|错误码有变化|类名:connection;
方法or属性:function hasDefaultNet(callback: AsyncCallback\): void;
旧版本信息:201,2100002,2100003|类名:connection;
方法or属性:function hasDefaultNet(callback: AsyncCallback\): void;
新版本信息:201,401,2100002,2100003|@ohos.net.connection.d.ts| +|错误码有变化|类名:connection;
方法or属性:function enableAirplaneMode(callback: AsyncCallback\): void;
旧版本信息:201,2100002,2100003|类名:connection;
方法or属性:function enableAirplaneMode(callback: AsyncCallback\): void;
新版本信息:201,202,401,2100002,2100003|@ohos.net.connection.d.ts| +|错误码有变化|类名:connection;
方法or属性:function disableAirplaneMode(callback: AsyncCallback\): void;
旧版本信息:201,2100002,2100003|类名:connection;
方法or属性:function disableAirplaneMode(callback: AsyncCallback\): void;
新版本信息:201,202,401,2100002,2100003|@ohos.net.connection.d.ts| +|错误码有变化|类名:connection;
方法or属性:function getAppNet(callback: AsyncCallback\): void;
旧版本信息:2100002,2100003|类名:connection;
方法or属性:function getAppNet(callback: AsyncCallback\): void;
新版本信息:401,2100002,2100003|@ohos.net.connection.d.ts| +|错误码有变化|类名:connection;
方法or属性:function getAppNet(): Promise\;
旧版本信息:2100002,2100003|类名:connection;
方法or属性:function getAppNet(): Promise\;
新版本信息:401,2100002,2100003|@ohos.net.connection.d.ts| +|错误码有变化|类名:connection;
方法or属性:function getGlobalHttpProxy(callback: AsyncCallback\): void;
旧版本信息:2100002,2100003|类名:connection;
方法or属性:function getGlobalHttpProxy(callback: AsyncCallback\): void;
新版本信息:401,202,2100002,2100003|@ohos.net.connection.d.ts| +|错误码有变化|类名:connection;
方法or属性:function getGlobalHttpProxy(): Promise\;
旧版本信息:2100002,2100003|类名:connection;
方法or属性:function getGlobalHttpProxy(): Promise\;
新版本信息:401,202,2100002,2100003|@ohos.net.connection.d.ts| +|错误码有变化|类名:connection;
方法or属性:function setGlobalHttpProxy(httpProxy: HttpProxy, callback: AsyncCallback\): void;
旧版本信息:201,401,2100001,2100002,2100003|类名:connection;
方法or属性:function setGlobalHttpProxy(httpProxy: HttpProxy, callback: AsyncCallback\): void;
新版本信息:201,401,202,2100001,2100002,2100003|@ohos.net.connection.d.ts| +|错误码有变化|类名:connection;
方法or属性:function setGlobalHttpProxy(httpProxy: HttpProxy): Promise\;
旧版本信息:201,401,2100001,2100002,2100003|类名:connection;
方法or属性:function setGlobalHttpProxy(httpProxy: HttpProxy): Promise\;
新版本信息:201,401,202,2100001,2100002,2100003|@ohos.net.connection.d.ts| +|错误码有变化|类名:NetConnection;
方法or属性:register(callback: AsyncCallback\): void;
旧版本信息:201,2100002,2100003,2101008,2101022|类名:NetConnection;
方法or属性:register(callback: AsyncCallback\): void;
新版本信息:201,401,2100002,2100003,2101008,2101022|@ohos.net.connection.d.ts| +|错误码有变化|类名:NetConnection;
方法or属性:unregister(callback: AsyncCallback\): void;
旧版本信息:2100002,2100003,2101007|类名:NetConnection;
方法or属性:unregister(callback: AsyncCallback\): void;
新版本信息:201,401,2100002,2100003,2101007|@ohos.net.connection.d.ts| +|错误码有变化|类名:ethernet;
方法or属性:function getIfaceConfig(iface: string, callback: AsyncCallback\): void;
旧版本信息:201,401,2200001,2200002,2200003,2201005|类名:ethernet;
方法or属性:function getIfaceConfig(iface: string, callback: AsyncCallback\): void;
新版本信息:201,202,401,2200001,2200002,2200003,2201005|@ohos.net.ethernet.d.ts| +|错误码有变化|类名:ethernet;
方法or属性:function setIfaceConfig(iface: string, ic: InterfaceConfiguration, callback: AsyncCallback\): void;
旧版本信息:201,401,2200001,2200002,2200003,2201004,2201005,2201006,2201007|类名:ethernet;
方法or属性:function setIfaceConfig(iface: string, ic: InterfaceConfiguration, callback: AsyncCallback\): void;
新版本信息:201,202,401,2200001,2200002,2200003,2201004,2201005,2201006,2201007|@ohos.net.ethernet.d.ts| +|错误码有变化|类名:ethernet;
方法or属性:function isIfaceActive(iface: string, callback: AsyncCallback\): void;
旧版本信息:201,401,2200001,2200002,2200003,2201005|类名:ethernet;
方法or属性:function isIfaceActive(iface: string, callback: AsyncCallback\): void;
新版本信息:201,202,401,2200001,2200002,2200003,2201005|@ohos.net.ethernet.d.ts| +|错误码有变化|类名:ethernet;
方法or属性:function getAllActiveIfaces(callback: AsyncCallback\>): void;
旧版本信息:201,2200002,2200003|类名:ethernet;
方法or属性:function getAllActiveIfaces(callback: AsyncCallback\>): void;
新版本信息:201,202,2200002,2200003|@ohos.net.ethernet.d.ts| +|错误码有变化|类名:sharing;
方法or属性:function isSharingSupported(callback: AsyncCallback\): void;
旧版本信息:201,2200002,2200003,2202011|类名:sharing;
方法or属性:function isSharingSupported(callback: AsyncCallback\): void;
新版本信息:201,202,2200002,2200003,2202011|@ohos.net.sharing.d.ts| +|错误码有变化|类名:sharing;
方法or属性:function isSharing(callback: AsyncCallback\): void;
旧版本信息:201,2200002,2200003,2202011|类名:sharing;
方法or属性:function isSharing(callback: AsyncCallback\): void;
新版本信息:201,202,2200002,2200003,2202011|@ohos.net.sharing.d.ts| +|错误码有变化|类名:sharing;
方法or属性:function startSharing(type: SharingIfaceType, callback: AsyncCallback\): void;
旧版本信息:201,401,2200001,2200002,2200003,2202004,2202005,2202006,2202009,2202011|类名:sharing;
方法or属性:function startSharing(type: SharingIfaceType, callback: AsyncCallback\): void;
新版本信息:201,202,401,2200001,2200002,2200003,2202004,2202005,2202006,2202009,2202011|@ohos.net.sharing.d.ts| +|错误码有变化|类名:sharing;
方法or属性:function stopSharing(type: SharingIfaceType, callback: AsyncCallback\): void;
旧版本信息:201,401,2200001,2200002,2200003,2202004,2202005,2202006,2202011|类名:sharing;
方法or属性:function stopSharing(type: SharingIfaceType, callback: AsyncCallback\): void;
新版本信息:201,202,401,2200001,2200002,2200003,2202004,2202005,2202006,2202011|@ohos.net.sharing.d.ts| +|错误码有变化|类名:sharing;
方法or属性:function getStatsRxBytes(callback: AsyncCallback\): void;
旧版本信息:201,2200002,2200003|类名:sharing;
方法or属性:function getStatsRxBytes(callback: AsyncCallback\): void;
新版本信息:201,202,401,2200002,2200003|@ohos.net.sharing.d.ts| +|错误码有变化|类名:sharing;
方法or属性:function getStatsTxBytes(callback: AsyncCallback\): void;
旧版本信息:201,2200002,2200003|类名:sharing;
方法or属性:function getStatsTxBytes(callback: AsyncCallback\): void;
新版本信息:201,202,401,2200002,2200003|@ohos.net.sharing.d.ts| +|错误码有变化|类名:sharing;
方法or属性:function getStatsTotalBytes(callback: AsyncCallback\): void;
旧版本信息:201,2200002,2200003|类名:sharing;
方法or属性:function getStatsTotalBytes(callback: AsyncCallback\): void;
新版本信息:201,202,401,2200002,2200003|@ohos.net.sharing.d.ts| +|错误码有变化|类名:sharing;
方法or属性:function getSharingIfaces(state: SharingIfaceState, callback: AsyncCallback\>): void;
旧版本信息:201,401,2200001,2200002,2200003|类名:sharing;
方法or属性:function getSharingIfaces(state: SharingIfaceState, callback: AsyncCallback\>): void;
新版本信息:201,202,401,2200001,2200002,2200003|@ohos.net.sharing.d.ts| +|错误码有变化|类名:sharing;
方法or属性:function getSharingState(type: SharingIfaceType, callback: AsyncCallback\): void;
旧版本信息:201,401,2200001,2200002,2200003|类名:sharing;
方法or属性:function getSharingState(type: SharingIfaceType, callback: AsyncCallback\): void;
新版本信息:201,202,401,2200001,2200002,2200003|@ohos.net.sharing.d.ts| +|错误码有变化|类名:sharing;
方法or属性:function getSharableRegexes(type: SharingIfaceType, callback: AsyncCallback\>): void;
旧版本信息:201,401,2200001,2200002,2200003|类名:sharing;
方法or属性:function getSharableRegexes(type: SharingIfaceType, callback: AsyncCallback\>): void;
新版本信息:201,202,401,2200001,2200002,2200003|@ohos.net.sharing.d.ts| +|错误码有变化|类名:sharing;
方法or属性:function on(type: 'sharingStateChange', callback: Callback\): void;
旧版本信息:201,401|类名:sharing;
方法or属性:function on(type: 'sharingStateChange', callback: Callback\): void;
新版本信息:201,202,401|@ohos.net.sharing.d.ts| +|错误码有变化|类名:sharing;
方法or属性:function on(type: 'interfaceSharingStateChange', callback: Callback\<{ type: SharingIfaceType, iface: string, state: SharingIfaceState }>): void;
旧版本信息:201,401|类名:sharing;
方法or属性:function on(type: 'interfaceSharingStateChange', callback: Callback\<{ type: SharingIfaceType, iface: string, state: SharingIfaceState }>): void;
新版本信息:201,202,401|@ohos.net.sharing.d.ts| +|错误码有变化|类名:sharing;
方法or属性:function on(type: 'sharingUpstreamChange', callback: Callback\): void;
旧版本信息:201,401|类名:sharing;
方法or属性:function on(type: 'sharingUpstreamChange', callback: Callback\): void;
新版本信息:201,202,401|@ohos.net.sharing.d.ts| +|错误码有变化|类名:sharing;
方法or属性:function off(type: 'sharingStateChange', callback?: Callback\): void;
旧版本信息:201,401|类名:sharing;
方法or属性:function off(type: 'sharingStateChange', callback?: Callback\): void;
新版本信息:201,202,401|@ohos.net.sharing.d.ts| +|错误码有变化|类名:sharing;
方法or属性:function off(type: 'interfaceSharingStateChange', callback?: Callback\<{ type: SharingIfaceType, iface: string, state: SharingIfaceState }>): void;
旧版本信息:201,401|类名:sharing;
方法or属性:function off(type: 'interfaceSharingStateChange', callback?: Callback\<{ type: SharingIfaceType, iface: string, state: SharingIfaceState }>): void;
新版本信息:201,202,401|@ohos.net.sharing.d.ts| +|错误码有变化|类名:sharing;
方法or属性:function off(type: 'sharingUpstreamChange', callback?: Callback\): void;
旧版本信息:201,401|类名:sharing;
方法or属性:function off(type: 'sharingUpstreamChange', callback?: Callback\): void;
新版本信息:201,202,401|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:connection;
方法or属性:function enableAirplaneMode(): Promise\;
旧版本信息:|类名:connection;
方法or属性:function enableAirplaneMode(): Promise\;
新版本信息:systemapi|@ohos.net.connection.d.ts| +|访问级别有变化|类名:connection;
方法or属性:function disableAirplaneMode(): Promise\;
旧版本信息:|类名:connection;
方法or属性:function disableAirplaneMode(): Promise\;
新版本信息:systemapi|@ohos.net.connection.d.ts| +|访问级别有变化|类名:ethernet;
方法or属性:function getIfaceConfig(iface: string): Promise\;
旧版本信息:|类名:ethernet;
方法or属性:function getIfaceConfig(iface: string): Promise\;
新版本信息:systemapi|@ohos.net.ethernet.d.ts| +|访问级别有变化|类名:ethernet;
方法or属性:function setIfaceConfig(iface: string, ic: InterfaceConfiguration): Promise\;
旧版本信息:|类名:ethernet;
方法or属性:function setIfaceConfig(iface: string, ic: InterfaceConfiguration): Promise\;
新版本信息:systemapi|@ohos.net.ethernet.d.ts| +|访问级别有变化|类名:ethernet;
方法or属性:function isIfaceActive(iface: string): Promise\;
旧版本信息:|类名:ethernet;
方法or属性:function isIfaceActive(iface: string): Promise\;
新版本信息:systemapi|@ohos.net.ethernet.d.ts| +|访问级别有变化|类名:ethernet;
方法or属性:function getAllActiveIfaces(): Promise\>;
旧版本信息:|类名:ethernet;
方法or属性:function getAllActiveIfaces(): Promise\>;
新版本信息:systemapi|@ohos.net.ethernet.d.ts| +|访问级别有变化|类名:InterfaceConfiguration;
方法or属性:mode: IPSetMode;
旧版本信息:|类名:InterfaceConfiguration;
方法or属性:mode: IPSetMode;
新版本信息:systemapi|@ohos.net.ethernet.d.ts| +|访问级别有变化|类名:InterfaceConfiguration;
方法or属性:ipAddr: string;
旧版本信息:|类名:InterfaceConfiguration;
方法or属性:ipAddr: string;
新版本信息:systemapi|@ohos.net.ethernet.d.ts| +|访问级别有变化|类名:InterfaceConfiguration;
方法or属性:route: string;
旧版本信息:|类名:InterfaceConfiguration;
方法or属性:route: string;
新版本信息:systemapi|@ohos.net.ethernet.d.ts| +|访问级别有变化|类名:InterfaceConfiguration;
方法or属性:gateway: string;
旧版本信息:|类名:InterfaceConfiguration;
方法or属性:gateway: string;
新版本信息:systemapi|@ohos.net.ethernet.d.ts| +|访问级别有变化|类名:InterfaceConfiguration;
方法or属性:netMask: string;
旧版本信息:|类名:InterfaceConfiguration;
方法or属性:netMask: string;
新版本信息:systemapi|@ohos.net.ethernet.d.ts| +|访问级别有变化|类名:InterfaceConfiguration;
方法or属性:dnsServers: string;
旧版本信息:|类名:InterfaceConfiguration;
方法or属性:dnsServers: string;
新版本信息:systemapi|@ohos.net.ethernet.d.ts| +|访问级别有变化|类名:IPSetMode;
方法or属性:STATIC = 0
旧版本信息:|类名:IPSetMode;
方法or属性:STATIC = 0
新版本信息:systemapi|@ohos.net.ethernet.d.ts| +|访问级别有变化|类名:IPSetMode;
方法or属性:DHCP = 1
旧版本信息:|类名:IPSetMode;
方法or属性:DHCP = 1
新版本信息:systemapi|@ohos.net.ethernet.d.ts| +|访问级别有变化|类名:sharing;
方法or属性:function isSharingSupported(): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function isSharingSupported(): Promise\;
新版本信息:systemapi|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:sharing;
方法or属性:function isSharing(): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function isSharing(): Promise\;
新版本信息:systemapi|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:sharing;
方法or属性:function startSharing(type: SharingIfaceType): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function startSharing(type: SharingIfaceType): Promise\;
新版本信息:systemapi|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:sharing;
方法or属性:function stopSharing(type: SharingIfaceType): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function stopSharing(type: SharingIfaceType): Promise\;
新版本信息:systemapi|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:sharing;
方法or属性:function getStatsRxBytes(): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function getStatsRxBytes(): Promise\;
新版本信息:systemapi|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:sharing;
方法or属性:function getStatsTxBytes(): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function getStatsTxBytes(): Promise\;
新版本信息:systemapi|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:sharing;
方法or属性:function getStatsTotalBytes(): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function getStatsTotalBytes(): Promise\;
新版本信息:systemapi|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:sharing;
方法or属性:function getSharingIfaces(state: SharingIfaceState): Promise\>;
旧版本信息:|类名:sharing;
方法or属性:function getSharingIfaces(state: SharingIfaceState): Promise\>;
新版本信息:systemapi|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:sharing;
方法or属性:function getSharingState(type: SharingIfaceType): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function getSharingState(type: SharingIfaceType): Promise\;
新版本信息:systemapi|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:sharing;
方法or属性:function getSharableRegexes(type: SharingIfaceType): Promise\>;
旧版本信息:|类名:sharing;
方法or属性:function getSharableRegexes(type: SharingIfaceType): Promise\>;
新版本信息:systemapi|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:SharingIfaceState;
方法or属性:SHARING_NIC_SERVING = 1
旧版本信息:|类名:SharingIfaceState;
方法or属性:SHARING_NIC_SERVING = 1
新版本信息:systemapi|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:SharingIfaceState;
方法or属性:SHARING_NIC_CAN_SERVER = 2
旧版本信息:|类名:SharingIfaceState;
方法or属性:SHARING_NIC_CAN_SERVER = 2
新版本信息:systemapi|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:SharingIfaceState;
方法or属性:SHARING_NIC_ERROR = 3
旧版本信息:|类名:SharingIfaceState;
方法or属性:SHARING_NIC_ERROR = 3
新版本信息:systemapi|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:SharingIfaceType;
方法or属性:SHARING_WIFI = 0
旧版本信息:|类名:SharingIfaceType;
方法or属性:SHARING_WIFI = 0
新版本信息:systemapi|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:SharingIfaceType;
方法or属性:SHARING_USB = 1
旧版本信息:|类名:SharingIfaceType;
方法or属性:SHARING_USB = 1
新版本信息:systemapi|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:SharingIfaceType;
方法or属性:SHARING_BLUETOOTH = 2
旧版本信息:|类名:SharingIfaceType;
方法or属性:SHARING_BLUETOOTH = 2
新版本信息:systemapi|@ohos.net.sharing.d.ts| +|访问级别有变化|类名:wifiManager;
方法or属性:function addDeviceConfig(config: WifiDeviceConfig, callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function addDeviceConfig(config: WifiDeviceConfig, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:wifiManager;
方法or属性:function getP2pGroups(callback: AsyncCallback\>): void;
旧版本信息:|类名:wifiManager;
方法or属性:function getP2pGroups(callback: AsyncCallback\>): void;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:EapMethod;
方法or属性:enum EapMethod
旧版本信息:systemapi|类名:EapMethod;
方法or属性:enum EapMethod
新版本信息:|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:Phase2Method;
方法or属性:enum Phase2Method
旧版本信息:systemapi|类名:Phase2Method;
方法or属性:enum Phase2Method
新版本信息:|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:WifiEapConfig;
方法or属性:interface WifiEapConfig
旧版本信息:systemapi|类名:WifiEapConfig;
方法or属性:interface WifiEapConfig
新版本信息:|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:WifiDeviceConfig;
方法or属性:creatorUid?: number;
旧版本信息:|类名:WifiDeviceConfig;
方法or属性:creatorUid?: number;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:WifiDeviceConfig;
方法or属性:disableReason?: number;
旧版本信息:|类名:WifiDeviceConfig;
方法or属性:disableReason?: number;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:WifiDeviceConfig;
方法or属性:netId?: number;
旧版本信息:|类名:WifiDeviceConfig;
方法or属性:netId?: number;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:WifiDeviceConfig;
方法or属性:randomMacType?: number;
旧版本信息:|类名:WifiDeviceConfig;
方法or属性:randomMacType?: number;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:WifiDeviceConfig;
方法or属性:randomMacAddr?: string;
旧版本信息:|类名:WifiDeviceConfig;
方法or属性:randomMacAddr?: string;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:WifiDeviceConfig;
方法or属性:ipType?: IpType;
旧版本信息:|类名:WifiDeviceConfig;
方法or属性:ipType?: IpType;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:WifiDeviceConfig;
方法or属性:staticIp?: IpConfig;
旧版本信息:|类名:WifiDeviceConfig;
方法or属性:staticIp?: IpConfig;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:WifiDeviceConfig;
方法or属性:eapConfig?: WifiEapConfig;
旧版本信息:systemapi|类名:WifiDeviceConfig;
方法or属性:eapConfig?: WifiEapConfig;
新版本信息:|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:IpConfig;
方法or属性:ipAddress: number;
旧版本信息:|类名:IpConfig;
方法or属性:ipAddress: number;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:IpConfig;
方法or属性:gateway: number;
旧版本信息:|类名:IpConfig;
方法or属性:gateway: number;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:IpConfig;
方法or属性:prefixLength: number;
旧版本信息:|类名:IpConfig;
方法or属性:prefixLength: number;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:IpConfig;
方法or属性:dnsServers: number[];
旧版本信息:|类名:IpConfig;
方法or属性:dnsServers: number[];
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:IpConfig;
方法or属性:domains: Array\;
旧版本信息:|类名:IpConfig;
方法or属性:domains: Array\;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:WifiLinkedInfo;
方法or属性:networkId: number;
旧版本信息:|类名:WifiLinkedInfo;
方法or属性:networkId: number;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:WifiLinkedInfo;
方法or属性:chload: number;
旧版本信息:|类名:WifiLinkedInfo;
方法or属性:chload: number;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:WifiLinkedInfo;
方法or属性:snr: number;
旧版本信息:|类名:WifiLinkedInfo;
方法or属性:snr: number;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:WifiLinkedInfo;
方法or属性:suppState: SuppState;
旧版本信息:|类名:WifiLinkedInfo;
方法or属性:suppState: SuppState;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:HotspotConfig;
方法or属性:ssid: string;
旧版本信息:|类名:HotspotConfig;
方法or属性:ssid: string;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:HotspotConfig;
方法or属性:securityType: WifiSecurityType;
旧版本信息:|类名:HotspotConfig;
方法or属性:securityType: WifiSecurityType;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:HotspotConfig;
方法or属性:band: number;
旧版本信息:|类名:HotspotConfig;
方法or属性:band: number;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:HotspotConfig;
方法or属性:channel?: number;
旧版本信息:|类名:HotspotConfig;
方法or属性:channel?: number;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:HotspotConfig;
方法or属性:preSharedKey: string;
旧版本信息:|类名:HotspotConfig;
方法or属性:preSharedKey: string;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:HotspotConfig;
方法or属性:maxConn: number;
旧版本信息:|类名:HotspotConfig;
方法or属性:maxConn: number;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:StationInfo;
方法or属性:name: string;
旧版本信息:|类名:StationInfo;
方法or属性:name: string;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:StationInfo;
方法or属性:macAddress: string;
旧版本信息:|类名:StationInfo;
方法or属性:macAddress: string;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:StationInfo;
方法or属性:ipAddress: string;
旧版本信息:|类名:StationInfo;
方法or属性:ipAddress: string;
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:IpType;
方法or属性:STATIC
旧版本信息:|类名:IpType;
方法or属性:STATIC
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:IpType;
方法or属性:DHCP
旧版本信息:|类名:IpType;
方法or属性:DHCP
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:IpType;
方法or属性:UNKNOWN
旧版本信息:|类名:IpType;
方法or属性:UNKNOWN
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:SuppState;
方法or属性:DISCONNECTED
旧版本信息:|类名:SuppState;
方法or属性:DISCONNECTED
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:SuppState;
方法or属性:INTERFACE_DISABLED
旧版本信息:|类名:SuppState;
方法or属性:INTERFACE_DISABLED
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:SuppState;
方法or属性:INACTIVE
旧版本信息:|类名:SuppState;
方法or属性:INACTIVE
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:SuppState;
方法or属性:SCANNING
旧版本信息:|类名:SuppState;
方法or属性:SCANNING
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:SuppState;
方法or属性:AUTHENTICATING
旧版本信息:|类名:SuppState;
方法or属性:AUTHENTICATING
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:SuppState;
方法or属性:ASSOCIATING
旧版本信息:|类名:SuppState;
方法or属性:ASSOCIATING
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:SuppState;
方法or属性:ASSOCIATED
旧版本信息:|类名:SuppState;
方法or属性:ASSOCIATED
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:SuppState;
方法or属性:FOUR_WAY_HANDSHAKE
旧版本信息:|类名:SuppState;
方法or属性:FOUR_WAY_HANDSHAKE
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:SuppState;
方法or属性:GROUP_HANDSHAKE
旧版本信息:|类名:SuppState;
方法or属性:GROUP_HANDSHAKE
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:SuppState;
方法or属性:COMPLETED
旧版本信息:|类名:SuppState;
方法or属性:COMPLETED
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:SuppState;
方法or属性:UNINITIALIZED
旧版本信息:|类名:SuppState;
方法or属性:UNINITIALIZED
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|访问级别有变化|类名:SuppState;
方法or属性:INVALID
旧版本信息:|类名:SuppState;
方法or属性:INVALID
新版本信息:systemapi|@ohos.wifiManager.d.ts| +|权限有变化|类名:GattClientDevice;
方法or属性:getDeviceName(): Promise\;
旧版本信息:|类名:GattClientDevice;
方法or属性:getDeviceName(): Promise\;
新版本信息:ohos.permission.USE_BLUETOOTH|@ohos.bluetoothManager.d.ts| +|权限有变化|类名:GattClientDevice;
方法or属性:getServices(): Promise\>;
旧版本信息:|类名:GattClientDevice;
方法or属性:getServices(): Promise\>;
新版本信息:ohos.permission.USE_BLUETOOTH|@ohos.bluetoothManager.d.ts| +|权限有变化|类名:GattClientDevice;
方法or属性:readCharacteristicValue(characteristic: BLECharacteristic): Promise\;
旧版本信息:|类名:GattClientDevice;
方法or属性:readCharacteristicValue(characteristic: BLECharacteristic): Promise\;
新版本信息:ohos.permission.USE_BLUETOOTH|@ohos.bluetoothManager.d.ts| +|权限有变化|类名:GattClientDevice;
方法or属性:readDescriptorValue(descriptor: BLEDescriptor): Promise\;
旧版本信息:|类名:GattClientDevice;
方法or属性:readDescriptorValue(descriptor: BLEDescriptor): Promise\;
新版本信息:ohos.permission.USE_BLUETOOTH|@ohos.bluetoothManager.d.ts| +|权限有变化|类名:GattClientDevice;
方法or属性:getRssiValue(): Promise\;
旧版本信息:|类名:GattClientDevice;
方法or属性:getRssiValue(): Promise\;
新版本信息:ohos.permission.USE_BLUETOOTH|@ohos.bluetoothManager.d.ts| +|权限有变化|类名:connection;
方法or属性:function getDefaultNet(): Promise\;
旧版本信息:|类名:connection;
方法or属性:function getDefaultNet(): Promise\;
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.net.connection.d.ts| +|权限有变化|类名:connection;
方法or属性:function getAllNets(): Promise\>;
旧版本信息:|类名:connection;
方法or属性:function getAllNets(): Promise\>;
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.net.connection.d.ts| +|权限有变化|类名:connection;
方法or属性:function getConnectionProperties(netHandle: NetHandle): Promise\;
旧版本信息:|类名:connection;
方法or属性:function getConnectionProperties(netHandle: NetHandle): Promise\;
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.net.connection.d.ts| +|权限有变化|类名:connection;
方法or属性:function getNetCapabilities(netHandle: NetHandle): Promise\;
旧版本信息:|类名:connection;
方法or属性:function getNetCapabilities(netHandle: NetHandle): Promise\;
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.net.connection.d.ts| +|权限有变化|类名:connection;
方法or属性:function isDefaultNetMetered(): Promise\;
旧版本信息:|类名:connection;
方法or属性:function isDefaultNetMetered(): Promise\;
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.net.connection.d.ts| +|权限有变化|类名:connection;
方法or属性:function hasDefaultNet(): Promise\;
旧版本信息:|类名:connection;
方法or属性:function hasDefaultNet(): Promise\;
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.net.connection.d.ts| +|权限有变化|类名:connection;
方法or属性:function enableAirplaneMode(): Promise\;
旧版本信息:|类名:connection;
方法or属性:function enableAirplaneMode(): Promise\;
新版本信息:ohos.permission.CONNECTIVITY_INTERNAL|@ohos.net.connection.d.ts| +|权限有变化|类名:connection;
方法or属性:function disableAirplaneMode(): Promise\;
旧版本信息:|类名:connection;
方法or属性:function disableAirplaneMode(): Promise\;
新版本信息:ohos.permission.CONNECTIVITY_INTERNAL|@ohos.net.connection.d.ts| +|权限有变化|类名:connection;
方法or属性:function reportNetConnected(netHandle: NetHandle): Promise\;
旧版本信息:|类名:connection;
方法or属性:function reportNetConnected(netHandle: NetHandle): Promise\;
新版本信息:ohos.permission.GET_NETWORK_INFO,ohos.permission.INTERNET|@ohos.net.connection.d.ts| +|权限有变化|类名:connection;
方法or属性:function reportNetDisconnected(netHandle: NetHandle): Promise\;
旧版本信息:|类名:connection;
方法or属性:function reportNetDisconnected(netHandle: NetHandle): Promise\;
新版本信息:ohos.permission.GET_NETWORK_INFO,ohos.permission.INTERNET|@ohos.net.connection.d.ts| +|权限有变化|类名:connection;
方法or属性:function getAddressesByName(host: string): Promise\>;
旧版本信息:|类名:connection;
方法or属性:function getAddressesByName(host: string): Promise\>;
新版本信息:ohos.permission.INTERNET|@ohos.net.connection.d.ts| +|权限有变化|类名:NetHandle;
方法or属性:getAddressesByName(host: string): Promise\>;
旧版本信息:|类名:NetHandle;
方法or属性:getAddressesByName(host: string): Promise\>;
新版本信息:ohos.permission.INTERNET|@ohos.net.connection.d.ts| +|权限有变化|类名:NetHandle;
方法or属性:getAddressByName(host: string): Promise\;
旧版本信息:|类名:NetHandle;
方法or属性:getAddressByName(host: string): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.connection.d.ts| +|权限有变化|类名:ethernet;
方法or属性:function getIfaceConfig(iface: string): Promise\;
旧版本信息:|类名:ethernet;
方法or属性:function getIfaceConfig(iface: string): Promise\;
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.net.ethernet.d.ts| +|权限有变化|类名:ethernet;
方法or属性:function setIfaceConfig(iface: string, ic: InterfaceConfiguration): Promise\;
旧版本信息:|类名:ethernet;
方法or属性:function setIfaceConfig(iface: string, ic: InterfaceConfiguration): Promise\;
新版本信息:ohos.permission.CONNECTIVITY_INTERNAL|@ohos.net.ethernet.d.ts| +|权限有变化|类名:ethernet;
方法or属性:function isIfaceActive(iface: string): Promise\;
旧版本信息:|类名:ethernet;
方法or属性:function isIfaceActive(iface: string): Promise\;
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.net.ethernet.d.ts| +|权限有变化|类名:ethernet;
方法or属性:function getAllActiveIfaces(): Promise\>;
旧版本信息:|类名:ethernet;
方法or属性:function getAllActiveIfaces(): Promise\>;
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.net.ethernet.d.ts| +|权限有变化|类名:HttpRequest;
方法or属性:request(url: string, options: HttpRequestOptions, callback: AsyncCallback\): void;
旧版本信息:|类名:HttpRequest;
方法or属性:request(url: string, options: HttpRequestOptions, callback: AsyncCallback\): void;
新版本信息:ohos.permission.INTERNET|@ohos.net.http.d.ts| +|权限有变化|类名:HttpRequest;
方法or属性:request(url: string, options?: HttpRequestOptions): Promise\;
旧版本信息:|类名:HttpRequest;
方法or属性:request(url: string, options?: HttpRequestOptions): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.http.d.ts| +|权限有变化|类名:sharing;
方法or属性:function isSharingSupported(): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function isSharingSupported(): Promise\;
新版本信息:ohos.permission.CONNECTIVITY_INTERNAL|@ohos.net.sharing.d.ts| +|权限有变化|类名:sharing;
方法or属性:function isSharing(): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function isSharing(): Promise\;
新版本信息:ohos.permission.CONNECTIVITY_INTERNAL|@ohos.net.sharing.d.ts| +|权限有变化|类名:sharing;
方法or属性:function startSharing(type: SharingIfaceType): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function startSharing(type: SharingIfaceType): Promise\;
新版本信息:ohos.permission.CONNECTIVITY_INTERNAL|@ohos.net.sharing.d.ts| +|权限有变化|类名:sharing;
方法or属性:function stopSharing(type: SharingIfaceType): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function stopSharing(type: SharingIfaceType): Promise\;
新版本信息:ohos.permission.CONNECTIVITY_INTERNAL|@ohos.net.sharing.d.ts| +|权限有变化|类名:sharing;
方法or属性:function getStatsRxBytes(): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function getStatsRxBytes(): Promise\;
新版本信息:ohos.permission.CONNECTIVITY_INTERNAL|@ohos.net.sharing.d.ts| +|权限有变化|类名:sharing;
方法or属性:function getStatsTxBytes(): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function getStatsTxBytes(): Promise\;
新版本信息:ohos.permission.CONNECTIVITY_INTERNAL|@ohos.net.sharing.d.ts| +|权限有变化|类名:sharing;
方法or属性:function getStatsTotalBytes(): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function getStatsTotalBytes(): Promise\;
新版本信息:ohos.permission.CONNECTIVITY_INTERNAL|@ohos.net.sharing.d.ts| +|权限有变化|类名:sharing;
方法or属性:function getSharingIfaces(state: SharingIfaceState): Promise\>;
旧版本信息:|类名:sharing;
方法or属性:function getSharingIfaces(state: SharingIfaceState): Promise\>;
新版本信息:ohos.permission.CONNECTIVITY_INTERNAL|@ohos.net.sharing.d.ts| +|权限有变化|类名:sharing;
方法or属性:function getSharingState(type: SharingIfaceType): Promise\;
旧版本信息:|类名:sharing;
方法or属性:function getSharingState(type: SharingIfaceType): Promise\;
新版本信息:ohos.permission.CONNECTIVITY_INTERNAL|@ohos.net.sharing.d.ts| +|权限有变化|类名:sharing;
方法or属性:function getSharableRegexes(type: SharingIfaceType): Promise\>;
旧版本信息:|类名:sharing;
方法or属性:function getSharableRegexes(type: SharingIfaceType): Promise\>;
新版本信息:ohos.permission.CONNECTIVITY_INTERNAL|@ohos.net.sharing.d.ts| +|权限有变化|类名:UDPSocket;
方法or属性:bind(address: NetAddress): Promise\;
旧版本信息:|类名:UDPSocket;
方法or属性:bind(address: NetAddress): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.socket.d.ts| +|权限有变化|类名:TCPSocket;
方法or属性:bind(address: NetAddress): Promise\;
旧版本信息:|类名:TCPSocket;
方法or属性:bind(address: NetAddress): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.socket.d.ts| +|权限有变化|类名:TLSSocket;
方法or属性:bind(address: NetAddress): Promise\;
旧版本信息:|类名:TLSSocket;
方法or属性:bind(address: NetAddress): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.socket.d.ts| +|权限有变化|类名:UDPSocket;
方法or属性:send(options: UDPSendOptions): Promise\;
旧版本信息:|类名:UDPSocket;
方法or属性:send(options: UDPSendOptions): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.socket.d.ts| +|权限有变化|类名:UDPSocket;
方法or属性:close(): Promise\;
旧版本信息:|类名:UDPSocket;
方法or属性:close(): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.socket.d.ts| +|权限有变化|类名:TCPSocket;
方法or属性:close(): Promise\;
旧版本信息:|类名:TCPSocket;
方法or属性:close(): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.socket.d.ts| +|权限有变化|类名:UDPSocket;
方法or属性:getState(): Promise\;
旧版本信息:|类名:UDPSocket;
方法or属性:getState(): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.socket.d.ts| +|权限有变化|类名:TCPSocket;
方法or属性:getState(): Promise\;
旧版本信息:|类名:TCPSocket;
方法or属性:getState(): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.socket.d.ts| +|权限有变化|类名:UDPSocket;
方法or属性:setExtraOptions(options: UDPExtraOptions): Promise\;
旧版本信息:|类名:UDPSocket;
方法or属性:setExtraOptions(options: UDPExtraOptions): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.socket.d.ts| +|权限有变化|类名:TCPSocket;
方法or属性:connect(options: TCPConnectOptions): Promise\;
旧版本信息:|类名:TCPSocket;
方法or属性:connect(options: TCPConnectOptions): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.socket.d.ts| +|权限有变化|类名:TCPSocket;
方法or属性:send(options: TCPSendOptions): Promise\;
旧版本信息:|类名:TCPSocket;
方法or属性:send(options: TCPSendOptions): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.socket.d.ts| +|权限有变化|类名:TCPSocket;
方法or属性:getRemoteAddress(): Promise\;
旧版本信息:|类名:TCPSocket;
方法or属性:getRemoteAddress(): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.socket.d.ts| +|权限有变化|类名:TCPSocket;
方法or属性:setExtraOptions(options: TCPExtraOptions): Promise\;
旧版本信息:|类名:TCPSocket;
方法or属性:setExtraOptions(options: TCPExtraOptions): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.socket.d.ts| +|权限有变化|类名:WebSocket;
方法or属性:connect(url: string, options: WebSocketRequestOptions, callback: AsyncCallback\): void;
旧版本信息:|类名:WebSocket;
方法or属性:connect(url: string, options: WebSocketRequestOptions, callback: AsyncCallback\): void;
新版本信息:ohos.permission.INTERNET|@ohos.net.webSocket.d.ts| +|权限有变化|类名:WebSocket;
方法or属性:connect(url: string, options?: WebSocketRequestOptions): Promise\;
旧版本信息:|类名:WebSocket;
方法or属性:connect(url: string, options?: WebSocketRequestOptions): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.webSocket.d.ts| +|权限有变化|类名:WebSocket;
方法or属性:send(data: string \| ArrayBuffer): Promise\;
旧版本信息:|类名:WebSocket;
方法or属性:send(data: string \| ArrayBuffer): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.webSocket.d.ts| +|权限有变化|类名:WebSocket;
方法or属性:close(options: WebSocketCloseOptions, callback: AsyncCallback\): void;
旧版本信息:|类名:WebSocket;
方法or属性:close(options: WebSocketCloseOptions, callback: AsyncCallback\): void;
新版本信息:ohos.permission.INTERNET|@ohos.net.webSocket.d.ts| +|权限有变化|类名:WebSocket;
方法or属性:close(options?: WebSocketCloseOptions): Promise\;
旧版本信息:|类名:WebSocket;
方法or属性:close(options?: WebSocketCloseOptions): Promise\;
新版本信息:ohos.permission.INTERNET|@ohos.net.webSocket.d.ts| +|权限有变化|类名:wifiManager;
方法or属性:function addDeviceConfig(config: WifiDeviceConfig, callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function addDeviceConfig(config: WifiDeviceConfig, callback: AsyncCallback\): void;
新版本信息:ohos.permission.SET_WIFI_INFO,ohos.permission.SET_WIFI_CONFIG|@ohos.wifiManager.d.ts| +|权限有变化|类名:wifiManager;
方法or属性:function addCandidateConfig(config: WifiDeviceConfig, callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function addCandidateConfig(config: WifiDeviceConfig, callback: AsyncCallback\): void;
新版本信息:ohos.permission.SET_WIFI_INFO|@ohos.wifiManager.d.ts| +|权限有变化|类名:wifiManager;
方法or属性:function removeCandidateConfig(networkId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function removeCandidateConfig(networkId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.SET_WIFI_INFO|@ohos.wifiManager.d.ts| +|权限有变化|类名:wifiManager;
方法or属性:function getLinkedInfo(callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function getLinkedInfo(callback: AsyncCallback\): void;
新版本信息:ohos.permission.GET_WIFI_INFO|@ohos.wifiManager.d.ts| +|权限有变化|类名:wifiManager;
方法or属性:function getP2pLinkedInfo(callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function getP2pLinkedInfo(callback: AsyncCallback\): void;
新版本信息:ohos.permission.GET_WIFI_INFO|@ohos.wifiManager.d.ts| +|权限有变化|类名:wifiManager;
方法or属性:function getCurrentP2pGroup(callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function getCurrentP2pGroup(callback: AsyncCallback\): void;
新版本信息:ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION,ohos.permission.APPROXIMATELY_LOCATION|@ohos.wifiManager.d.ts| +|权限有变化|类名:wifiManager;
方法or属性:function getP2pPeerDevices(callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function getP2pPeerDevices(callback: AsyncCallback\): void;
新版本信息:ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION,ohos.permission.APPROXIMATELY_LOCATION|@ohos.wifiManager.d.ts| +|权限有变化|类名:wifiManager;
方法or属性:function getP2pLocalDevice(callback: AsyncCallback\): void;
旧版本信息:|类名:wifiManager;
方法or属性:function getP2pLocalDevice(callback: AsyncCallback\): void;
新版本信息:ohos.permission.GET_WIFI_INFO,ohos.permission.GET_WIFI_CONFIG|@ohos.wifiManager.d.ts| +|权限有变化|类名:wifiManager;
方法or属性:function getP2pGroups(callback: AsyncCallback\>): void;
旧版本信息:|类名:wifiManager;
方法or属性:function getP2pGroups(callback: AsyncCallback\>): void;
新版本信息:ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION,ohos.permission.APPROXIMATELY_LOCATION|@ohos.wifiManager.d.ts| +|type有变化|类名:NetSpecifier;
方法or属性:netCapabilities: NetCapabilities;
旧版本信息:|类名:NetSpecifier;
方法or属性:netCapabilities: NetCapabilities;
新版本信息:NetCapabilities|@ohos.net.connection.d.ts| +|type有变化|类名:NetSpecifier;
方法or属性:bearerPrivateIdentifier?: string;
旧版本信息:|类名:NetSpecifier;
方法or属性:bearerPrivateIdentifier?: string;
新版本信息:?string|@ohos.net.connection.d.ts| +|type有变化|类名:NetHandle;
方法or属性:netId: number;
旧版本信息:|类名:NetHandle;
方法or属性:netId: number;
新版本信息:number|@ohos.net.connection.d.ts| +|type有变化|类名:NetCapabilities;
方法or属性:linkUpBandwidthKbps?: number;
旧版本信息:|类名:NetCapabilities;
方法or属性:linkUpBandwidthKbps?: number;
新版本信息:?number|@ohos.net.connection.d.ts| +|type有变化|类名:NetCapabilities;
方法or属性:linkDownBandwidthKbps?: number;
旧版本信息:|类名:NetCapabilities;
方法or属性:linkDownBandwidthKbps?: number;
新版本信息:?number|@ohos.net.connection.d.ts| +|type有变化|类名:NetCapabilities;
方法or属性:networkCap?: Array\;
旧版本信息:|类名:NetCapabilities;
方法or属性:networkCap?: Array\;
新版本信息:?Array\|@ohos.net.connection.d.ts| +|type有变化|类名:NetCapabilities;
方法or属性:bearerTypes: Array\;
旧版本信息:|类名:NetCapabilities;
方法or属性:bearerTypes: Array\;
新版本信息:Array\|@ohos.net.connection.d.ts| +|type有变化|类名:ConnectionProperties;
方法or属性:interfaceName: string;
旧版本信息:|类名:ConnectionProperties;
方法or属性:interfaceName: string;
新版本信息:string|@ohos.net.connection.d.ts| +|type有变化|类名:ConnectionProperties;
方法or属性:domains: string;
旧版本信息:|类名:ConnectionProperties;
方法or属性:domains: string;
新版本信息:string|@ohos.net.connection.d.ts| +|type有变化|类名:ConnectionProperties;
方法or属性:linkAddresses: Array\;
旧版本信息:|类名:ConnectionProperties;
方法or属性:linkAddresses: Array\;
新版本信息:Array\|@ohos.net.connection.d.ts| +|type有变化|类名:ConnectionProperties;
方法or属性:dnses: Array\;
旧版本信息:|类名:ConnectionProperties;
方法or属性:dnses: Array\;
新版本信息:Array\|@ohos.net.connection.d.ts| +|type有变化|类名:ConnectionProperties;
方法or属性:routes: Array\;
旧版本信息:|类名:ConnectionProperties;
方法or属性:routes: Array\;
新版本信息:Array\|@ohos.net.connection.d.ts| +|type有变化|类名:ConnectionProperties;
方法or属性:mtu: number;
旧版本信息:|类名:ConnectionProperties;
方法or属性:mtu: number;
新版本信息:number|@ohos.net.connection.d.ts| +|type有变化|类名:RouteInfo;
方法or属性:interface: string;
旧版本信息:|类名:RouteInfo;
方法or属性:interface: string;
新版本信息:string|@ohos.net.connection.d.ts| +|type有变化|类名:RouteInfo;
方法or属性:destination: LinkAddress;
旧版本信息:|类名:RouteInfo;
方法or属性:destination: LinkAddress;
新版本信息:LinkAddress|@ohos.net.connection.d.ts| +|type有变化|类名:RouteInfo;
方法or属性:gateway: NetAddress;
旧版本信息:|类名:RouteInfo;
方法or属性:gateway: NetAddress;
新版本信息:NetAddress|@ohos.net.connection.d.ts| +|type有变化|类名:RouteInfo;
方法or属性:hasGateway: boolean;
旧版本信息:|类名:RouteInfo;
方法or属性:hasGateway: boolean;
新版本信息:boolean|@ohos.net.connection.d.ts| +|type有变化|类名:RouteInfo;
方法or属性:isDefaultRoute: boolean;
旧版本信息:|类名:RouteInfo;
方法or属性:isDefaultRoute: boolean;
新版本信息:boolean|@ohos.net.connection.d.ts| +|type有变化|类名:LinkAddress;
方法or属性:address: NetAddress;
旧版本信息:|类名:LinkAddress;
方法or属性:address: NetAddress;
新版本信息:NetAddress|@ohos.net.connection.d.ts| +|type有变化|类名:LinkAddress;
方法or属性:prefixLength: number;
旧版本信息:|类名:LinkAddress;
方法or属性:prefixLength: number;
新版本信息:number|@ohos.net.connection.d.ts| +|type有变化|类名:NetAddress;
方法or属性:address: string;
旧版本信息:|类名:NetAddress;
方法or属性:address: string;
新版本信息:string|@ohos.net.connection.d.ts| +|type有变化|类名:NetAddress;
方法or属性:family?: number;
旧版本信息:|类名:NetAddress;
方法or属性:family?: number;
新版本信息:?number|@ohos.net.connection.d.ts| +|type有变化|类名:NetAddress;
方法or属性:port?: number;
旧版本信息:|类名:NetAddress;
方法or属性:port?: number;
新版本信息:?number|@ohos.net.connection.d.ts| +|type有变化|类名:HttpProxy;
方法or属性:host: string;
旧版本信息:|类名:HttpProxy;
方法or属性:host: string;
新版本信息:string|@ohos.net.connection.d.ts| +|type有变化|类名:HttpProxy;
方法or属性:port: number;
旧版本信息:|类名:HttpProxy;
方法or属性:port: number;
新版本信息:number|@ohos.net.connection.d.ts| +|type有变化|类名:HttpProxy;
方法or属性:exclusionList: Array\;
旧版本信息:|类名:HttpProxy;
方法or属性:exclusionList: Array\;
新版本信息:Array\|@ohos.net.connection.d.ts| +|type有变化|类名:InterfaceConfiguration;
方法or属性:mode: IPSetMode;
旧版本信息:|类名:InterfaceConfiguration;
方法or属性:mode: IPSetMode;
新版本信息:IPSetMode|@ohos.net.ethernet.d.ts| +|type有变化|类名:InterfaceConfiguration;
方法or属性:ipAddr: string;
旧版本信息:|类名:InterfaceConfiguration;
方法or属性:ipAddr: string;
新版本信息:string|@ohos.net.ethernet.d.ts| +|type有变化|类名:InterfaceConfiguration;
方法or属性:route: string;
旧版本信息:|类名:InterfaceConfiguration;
方法or属性:route: string;
新版本信息:string|@ohos.net.ethernet.d.ts| +|type有变化|类名:InterfaceConfiguration;
方法or属性:gateway: string;
旧版本信息:|类名:InterfaceConfiguration;
方法or属性:gateway: string;
新版本信息:string|@ohos.net.ethernet.d.ts| +|type有变化|类名:InterfaceConfiguration;
方法or属性:netMask: string;
旧版本信息:|类名:InterfaceConfiguration;
方法or属性:netMask: string;
新版本信息:string|@ohos.net.ethernet.d.ts| +|type有变化|类名:InterfaceConfiguration;
方法or属性:dnsServers: string;
旧版本信息:|类名:InterfaceConfiguration;
方法or属性:dnsServers: string;
新版本信息:string|@ohos.net.ethernet.d.ts| +|type有变化|类名:HttpRequestOptions;
方法or属性:method?: RequestMethod;
旧版本信息:|类名:HttpRequestOptions;
方法or属性:method?: RequestMethod;
新版本信息:?RequestMethod|@ohos.net.http.d.ts| +|type有变化|类名:HttpRequestOptions;
方法or属性:extraData?: string \| Object \| ArrayBuffer;
旧版本信息:|类名:HttpRequestOptions;
方法or属性:extraData?: string \| Object \| ArrayBuffer;
新版本信息:?string \| Object \| ArrayBuffer|@ohos.net.http.d.ts| +|type有变化|类名:HttpRequestOptions;
方法or属性:expectDataType?: HttpDataType;
旧版本信息:|类名:HttpRequestOptions;
方法or属性:expectDataType?: HttpDataType;
新版本信息:?HttpDataType|@ohos.net.http.d.ts| +|type有变化|类名:HttpRequestOptions;
方法or属性:usingCache?: boolean;
旧版本信息:|类名:HttpRequestOptions;
方法or属性:usingCache?: boolean;
新版本信息:?boolean|@ohos.net.http.d.ts| +|type有变化|类名:HttpRequestOptions;
方法or属性:priority?: number;
旧版本信息:|类名:HttpRequestOptions;
方法or属性:priority?: number;
新版本信息:?number|@ohos.net.http.d.ts| +|type有变化|类名:HttpRequestOptions;
方法or属性:header?: Object;
旧版本信息:|类名:HttpRequestOptions;
方法or属性:header?: Object;
新版本信息:?Object|@ohos.net.http.d.ts| +|type有变化|类名:HttpRequestOptions;
方法or属性:readTimeout?: number;
旧版本信息:|类名:HttpRequestOptions;
方法or属性:readTimeout?: number;
新版本信息:?number|@ohos.net.http.d.ts| +|type有变化|类名:HttpRequestOptions;
方法or属性:connectTimeout?: number;
旧版本信息:|类名:HttpRequestOptions;
方法or属性:connectTimeout?: number;
新版本信息:?number|@ohos.net.http.d.ts| +|type有变化|类名:HttpRequestOptions;
方法or属性:usingProtocol?: HttpProtocol;
旧版本信息:|类名:HttpRequestOptions;
方法or属性:usingProtocol?: HttpProtocol;
新版本信息:?HttpProtocol|@ohos.net.http.d.ts| +|type有变化|类名:HttpRequestOptions;
方法or属性:usingProxy?: boolean \| HttpProxy;
旧版本信息:|类名:HttpRequestOptions;
方法or属性:usingProxy?: boolean \| HttpProxy;
新版本信息:?boolean \| HttpProxy|@ohos.net.http.d.ts| +|type有变化|类名:HttpRequestOptions;
方法or属性:caPath?: string;
旧版本信息:|类名:HttpRequestOptions;
方法or属性:caPath?: string;
新版本信息:?string|@ohos.net.http.d.ts| +|type有变化|类名:HttpResponse;
方法or属性:result: string \| Object \| ArrayBuffer;
旧版本信息:|类名:HttpResponse;
方法or属性:result: string \| Object \| ArrayBuffer;
新版本信息:string \| Object \| ArrayBuffer|@ohos.net.http.d.ts| +|type有变化|类名:HttpResponse;
方法or属性:resultType: HttpDataType;
旧版本信息:|类名:HttpResponse;
方法or属性:resultType: HttpDataType;
新版本信息:HttpDataType|@ohos.net.http.d.ts| +|type有变化|类名:HttpResponse;
方法or属性:responseCode: ResponseCode \| number;
旧版本信息:|类名:HttpResponse;
方法or属性:responseCode: ResponseCode \| number;
新版本信息:ResponseCode \| number|@ohos.net.http.d.ts| +|type有变化|类名:HttpResponse;
方法or属性:header: Object;
旧版本信息:|类名:HttpResponse;
方法or属性:header: Object;
新版本信息:Object|@ohos.net.http.d.ts| +|type有变化|类名:HttpResponse;
方法or属性:cookies: string;
旧版本信息:|类名:HttpResponse;
方法or属性:cookies: string;
新版本信息:string|@ohos.net.http.d.ts| +|type有变化|类名:LocalServiceInfo;
方法or属性:serviceType: string;
旧版本信息:|类名:LocalServiceInfo;
方法or属性:serviceType: string;
新版本信息:string|@ohos.net.mdns.d.ts| +|type有变化|类名:LocalServiceInfo;
方法or属性:serviceName: string;
旧版本信息:|类名:LocalServiceInfo;
方法or属性:serviceName: string;
新版本信息:string|@ohos.net.mdns.d.ts| +|type有变化|类名:LocalServiceInfo;
方法or属性:port?: number;
旧版本信息:|类名:LocalServiceInfo;
方法or属性:port?: number;
新版本信息:?number|@ohos.net.mdns.d.ts| +|type有变化|类名:LocalServiceInfo;
方法or属性:host?: NetAddress;
旧版本信息:|类名:LocalServiceInfo;
方法or属性:host?: NetAddress;
新版本信息:?NetAddress|@ohos.net.mdns.d.ts| +|type有变化|类名:LocalServiceInfo;
方法or属性:serviceAttribute?: Array\;
旧版本信息:|类名:LocalServiceInfo;
方法or属性:serviceAttribute?: Array\;
新版本信息:?Array\|@ohos.net.mdns.d.ts| +|type有变化|类名:ServiceAttribute;
方法or属性:key: string;
旧版本信息:|类名:ServiceAttribute;
方法or属性:key: string;
新版本信息:string|@ohos.net.mdns.d.ts| +|type有变化|类名:ServiceAttribute;
方法or属性:value: Array\;
旧版本信息:|类名:ServiceAttribute;
方法or属性:value: Array\;
新版本信息:Array\|@ohos.net.mdns.d.ts| +|type有变化|类名:UDPSendOptions;
方法or属性:data: string \| ArrayBuffer;
旧版本信息:|类名:UDPSendOptions;
方法or属性:data: string \| ArrayBuffer;
新版本信息:string \| ArrayBuffer|@ohos.net.socket.d.ts| +|type有变化|类名:TCPSendOptions;
方法or属性:data: string \| ArrayBuffer;
旧版本信息:|类名:TCPSendOptions;
方法or属性:data: string \| ArrayBuffer;
新版本信息:string \| ArrayBuffer|@ohos.net.socket.d.ts| +|type有变化|类名:UDPSendOptions;
方法or属性:address: NetAddress;
旧版本信息:|类名:UDPSendOptions;
方法or属性:address: NetAddress;
新版本信息:NetAddress|@ohos.net.socket.d.ts| +|type有变化|类名:TCPConnectOptions;
方法or属性:address: NetAddress;
旧版本信息:|类名:TCPConnectOptions;
方法or属性:address: NetAddress;
新版本信息:NetAddress|@ohos.net.socket.d.ts| +|type有变化|类名:TLSConnectOptions;
方法or属性:address: NetAddress;
旧版本信息:|类名:TLSConnectOptions;
方法or属性:address: NetAddress;
新版本信息:NetAddress|@ohos.net.socket.d.ts| +|type有变化|类名:ExtraOptionsBase;
方法or属性:receiveBufferSize?: number;
旧版本信息:|类名:ExtraOptionsBase;
方法or属性:receiveBufferSize?: number;
新版本信息:?number|@ohos.net.socket.d.ts| +|type有变化|类名:ExtraOptionsBase;
方法or属性:sendBufferSize?: number;
旧版本信息:|类名:ExtraOptionsBase;
方法or属性:sendBufferSize?: number;
新版本信息:?number|@ohos.net.socket.d.ts| +|type有变化|类名:ExtraOptionsBase;
方法or属性:reuseAddress?: boolean;
旧版本信息:|类名:ExtraOptionsBase;
方法or属性:reuseAddress?: boolean;
新版本信息:?boolean|@ohos.net.socket.d.ts| +|type有变化|类名:ExtraOptionsBase;
方法or属性:socketTimeout?: number;
旧版本信息:|类名:ExtraOptionsBase;
方法or属性:socketTimeout?: number;
新版本信息:?number|@ohos.net.socket.d.ts| +|type有变化|类名:UDPExtraOptions;
方法or属性:broadcast?: boolean;
旧版本信息:|类名:UDPExtraOptions;
方法or属性:broadcast?: boolean;
新版本信息:?boolean|@ohos.net.socket.d.ts| +|type有变化|类名:SocketStateBase;
方法or属性:isBound: boolean;
旧版本信息:|类名:SocketStateBase;
方法or属性:isBound: boolean;
新版本信息:boolean|@ohos.net.socket.d.ts| +|type有变化|类名:SocketStateBase;
方法or属性:isClose: boolean;
旧版本信息:|类名:SocketStateBase;
方法or属性:isClose: boolean;
新版本信息:boolean|@ohos.net.socket.d.ts| +|type有变化|类名:SocketStateBase;
方法or属性:isConnected: boolean;
旧版本信息:|类名:SocketStateBase;
方法or属性:isConnected: boolean;
新版本信息:boolean|@ohos.net.socket.d.ts| +|type有变化|类名:SocketRemoteInfo;
方法or属性:address: string;
旧版本信息:|类名:SocketRemoteInfo;
方法or属性:address: string;
新版本信息:string|@ohos.net.socket.d.ts| +|type有变化|类名:SocketRemoteInfo;
方法or属性:family: 'IPv4' \| 'IPv6';
旧版本信息:|类名:SocketRemoteInfo;
方法or属性:family: 'IPv4' \| 'IPv6';
新版本信息:'IPv4' \| 'IPv6'|@ohos.net.socket.d.ts| +|type有变化|类名:SocketRemoteInfo;
方法or属性:port: number;
旧版本信息:|类名:SocketRemoteInfo;
方法or属性:port: number;
新版本信息:number|@ohos.net.socket.d.ts| +|type有变化|类名:SocketRemoteInfo;
方法or属性:size: number;
旧版本信息:|类名:SocketRemoteInfo;
方法or属性:size: number;
新版本信息:number|@ohos.net.socket.d.ts| +|type有变化|类名:TCPConnectOptions;
方法or属性:timeout?: number;
旧版本信息:|类名:TCPConnectOptions;
方法or属性:timeout?: number;
新版本信息:?number|@ohos.net.socket.d.ts| +|type有变化|类名:TCPSendOptions;
方法or属性:encoding?: string;
旧版本信息:|类名:TCPSendOptions;
方法or属性:encoding?: string;
新版本信息:?string|@ohos.net.socket.d.ts| +|type有变化|类名:TCPExtraOptions;
方法or属性:keepAlive?: boolean;
旧版本信息:|类名:TCPExtraOptions;
方法or属性:keepAlive?: boolean;
新版本信息:?boolean|@ohos.net.socket.d.ts| +|type有变化|类名:TCPExtraOptions;
方法or属性:OOBInline?: boolean;
旧版本信息:|类名:TCPExtraOptions;
方法or属性:OOBInline?: boolean;
新版本信息:?boolean|@ohos.net.socket.d.ts| +|type有变化|类名:TCPExtraOptions;
方法or属性:TCPNoDelay?: boolean;
旧版本信息:|类名:TCPExtraOptions;
方法or属性:TCPNoDelay?: boolean;
新版本信息:?boolean|@ohos.net.socket.d.ts| +|type有变化|类名:TCPExtraOptions;
方法or属性:socketLinger?: { on: boolean, linger: number };
旧版本信息:|类名:TCPExtraOptions;
方法or属性:socketLinger?: { on: boolean, linger: number };
新版本信息:?object|@ohos.net.socket.d.ts| +|type有变化|类名:TLSSecureOptions;
方法or属性:ca: string \| Array\;
旧版本信息:|类名:TLSSecureOptions;
方法or属性:ca: string \| Array\;
新版本信息:string \| Array\|@ohos.net.socket.d.ts| +|type有变化|类名:TLSSecureOptions;
方法or属性:cert?: string;
旧版本信息:|类名:TLSSecureOptions;
方法or属性:cert?: string;
新版本信息:?string|@ohos.net.socket.d.ts| +|type有变化|类名:TLSSecureOptions;
方法or属性:key?: string;
旧版本信息:|类名:TLSSecureOptions;
方法or属性:key?: string;
新版本信息:?string|@ohos.net.socket.d.ts| +|type有变化|类名:TLSSecureOptions;
方法or属性:password?: string;
旧版本信息:|类名:TLSSecureOptions;
方法or属性:password?: string;
新版本信息:?string|@ohos.net.socket.d.ts| +|type有变化|类名:TLSSecureOptions;
方法or属性:protocols?: Protocol \| Array\;
旧版本信息:|类名:TLSSecureOptions;
方法or属性:protocols?: Protocol \| Array\;
新版本信息:?Protocol \| Array\|@ohos.net.socket.d.ts| +|type有变化|类名:TLSSecureOptions;
方法or属性:useRemoteCipherPrefer?: boolean;
旧版本信息:|类名:TLSSecureOptions;
方法or属性:useRemoteCipherPrefer?: boolean;
新版本信息:?boolean|@ohos.net.socket.d.ts| +|type有变化|类名:TLSSecureOptions;
方法or属性:signatureAlgorithms?: string;
旧版本信息:|类名:TLSSecureOptions;
方法or属性:signatureAlgorithms?: string;
新版本信息:?string|@ohos.net.socket.d.ts| +|type有变化|类名:TLSSecureOptions;
方法or属性:cipherSuite?: string;
旧版本信息:|类名:TLSSecureOptions;
方法or属性:cipherSuite?: string;
新版本信息:?string|@ohos.net.socket.d.ts| +|type有变化|类名:TLSConnectOptions;
方法or属性:secureOptions: TLSSecureOptions;
旧版本信息:|类名:TLSConnectOptions;
方法or属性:secureOptions: TLSSecureOptions;
新版本信息:TLSSecureOptions|@ohos.net.socket.d.ts| +|type有变化|类名:TLSConnectOptions;
方法or属性:ALPNProtocols?: Array\;
旧版本信息:|类名:TLSConnectOptions;
方法or属性:ALPNProtocols?: Array\;
新版本信息:?Array\|@ohos.net.socket.d.ts| +|type有变化|类名:WebSocketRequestOptions;
方法or属性:header?: Object;
旧版本信息:|类名:WebSocketRequestOptions;
方法or属性:header?: Object;
新版本信息:?Object|@ohos.net.webSocket.d.ts| +|type有变化|类名:WebSocketCloseOptions;
方法or属性:code?: number;
旧版本信息:|类名:WebSocketCloseOptions;
方法or属性:code?: number;
新版本信息:?number|@ohos.net.webSocket.d.ts| +|type有变化|类名:WebSocketCloseOptions;
方法or属性:reason?: string;
旧版本信息:|类名:WebSocketCloseOptions;
方法or属性:reason?: string;
新版本信息:?string|@ohos.net.webSocket.d.ts| +|type有变化|类名:WifiEapConfig;
方法or属性:caCertAliases: string;
旧版本信息:|类名:WifiEapConfig;
方法or属性:caCertAliases: string;
新版本信息:string|@ohos.wifiManager.d.ts| +|type有变化|类名:WifiEapConfig;
方法or属性:clientCertAliases: string;
旧版本信息:|类名:WifiEapConfig;
方法or属性:clientCertAliases: string;
新版本信息:string|@ohos.wifiManager.d.ts| +|type有变化|类名:WifiEapConfig;
方法or属性:eapSubId: number;
旧版本信息:|类名:WifiEapConfig;
方法or属性:eapSubId: number;
新版本信息:number|@ohos.wifiManager.d.ts| +|type有变化|类名:WifiDeviceConfig;
方法or属性:eapConfig?: WifiEapConfig;
旧版本信息:|类名:WifiDeviceConfig;
方法or属性:eapConfig?: WifiEapConfig;
新版本信息:?WifiEapConfig|@ohos.wifiManager.d.ts| +|type有变化|类名:NetworkResponse;
方法or属性:type: string;
旧版本信息:|类名:NetworkResponse;
方法or属性:type: string;
新版本信息:string|@system.network.d.ts| +|type有变化|类名:NetworkResponse;
方法or属性:metered: boolean;
旧版本信息:|类名:NetworkResponse;
方法or属性:metered: boolean;
新版本信息:boolean|@system.network.d.ts| +|函数有变化|类名:HotspotConfig;
方法or属性:channel: number;|类名:HotspotConfig;
方法or属性:channel?: number;|@ohos.wifiManager.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-compiler-and-runtime.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-compiler-and-runtime.md new file mode 100644 index 0000000000..8c05191e4e --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-compiler-and-runtime.md @@ -0,0 +1,51 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:ConditionType;
方法or属性:timeout?: number;|@ohos.process.d.ts| +|新增|NA|类名:ConditionType;
方法or属性:killSignal?: number \| string;|@ohos.process.d.ts| +|新增|NA|类名:ConditionType;
方法or属性:maxBuffer?: number;|@ohos.process.d.ts| +|新增|NA|类名:taskpool;
方法or属性:function execute(group: TaskGroup, priority?: Priority): Promise\;|@ohos.taskpool.d.ts| +|新增|NA|类名:taskpool;
方法or属性:function cancel(group: TaskGroup): void;|@ohos.taskpool.d.ts| +|新增|NA|类名:taskpool;
方法or属性:function getTaskPoolInfo(): TaskPoolInfo;|@ohos.taskpool.d.ts| +|新增|NA|类名:Task;
方法or属性:static isCanceled(): boolean;|@ohos.taskpool.d.ts| +|新增|NA|类名:Task;
方法or属性:setTransferList(transfer?: ArrayBuffer[]): void;|@ohos.taskpool.d.ts| +|新增|NA|类名:TaskGroup;
方法or属性:constructor();|@ohos.taskpool.d.ts| +|新增|NA|类名:TaskGroup;
方法or属性:addTask(func: Function, ...args: unknown[]): void;|@ohos.taskpool.d.ts| +|新增|NA|类名:TaskGroup;
方法or属性:addTask(task: Task): void;|@ohos.taskpool.d.ts| +|新增|NA|类名:State;
方法or属性:WAITING = 1|@ohos.taskpool.d.ts| +|新增|NA|类名:State;
方法or属性:RUNNING = 2|@ohos.taskpool.d.ts| +|新增|NA|类名:State;
方法or属性:CANCELED = 3|@ohos.taskpool.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:taskId: number;|@ohos.taskpool.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:state: State;|@ohos.taskpool.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:duration?: number;|@ohos.taskpool.d.ts| +|新增|NA|类名:ThreadInfo;
方法or属性:tid: number;|@ohos.taskpool.d.ts| +|新增|NA|类名:ThreadInfo;
方法or属性:taskIds?: number[];|@ohos.taskpool.d.ts| +|新增|NA|类名:ThreadInfo;
方法or属性:priority?: Priority;|@ohos.taskpool.d.ts| +|新增|NA|类名:TaskPoolInfo;
方法or属性:threadInfos: ThreadInfo[];|@ohos.taskpool.d.ts| +|新增|NA|类名:TaskPoolInfo;
方法or属性:taskInfos: TaskInfo[];|@ohos.taskpool.d.ts| +|新增|NA|类名:Type;
方法or属性:BASIC|@ohos.util.d.ts| +|新增|NA|类名:Type;
方法or属性:MIME|@ohos.util.d.ts| +|新增(错误码)|类名:WorkerEventListener;
方法or属性:(event: Event): void \| Promise\;
旧版本信息:|类名:WorkerEventListener;
方法or属性:(event: Event): void \| Promise\;
新版本信息:401,10200004,10200005|@ohos.worker.d.ts| +|新增(错误码)|类名:ThreadWorkerGlobalScope;
方法or属性:onmessage?: (this: ThreadWorkerGlobalScope, ev: MessageEvents) => void;
旧版本信息:|类名:ThreadWorkerGlobalScope;
方法or属性:onmessage?: (this: ThreadWorkerGlobalScope, ev: MessageEvents) => void;
新版本信息:401,10200004,10200005|@ohos.worker.d.ts| +|新增(错误码)|类名:ThreadWorkerGlobalScope;
方法or属性:onmessageerror?: (this: ThreadWorkerGlobalScope, ev: MessageEvents) => void;
旧版本信息:|类名:ThreadWorkerGlobalScope;
方法or属性:onmessageerror?: (this: ThreadWorkerGlobalScope, ev: MessageEvents) => void;
新版本信息:401,10200004,10200005|@ohos.worker.d.ts| +|新增(错误码)|类名:ThreadWorker;
方法or属性:onexit?: (code: number) => void;
旧版本信息:|类名:ThreadWorker;
方法or属性:onexit?: (code: number) => void;
新版本信息:401,10200004,10200005|@ohos.worker.d.ts| +|新增(错误码)|类名:ThreadWorker;
方法or属性:onerror?: (err: ErrorEvent) => void;
旧版本信息:|类名:ThreadWorker;
方法or属性:onerror?: (err: ErrorEvent) => void;
新版本信息:401,10200004,10200005|@ohos.worker.d.ts| +|新增(错误码)|类名:ThreadWorker;
方法or属性:onmessage?: (event: MessageEvents) => void;
旧版本信息:|类名:ThreadWorker;
方法or属性:onmessage?: (event: MessageEvents) => void;
新版本信息:401,10200004,10200005|@ohos.worker.d.ts| +|新增(错误码)|类名:ThreadWorker;
方法or属性:onmessageerror?: (event: MessageEvents) => void;
旧版本信息:|类名:ThreadWorker;
方法or属性:onmessageerror?: (event: MessageEvents) => void;
新版本信息:401,10200004,10200005|@ohos.worker.d.ts| +|错误码有变化|类名:taskpool;
方法or属性:function cancel(task: Task): void;
旧版本信息:401,10200015,10200016|类名:taskpool;
方法or属性:function cancel(task: Task): void;
新版本信息:401,10200015|@ohos.taskpool.d.ts| +|错误码有变化|类名:Vector;
方法or属性:insert(element: T, index: number): void;
旧版本信息:If|类名:Vector;
方法or属性:insert(element: T, index: number): void;
新版本信息:|@ohos.util.Vector.d.ts| +|错误码有变化|类名:Vector;
方法or属性:removeByRange(fromIndex: number, toIndex: number): void;
旧版本信息:If|类名:Vector;
方法or属性:removeByRange(fromIndex: number, toIndex: number): void;
新版本信息:|@ohos.util.Vector.d.ts| +|错误码有变化|类名:Vector;
方法or属性:subVector(fromIndex: number, toIndex: number): Vector\;
旧版本信息:If|类名:Vector;
方法or属性:subVector(fromIndex: number, toIndex: number): Vector\;
新版本信息:|@ohos.util.Vector.d.ts| +|错误码有变化|类名:WorkerEventTarget;
方法or属性:addEventListener(type: string, listener: WorkerEventListener): void;
旧版本信息:401,10200004|类名:WorkerEventTarget;
方法or属性:addEventListener(type: string, listener: WorkerEventListener): void;
新版本信息:401,10200004,10200005|@ohos.worker.d.ts| +|错误码有变化|类名:ThreadWorker;
方法or属性:addEventListener(type: string, listener: WorkerEventListener): void;
旧版本信息:401,10200004|类名:ThreadWorker;
方法or属性:addEventListener(type: string, listener: WorkerEventListener): void;
新版本信息:401,10200004,10200005|@ohos.worker.d.ts| +|错误码有变化|类名:ThreadWorker;
方法or属性:on(type: string, listener: WorkerEventListener): void;
旧版本信息:401,10200004|类名:ThreadWorker;
方法or属性:on(type: string, listener: WorkerEventListener): void;
新版本信息:401,10200004,10200005|@ohos.worker.d.ts| +|错误码有变化|类名:ThreadWorker;
方法or属性:once(type: string, listener: WorkerEventListener): void;
旧版本信息:401,10200004|类名:ThreadWorker;
方法or属性:once(type: string, listener: WorkerEventListener): void;
新版本信息:401,10200004,10200005|@ohos.worker.d.ts| +|错误码有变化|类名:ThreadWorker;
方法or属性:off(type: string, listener?: WorkerEventListener): void;
旧版本信息:401,10200004|类名:ThreadWorker;
方法or属性:off(type: string, listener?: WorkerEventListener): void;
新版本信息:401,10200004,10200005|@ohos.worker.d.ts| +|type有变化|类名:Task;
方法or属性:arguments?: unknown[];
旧版本信息:|类名:Task;
方法or属性:arguments?: unknown[];
新版本信息:?unknown[]|@ohos.taskpool.d.ts| +|函数有变化|类名:process;
方法or属性:function runCmd(command: string,

options?: { timeout?: number, killSignal?: number \| string, maxBuffer?: number }): ChildProcess;|类名:process;
方法or属性:function runCmd(

command: string,

options?: ConditionType

): ChildProcess;|@ohos.process.d.ts| +|函数有变化|类名:Priority;
方法or属性:HIGH|类名:Priority;
方法or属性:HIGH = 0|@ohos.taskpool.d.ts| +|函数有变化|类名:Priority;
方法or属性:MEDIUM|类名:Priority;
方法or属性:MEDIUM = 1|@ohos.taskpool.d.ts| +|函数有变化|类名:Priority;
方法or属性:LOW|类名:Priority;
方法or属性:LOW = 2|@ohos.taskpool.d.ts| +|函数有变化|类名:Base64Helper;
方法or属性:encodeToStringSync(src: Uint8Array): string;|类名:Base64Helper;
方法or属性:encodeToStringSync(src: Uint8Array, options?: Type): string;|@ohos.util.d.ts| +|函数有变化|类名:Base64Helper;
方法or属性:decodeSync(src: Uint8Array \| string): Uint8Array;|类名:Base64Helper;
方法or属性:decodeSync(src: Uint8Array \| string, options?: Type): Uint8Array;|@ohos.util.d.ts| +|函数有变化|类名:Base64Helper;
方法or属性:encodeToString(src: Uint8Array): Promise\;|类名:Base64Helper;
方法or属性:encodeToString(src: Uint8Array, options?: Type): Promise\;|@ohos.util.d.ts| +|函数有变化|类名:Base64Helper;
方法or属性:decode(src: Uint8Array \| string): Promise\;|类名:Base64Helper;
方法or属性:decode(src: Uint8Array \| string, options?: Type): Promise\;|@ohos.util.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-customization.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-customization.md new file mode 100644 index 0000000000..83fa1ce20c --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-customization.md @@ -0,0 +1,64 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:browser;
方法or属性:function setPolicies(admin: Want, appId: string, policies: string, callback: AsyncCallback\): void;|@ohos.enterprise.browser.d.ts| +|新增|NA|类名:browser;
方法or属性:function setPolicies(admin: Want, appId: string, policies: string): Promise\;|@ohos.enterprise.browser.d.ts| +|新增|NA|类名:browser;
方法or属性:function getPolicies(admin: Want, appId: string, callback: AsyncCallback\): void;|@ohos.enterprise.browser.d.ts| +|新增|NA|类名:browser;
方法or属性:function getPolicies(admin: Want, appId: string): Promise\;|@ohos.enterprise.browser.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function addDisallowedUninstallBundles(admin: Want, appIds: Array\, callback: AsyncCallback\): void;|@ohos.enterprise.bundleManager.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function addDisallowedUninstallBundles(admin: Want, appIds: Array\, userId: number, callback: AsyncCallback\): void;|@ohos.enterprise.bundleManager.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function addDisallowedUninstallBundles(admin: Want, appIds: Array\, userId?: number): Promise\;|@ohos.enterprise.bundleManager.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function removeDisallowedUninstallBundles(admin: Want, appIds: Array\, callback: AsyncCallback\): void;|@ohos.enterprise.bundleManager.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function removeDisallowedUninstallBundles(admin: Want, appIds: Array\, userId: number, callback: AsyncCallback\): void;|@ohos.enterprise.bundleManager.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function removeDisallowedUninstallBundles(admin: Want, appIds: Array\, userId?: number): Promise\;|@ohos.enterprise.bundleManager.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function getDisallowedUninstallBundles(admin: Want, callback: AsyncCallback\>): void;|@ohos.enterprise.bundleManager.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function getDisallowedUninstallBundles(admin: Want, userId: number, callback: AsyncCallback\>): void;|@ohos.enterprise.bundleManager.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function getDisallowedUninstallBundles(admin: Want, userId?: number): Promise\>;|@ohos.enterprise.bundleManager.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function uninstall(admin: Want, bundleName: string, callback: AsyncCallback\): void;|@ohos.enterprise.bundleManager.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function uninstall(admin: Want, bundleName: string, userId: number, callback: AsyncCallback\): void;|@ohos.enterprise.bundleManager.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function uninstall(admin: Want, bundleName: string, isKeepData: boolean, callback: AsyncCallback\): void;|@ohos.enterprise.bundleManager.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function uninstall(admin: Want, bundleName: string, userId: number, isKeepData: boolean, callback: AsyncCallback\): void;|@ohos.enterprise.bundleManager.d.ts| +|新增|NA|类名:bundleManager;
方法or属性:function uninstall(admin: Want, bundleName: string, userId?: number, isKeepData?: boolean): Promise\;|@ohos.enterprise.bundleManager.d.ts| +|新增|NA|类名:deviceSettings;
方法or属性:function getScreenOffTime(admin: Want, callback: AsyncCallback\): void;|@ohos.enterprise.deviceSettings.d.ts| +|新增|NA|类名:deviceSettings;
方法or属性:function getScreenOffTime(admin: Want): Promise\;|@ohos.enterprise.deviceSettings.d.ts| +|新增|NA|类名:networkManager;
方法or属性:function addIptablesFilterRule(admin: Want, filterRule: AddFilterRule, callback: AsyncCallback\): void;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:networkManager;
方法or属性:function addIptablesFilterRule(admin: Want, filterRule: AddFilterRule): Promise\;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:networkManager;
方法or属性:function removeIptablesFilterRule(admin: Want, filterRule: RemoveFilterRule, callback: AsyncCallback\): void;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:networkManager;
方法or属性:function removeIptablesFilterRule(admin: Want, filterRule: RemoveFilterRule): Promise\;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:networkManager;
方法or属性:function listIptablesFilterRules(admin: Want, callback: AsyncCallback\): void;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:networkManager;
方法or属性:function listIptablesFilterRules(admin: Want): Promise\;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:AddMethod;
方法or属性:APPEND = 0|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:AddMethod;
方法or属性:INSERT = 1|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:Direction;
方法or属性:INPUT = 0|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:Direction;
方法or属性:OUTPUT = 1|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:Action;
方法or属性:ALLOW = 0|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:Action;
方法or属性:DENY = 1|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:Protocol;
方法or属性:ALL = 0|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:Protocol;
方法or属性:TCP = 1|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:Protocol;
方法or属性:UDP = 2|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:Protocol;
方法or属性:ICMP = 3|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:AddFilterRule;
方法or属性:ruleNo?: number;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:AddFilterRule;
方法or属性:srcAddr?: string;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:RemoveFilterRule;
方法or属性:srcAddr?: string;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:AddFilterRule;
方法or属性:destAddr?: string;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:RemoveFilterRule;
方法or属性:destAddr?: string;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:AddFilterRule;
方法or属性:srcPort?: string;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:RemoveFilterRule;
方法or属性:srcPort?: string;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:AddFilterRule;
方法or属性:destPort?: string;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:RemoveFilterRule;
方法or属性:destPort?: string;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:AddFilterRule;
方法or属性:uid?: string;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:RemoveFilterRule;
方法or属性:uid?: string;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:AddFilterRule;
方法or属性:method: AddMethod;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:AddFilterRule;
方法or属性:direction: Direction;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:RemoveFilterRule;
方法or属性:direction: Direction;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:AddFilterRule;
方法or属性:action: Action;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:AddFilterRule;
方法or属性:protocol?: Protocol;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:RemoveFilterRule;
方法or属性:protocol?: Protocol;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:RemoveFilterRule;
方法or属性:action?: Action;|@ohos.enterprise.networkManager.d.ts| +|新增|NA|类名:restrictions;
方法or属性:function setPrinterDisabled(admin: Want, disabled: boolean, callback: AsyncCallback\): void;|@ohos.enterprise.restrictions.d.ts| +|新增|NA|类名:restrictions;
方法or属性:function setPrinterDisabled(admin: Want, disabled: boolean): Promise\;|@ohos.enterprise.restrictions.d.ts| +|新增|NA|类名:restrictions;
方法or属性:function isPrinterDisabled(admin: Want, callback: AsyncCallback\): void;|@ohos.enterprise.restrictions.d.ts| +|新增|NA|类名:restrictions;
方法or属性:function isPrinterDisabled(admin: Want): Promise\;|@ohos.enterprise.restrictions.d.ts| +|新增|NA|类名:restrictions;
方法or属性:function setHdcDisabled(admin: Want, disabled: boolean, callback: AsyncCallback\): void;|@ohos.enterprise.restrictions.d.ts| +|新增|NA|类名:restrictions;
方法or属性:function setHdcDisabled(admin: Want, disabled: boolean): Promise\;|@ohos.enterprise.restrictions.d.ts| +|新增|NA|类名:restrictions;
方法or属性:function isHdcDisabled(admin: Want, callback: AsyncCallback\): void;|@ohos.enterprise.restrictions.d.ts| +|新增|NA|类名:restrictions;
方法or属性:function isHdcDisabled(admin: Want): Promise\;|@ohos.enterprise.restrictions.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-dfx.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-dfx.md new file mode 100644 index 0000000000..f65a4e78a5 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-dfx.md @@ -0,0 +1,54 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:hiSysEvent;
方法or属性:function exportSysEvents(queryArg: QueryArg, rules: QueryRule[]): number;|@ohos.hiSysEvent.d.ts| +|新增|NA|类名:hiSysEvent;
方法or属性:function subscribe(rules: QueryRule[]): number;|@ohos.hiSysEvent.d.ts| +|新增|NA|类名:hiSysEvent;
方法or属性:function unsubscribe(): void;|@ohos.hiSysEvent.d.ts| +|新增|NA|类名:QueryArg;
方法or属性:fromSeq?: number;|@ohos.hiSysEvent.d.ts| +|新增|NA|类名:QueryArg;
方法or属性:toSeq?: number;|@ohos.hiSysEvent.d.ts| +|新增|NA|类名:QueryRule;
方法or属性:condition?: string;|@ohos.hiSysEvent.d.ts| +|新增|NA|类名:logLibrary;
方法or属性:function list(logType: string): LogEntry[];|@ohos.logLibrary.d.ts| +|新增|NA|类名:logLibrary;
方法or属性:function copy(logType: string, logName: string, dest: string): Promise\;|@ohos.logLibrary.d.ts| +|新增|NA|类名:logLibrary;
方法or属性:function copy(logType: string, logName: string, dest: string, callback: AsyncCallback\): void;|@ohos.logLibrary.d.ts| +|新增|NA|类名:logLibrary;
方法or属性:function move(logType: string, logName: string, dest: string): Promise\;|@ohos.logLibrary.d.ts| +|新增|NA|类名:logLibrary;
方法or属性:function move(logType: string, logName: string, dest: string, callback: AsyncCallback\): void;|@ohos.logLibrary.d.ts| +|新增|NA|类名:logLibrary;
方法or属性:function remove(logType: string, logName: string): void;|@ohos.logLibrary.d.ts| +|新增|NA|类名:LogEntry;
方法or属性:name: string;|@ohos.logLibrary.d.ts| +|新增|NA|类名:LogEntry;
方法or属性:mtime: number;|@ohos.logLibrary.d.ts| +|新增|NA|类名:LogEntry;
方法or属性:size: number;|@ohos.logLibrary.d.ts| +|新增(错误码)|类名:hiSysEvent;
方法or属性:function write(info: SysEventInfo, callback: AsyncCallback\): void;
旧版本信息:|类名:hiSysEvent;
方法or属性:function write(info: SysEventInfo, callback: AsyncCallback\): void;
新版本信息:401,11200001,11200002,11200003,11200004,11200051,11200052,11200053,11200054|@ohos.hiSysEvent.d.ts| +|新增(错误码)|类名:hiAppEvent;
方法or属性:function write(info: AppEventInfo, callback: AsyncCallback\): void;
旧版本信息:|类名:hiAppEvent;
方法or属性:function write(info: AppEventInfo, callback: AsyncCallback\): void;
新版本信息:401,11100001,11101001,11101002,11101003,11101004,11101005,11101006|@ohos.hiviewdfx.hiAppEvent.d.ts| +|错误码有变化|类名:hiSysEvent;
方法or属性:function addWatcher(watcher: Watcher): void;
旧版本信息:201,401,11200101,11200102|类名:hiSysEvent;
方法or属性:function addWatcher(watcher: Watcher): void;
新版本信息:201,202,401,11200101,11200102|@ohos.hiSysEvent.d.ts| +|错误码有变化|类名:hiSysEvent;
方法or属性:function removeWatcher(watcher: Watcher): void;
旧版本信息:201,401,11200201|类名:hiSysEvent;
方法or属性:function removeWatcher(watcher: Watcher): void;
新版本信息:201,202,401,11200201|@ohos.hiSysEvent.d.ts| +|错误码有变化|类名:hiSysEvent;
方法or属性:function query(queryArg: QueryArg, rules: QueryRule[], querier: Querier): void;
旧版本信息:201,401,11200301,11200302,11200303,11200304|类名:hiSysEvent;
方法or属性:function query(queryArg: QueryArg, rules: QueryRule[], querier: Querier): void;
新版本信息:201,202,401,11200301,11200302,11200303,11200304|@ohos.hiSysEvent.d.ts| +|访问级别有变化|类名:hiSysEvent;
方法or属性:function write(info: SysEventInfo, callback: AsyncCallback\): void;
旧版本信息:|类名:hiSysEvent;
方法or属性:function write(info: SysEventInfo, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.hiSysEvent.d.ts| +|访问级别有变化|类名:SysEventInfo;
方法or属性:domain: string;
旧版本信息:|类名:SysEventInfo;
方法or属性:domain: string;
新版本信息:systemapi|@ohos.hiSysEvent.d.ts| +|访问级别有变化|类名:WatchRule;
方法or属性:domain: string;
旧版本信息:|类名:WatchRule;
方法or属性:domain: string;
新版本信息:systemapi|@ohos.hiSysEvent.d.ts| +|访问级别有变化|类名:QueryRule;
方法or属性:domain: string;
旧版本信息:|类名:QueryRule;
方法or属性:domain: string;
新版本信息:systemapi|@ohos.hiSysEvent.d.ts| +|访问级别有变化|类名:SysEventInfo;
方法or属性:name: string;
旧版本信息:|类名:SysEventInfo;
方法or属性:name: string;
新版本信息:systemapi|@ohos.hiSysEvent.d.ts| +|访问级别有变化|类名:WatchRule;
方法or属性:name: string;
旧版本信息:|类名:WatchRule;
方法or属性:name: string;
新版本信息:systemapi|@ohos.hiSysEvent.d.ts| +|访问级别有变化|类名:SysEventInfo;
方法or属性:eventType: EventType;
旧版本信息:|类名:SysEventInfo;
方法or属性:eventType: EventType;
新版本信息:systemapi|@ohos.hiSysEvent.d.ts| +|访问级别有变化|类名:SysEventInfo;
方法or属性:params: object;
旧版本信息:|类名:SysEventInfo;
方法or属性:params: object;
新版本信息:systemapi|@ohos.hiSysEvent.d.ts| +|访问级别有变化|类名:WatchRule;
方法or属性:tag: string;
旧版本信息:|类名:WatchRule;
方法or属性:tag: string;
新版本信息:systemapi|@ohos.hiSysEvent.d.ts| +|访问级别有变化|类名:WatchRule;
方法or属性:ruleType: RuleType;
旧版本信息:|类名:WatchRule;
方法or属性:ruleType: RuleType;
新版本信息:systemapi|@ohos.hiSysEvent.d.ts| +|访问级别有变化|类名:Watcher;
方法or属性:rules: WatchRule[];
旧版本信息:|类名:Watcher;
方法or属性:rules: WatchRule[];
新版本信息:systemapi|@ohos.hiSysEvent.d.ts| +|访问级别有变化|类名:QueryArg;
方法or属性:beginTime: number;
旧版本信息:|类名:QueryArg;
方法or属性:beginTime: number;
新版本信息:systemapi|@ohos.hiSysEvent.d.ts| +|访问级别有变化|类名:QueryArg;
方法or属性:endTime: number;
旧版本信息:|类名:QueryArg;
方法or属性:endTime: number;
新版本信息:systemapi|@ohos.hiSysEvent.d.ts| +|访问级别有变化|类名:QueryArg;
方法or属性:maxEvents: number;
旧版本信息:|类名:QueryArg;
方法or属性:maxEvents: number;
新版本信息:systemapi|@ohos.hiSysEvent.d.ts| +|访问级别有变化|类名:QueryRule;
方法or属性:names: string[];
旧版本信息:|类名:QueryRule;
方法or属性:names: string[];
新版本信息:systemapi|@ohos.hiSysEvent.d.ts| +|type有变化|类名:SysEventInfo;
方法or属性:domain: string;
旧版本信息:|类名:SysEventInfo;
方法or属性:domain: string;
新版本信息:string|@ohos.hiSysEvent.d.ts| +|type有变化|类名:WatchRule;
方法or属性:domain: string;
旧版本信息:|类名:WatchRule;
方法or属性:domain: string;
新版本信息:string|@ohos.hiSysEvent.d.ts| +|type有变化|类名:QueryRule;
方法or属性:domain: string;
旧版本信息:|类名:QueryRule;
方法or属性:domain: string;
新版本信息:string|@ohos.hiSysEvent.d.ts| +|type有变化|类名:SysEventInfo;
方法or属性:name: string;
旧版本信息:|类名:SysEventInfo;
方法or属性:name: string;
新版本信息:string|@ohos.hiSysEvent.d.ts| +|type有变化|类名:WatchRule;
方法or属性:name: string;
旧版本信息:|类名:WatchRule;
方法or属性:name: string;
新版本信息:string|@ohos.hiSysEvent.d.ts| +|type有变化|类名:SysEventInfo;
方法or属性:eventType: EventType;
旧版本信息:|类名:SysEventInfo;
方法or属性:eventType: EventType;
新版本信息:EventType|@ohos.hiSysEvent.d.ts| +|type有变化|类名:SysEventInfo;
方法or属性:params: object;
旧版本信息:|类名:SysEventInfo;
方法or属性:params: object;
新版本信息:object|@ohos.hiSysEvent.d.ts| +|type有变化|类名:WatchRule;
方法or属性:tag: string;
旧版本信息:|类名:WatchRule;
方法or属性:tag: string;
新版本信息:string|@ohos.hiSysEvent.d.ts| +|type有变化|类名:WatchRule;
方法or属性:ruleType: RuleType;
旧版本信息:|类名:WatchRule;
方法or属性:ruleType: RuleType;
新版本信息:RuleType|@ohos.hiSysEvent.d.ts| +|type有变化|类名:QueryArg;
方法or属性:beginTime: number;
旧版本信息:|类名:QueryArg;
方法or属性:beginTime: number;
新版本信息:number|@ohos.hiSysEvent.d.ts| +|type有变化|类名:QueryArg;
方法or属性:endTime: number;
旧版本信息:|类名:QueryArg;
方法or属性:endTime: number;
新版本信息:number|@ohos.hiSysEvent.d.ts| +|type有变化|类名:QueryArg;
方法or属性:maxEvents: number;
旧版本信息:|类名:QueryArg;
方法or属性:maxEvents: number;
新版本信息:number|@ohos.hiSysEvent.d.ts| +|type有变化|类名:QueryRule;
方法or属性:names: string[];
旧版本信息:|类名:QueryRule;
方法or属性:names: string[];
新版本信息:string[]|@ohos.hiSysEvent.d.ts| +|type有变化|类名:HiTraceId;
方法or属性:chainId: bigint;
旧版本信息:|类名:HiTraceId;
方法or属性:chainId: bigint;
新版本信息:bigint|@ohos.hiTraceChain.d.ts| +|type有变化|类名:HiTraceId;
方法or属性:spanId?: number;
旧版本信息:|类名:HiTraceId;
方法or属性:spanId?: number;
新版本信息:?number|@ohos.hiTraceChain.d.ts| +|type有变化|类名:HiTraceId;
方法or属性:parentSpanId?: number;
旧版本信息:|类名:HiTraceId;
方法or属性:parentSpanId?: number;
新版本信息:?number|@ohos.hiTraceChain.d.ts| +|type有变化|类名:HiTraceId;
方法or属性:flags?: number;
旧版本信息:|类名:HiTraceId;
方法or属性:flags?: number;
新版本信息:?number|@ohos.hiTraceChain.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-distributed-data.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-distributed-data.md new file mode 100644 index 0000000000..e0eaf15590 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-distributed-data.md @@ -0,0 +1,123 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|删除|类名:Action;
方法or属性:CLEAR_CLOUD_INFO|NA|@ohos.data.cloudData.d.ts| +|删除|类名:Action;
方法or属性:CLEAR_CLOUD_DATA_AND_INFO|NA|@ohos.data.cloudData.d.ts| +|新增|NA|类名:ClearAction;
方法or属性:CLEAR_CLOUD_INFO|@ohos.data.cloudData.d.ts| +|新增|NA|类名:ClearAction;
方法or属性:CLEAR_CLOUD_DATA_AND_INFO|@ohos.data.cloudData.d.ts| +|新增|NA|类名:Config;
方法or属性:static clear(
accountId: string,
appActions: { [bundleName: string]: ClearAction },
callback: AsyncCallback\
): void;|@ohos.data.cloudData.d.ts| +|新增|NA|类名:Config;
方法or属性:static clear(accountId: string, appActions: { [bundleName: string]: ClearAction }): Promise\;|@ohos.data.cloudData.d.ts| +|新增|NA|类名:preferences;
方法or属性:function getPreferences(context: Context, options: Options, callback: AsyncCallback\): void;|@ohos.data.preferences.d.ts| +|新增|NA|类名:preferences;
方法or属性:function getPreferences(context: Context, options: Options): Promise\;|@ohos.data.preferences.d.ts| +|新增|NA|类名:preferences;
方法or属性:function deletePreferences(context: Context, options: Options, callback: AsyncCallback\): void;|@ohos.data.preferences.d.ts| +|新增|NA|类名:preferences;
方法or属性:function deletePreferences(context: Context, options: Options): Promise\;|@ohos.data.preferences.d.ts| +|新增|NA|类名:preferences;
方法or属性:function removePreferencesFromCache(context: Context, options: Options, callback: AsyncCallback\): void;|@ohos.data.preferences.d.ts| +|新增|NA|类名:preferences;
方法or属性:function removePreferencesFromCache(context: Context, options: Options): Promise\;|@ohos.data.preferences.d.ts| +|新增|NA|类名:preferences;
方法or属性:function removePreferencesFromCacheSync(context: Context, name: string): void;|@ohos.data.preferences.d.ts| +|新增|NA|类名:Options;
方法or属性:name: string;|@ohos.data.preferences.d.ts| +|新增|NA|类名:Options;
方法or属性:dataGroupId?: string;|@ohos.data.preferences.d.ts| +|新增|NA|类名:Preferences;
方法or属性:getSync(key: string, defValue: ValueType): ValueType;|@ohos.data.preferences.d.ts| +|新增|NA|类名:Preferences;
方法or属性:getAllSync(): Object;|@ohos.data.preferences.d.ts| +|新增|NA|类名:Preferences;
方法or属性:hasSync(key: string): boolean;|@ohos.data.preferences.d.ts| +|新增|NA|类名:Preferences;
方法or属性:putSync(key: string, value: ValueType): void;|@ohos.data.preferences.d.ts| +|新增|NA|类名:Preferences;
方法or属性:deleteSync(key: string): void;|@ohos.data.preferences.d.ts| +|新增|NA|类名:Preferences;
方法or属性:clearSync(): void;|@ohos.data.preferences.d.ts| +|新增|NA|类名:Preferences;
方法or属性:on(type: 'multiProcessChange', callback: Callback\<{ key: string }>): void;|@ohos.data.preferences.d.ts| +|新增|NA|类名:Preferences;
方法or属性:off(type: 'multiProcessChange', callback?: Callback\<{ key: string }>): void;|@ohos.data.preferences.d.ts| +|新增|NA|类名:relationalStore;
方法or属性:type Assets = Asset[];|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:relationalStore;
方法or属性:type PRIKeyType = number \| string;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:relationalStore;
方法or属性:type UTCTime = Date;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:relationalStore;
方法or属性:type ModifyTime = Map\;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:relationalStore;
方法or属性:function deleteRdbStore(context: Context, config: StoreConfig, callback: AsyncCallback\): void;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:relationalStore;
方法or属性:function deleteRdbStore(context: Context, config: StoreConfig): Promise\;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:AssetStatus;
方法or属性:ASSET_NORMAL|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:AssetStatus;
方法or属性:ASSET_INSERT|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:AssetStatus;
方法or属性:ASSET_UPDATE|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:AssetStatus;
方法or属性:ASSET_DELETE|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:AssetStatus;
方法or属性:ASSET_ABNORMAL|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:AssetStatus;
方法or属性:ASSET_DOWNLOADING|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:Asset;
方法or属性:name: string;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:Asset;
方法or属性:uri: string;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:Asset;
方法or属性:path: string;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:Asset;
方法or属性:createTime: string;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:Asset;
方法or属性:modifyTime: string;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:Asset;
方法or属性:size: string;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:Asset;
方法or属性:status?: AssetStatus;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:StoreConfig;
方法or属性:dataGroupId?: string;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:Progress;
方法or属性:SYNC_BEGIN|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:Progress;
方法or属性:SYNC_IN_PROGRESS|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:Progress;
方法or属性:SYNC_FINISH|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:Statistic;
方法or属性:total: number;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:Statistic;
方法or属性:successful: number;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:Statistic;
方法or属性:failed: number;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:Statistic;
方法or属性:remained: number;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:TableDetails;
方法or属性:upload: Statistic;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:TableDetails;
方法or属性:download: Statistic;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ProgressCode;
方法or属性:SUCCESS|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ProgressCode;
方法or属性:UNKNOWN_ERROR|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ProgressCode;
方法or属性:NETWORK_ERROR|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ProgressCode;
方法or属性:CLOUD_DISABLED|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ProgressCode;
方法or属性:LOCKED_BY_OTHERS|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ProgressCode;
方法or属性:RECORD_LIMIT_EXCEEDED|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ProgressCode;
方法or属性:NO_SPACE_FOR_ASSET|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ProgressDetails;
方法or属性:schedule: Progress;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ProgressDetails;
方法or属性:code: ProgressCode;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ProgressDetails;
方法or属性:details: {
[table: string]: TableDetails;
};|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:SyncMode;
方法or属性:SYNC_MODE_TIME_FIRST|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:SyncMode;
方法or属性:SYNC_MODE_NATIVE_FIRST|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:SyncMode;
方法or属性:SYNC_MODE_CLOUD_FIRST|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:SubscribeType;
方法or属性:SUBSCRIBE_TYPE_CLOUD_DETAILS|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ChangeType;
方法or属性:DATA_CHANGE|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ChangeType;
方法or属性:ASSET_CHANGE|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ChangeInfo;
方法or属性:table: string;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ChangeInfo;
方法or属性:type: ChangeType;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ChangeInfo;
方法or属性:inserted: Array\ \| Array\;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ChangeInfo;
方法or属性:updated: Array\ \| Array\;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ChangeInfo;
方法or属性:deleted: Array\ \| Array\;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:DistributedType;
方法or属性:DISTRIBUTED_DEVICE|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:DistributedType;
方法or属性:DISTRIBUTED_CLOUD|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:DistributedConfig;
方法or属性:autoSync: boolean;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ResultSet;
方法or属性:getAsset(columnIndex: number): Asset;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:ResultSet;
方法or属性:getAssets(columnIndex: number): Assets;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:RdbStore;
方法or属性:getModifyTime(table: string, columnName: string, primaryKeys: PRIKeyType[]): Promise\;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:RdbStore;
方法or属性:getModifyTime(
table: string,
columnName: string,
primaryKeys: PRIKeyType[],
callback: AsyncCallback\
): void;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:RdbStore;
方法or属性:setDistributedTables(tables: Array\, type: DistributedType, callback: AsyncCallback\): void;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:RdbStore;
方法or属性:setDistributedTables(
tables: Array\,
type: DistributedType,
config: DistributedConfig,
callback: AsyncCallback\
): void;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:RdbStore;
方法or属性:setDistributedTables(tables: Array\, type?: DistributedType, config?: DistributedConfig): Promise\;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:RdbStore;
方法or属性:cloudSync(mode: SyncMode, progress: Callback\, callback: AsyncCallback\): void;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:RdbStore;
方法or属性:cloudSync(mode: SyncMode, progress: Callback\): Promise\;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:RdbStore;
方法or属性:cloudSync(
mode: SyncMode,
tables: string[],
progress: Callback\,
callback: AsyncCallback\
): void;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:RdbStore;
方法or属性:cloudSync(mode: SyncMode, tables: string[], progress: Callback\): Promise\;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:RdbStore;
方法or属性:on(event: 'dataChange', type: SubscribeType, observer: Callback\> \| Callback\>): void;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:RdbStore;
方法or属性:on(event: string, interProcess: boolean, observer: Callback\): void;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:RdbStore;
方法or属性:off(
event: 'dataChange',
type: SubscribeType,
observer?: Callback\> \| Callback\>
): void;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:RdbStore;
方法or属性:off(event: string, interProcess: boolean, observer?: Callback\): void;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:RdbStore;
方法or属性:emit(event: string): void;|@ohos.data.relationalStore.d.ts| +|新增|NA|类名:UDMF;
方法or属性:type Options = {
/**
* indicates the target Intention
*
* @syscap SystemCapability.DistributedDataManager.UDMF.Core
* @since 10
*/
intention?: Intention;

/**
* indicates the unique identifier of target UnifiedData
*
* @syscap SystemCapability.DistributedDataManager.UDMF.Core
* @since 10
*/
key?: string;
};|@ohos.data.UDMF.d.ts| +|新增|NA|类名:UDMF;
方法or属性:function insertData(options: Options, data: UnifiedData, callback: AsyncCallback\): void;|@ohos.data.UDMF.d.ts| +|新增|NA|类名:UDMF;
方法or属性:function insertData(options: Options, data: UnifiedData): Promise\;|@ohos.data.UDMF.d.ts| +|新增|NA|类名:UDMF;
方法or属性:function updateData(options: Options, data: UnifiedData, callback: AsyncCallback\): void;|@ohos.data.UDMF.d.ts| +|新增|NA|类名:UDMF;
方法or属性:function updateData(options: Options, data: UnifiedData): Promise\;|@ohos.data.UDMF.d.ts| +|新增|NA|类名:UDMF;
方法or属性:function queryData(options: Options, callback: AsyncCallback\>): void;|@ohos.data.UDMF.d.ts| +|新增|NA|类名:UDMF;
方法or属性:function queryData(options: Options): Promise\>;|@ohos.data.UDMF.d.ts| +|新增|NA|类名:UDMF;
方法or属性:function deleteData(options: Options, callback: AsyncCallback\>): void;|@ohos.data.UDMF.d.ts| +|新增|NA|类名:UDMF;
方法or属性:function deleteData(options: Options): Promise\>;|@ohos.data.UDMF.d.ts| +|新增|NA|类名:UnifiedDataType;
方法or属性:AUDIO = 'File.Media.Audio'|@ohos.data.UDMF.d.ts| +|新增|NA|类名:Audio;
方法or属性:audioUri: string;|@ohos.data.UDMF.d.ts| +|新增|NA|类名:Intention;
方法or属性:DATA_HUB = 'DataHub'|@ohos.data.UDMF.d.ts| +|错误码有变化|类名:DataAbilityPredicates;
方法or属性:limitAs(value: number): DataAbilityPredicates;
旧版本信息:IllegalPredicateException|类名:DataAbilityPredicates;
方法or属性:limitAs(value: number): DataAbilityPredicates;
新版本信息:|@ohos.data.dataAbility.d.ts| +|错误码有变化|类名:relationalStore;
方法or属性:function getRdbStore(context: Context, config: StoreConfig, callback: AsyncCallback\): void;
旧版本信息:401,14800000,14800010,14800011|类名:relationalStore;
方法or属性:function getRdbStore(context: Context, config: StoreConfig, callback: AsyncCallback\): void;
新版本信息:401,14800000,14800010,14800011,14801001,14801002|@ohos.data.relationalStore.d.ts| +|错误码有变化|类名:relationalStore;
方法or属性:function getRdbStore(context: Context, config: StoreConfig): Promise\;
旧版本信息:401,14800000,14800010,14800011|类名:relationalStore;
方法or属性:function getRdbStore(context: Context, config: StoreConfig): Promise\;
新版本信息:401,14800000,14800010,14800011,14801001,14801002|@ohos.data.relationalStore.d.ts| +|访问级别有变化|类名:dataSharePredicates;
方法or属性:declare dataSharePredicates
旧版本信息:systemapi|类名:dataSharePredicates;
方法or属性:declare dataSharePredicates
新版本信息:|@ohos.data.dataSharePredicates.d.ts| +|访问级别有变化|类名:DataSharePredicates;
方法or属性:class DataSharePredicates
旧版本信息:systemapi|类名:DataSharePredicates;
方法or属性:class DataSharePredicates
新版本信息:|@ohos.data.dataSharePredicates.d.ts| +|访问级别有变化|类名:DataSharePredicates;
方法or属性:equalTo(field: string, value: ValueType): DataSharePredicates;
旧版本信息:systemapi|类名:DataSharePredicates;
方法or属性:equalTo(field: string, value: ValueType): DataSharePredicates;
新版本信息:|@ohos.data.dataSharePredicates.d.ts| +|访问级别有变化|类名:DataSharePredicates;
方法or属性:and(): DataSharePredicates;
旧版本信息:systemapi|类名:DataSharePredicates;
方法or属性:and(): DataSharePredicates;
新版本信息:|@ohos.data.dataSharePredicates.d.ts| +|访问级别有变化|类名:DataSharePredicates;
方法or属性:orderByAsc(field: string): DataSharePredicates;
旧版本信息:systemapi|类名:DataSharePredicates;
方法or属性:orderByAsc(field: string): DataSharePredicates;
新版本信息:|@ohos.data.dataSharePredicates.d.ts| +|访问级别有变化|类名:DataSharePredicates;
方法or属性:orderByDesc(field: string): DataSharePredicates;
旧版本信息:systemapi|类名:DataSharePredicates;
方法or属性:orderByDesc(field: string): DataSharePredicates;
新版本信息:|@ohos.data.dataSharePredicates.d.ts| +|访问级别有变化|类名:DataSharePredicates;
方法or属性:limit(total: number, offset: number): DataSharePredicates;
旧版本信息:systemapi|类名:DataSharePredicates;
方法or属性:limit(total: number, offset: number): DataSharePredicates;
新版本信息:|@ohos.data.dataSharePredicates.d.ts| +|访问级别有变化|类名:DataSharePredicates;
方法or属性:in(field: string, value: Array\): DataSharePredicates;
旧版本信息:systemapi|类名:DataSharePredicates;
方法or属性:in(field: string, value: Array\): DataSharePredicates;
新版本信息:|@ohos.data.dataSharePredicates.d.ts| +|访问级别有变化|类名:sourcefile;
方法or属性:export type ValueType = number \| string \| boolean;
旧版本信息:systemapi|类名:sourcefile;
方法or属性:export type ValueType = number \| string \| boolean;
新版本信息:|@ohos.data.ValuesBucket.d.ts| +|访问级别有变化|类名:sourcefile;
方法or属性:export type ValuesBucket = {

[key: string]: ValueType \| Uint8Array \| null;

};
旧版本信息:systemapi|类名:sourcefile;
方法or属性:export type ValuesBucket = {

[key: string]: ValueType \| Uint8Array \| null;

};
新版本信息:|@ohos.data.ValuesBucket.d.ts| +|type有变化|类名:DataShareExtensionAbility;
方法or属性:context: ExtensionContext;
旧版本信息:|类名:DataShareExtensionAbility;
方法or属性:context: ExtensionContext;
新版本信息:ExtensionContext|@ohos.application.DataShareExtensionAbility.d.ts| +|函数有变化|类名:DataShareExtensionAbility;
方法or属性:context?: ExtensionContext;|类名:DataShareExtensionAbility;
方法or属性:context: ExtensionContext;|@ohos.application.DataShareExtensionAbility.d.ts| +|函数有变化|类名:PublishedItem;
方法or属性:data: string \| Ashmem;|类名:PublishedItem;
方法or属性:data: string \| ArrayBuffer;|@ohos.data.dataShare.d.ts| +|函数有变化|类名:relationalStore;
方法or属性:type ValueType = null \| number \| string \| boolean \| Uint8Array;|类名:relationalStore;
方法or属性:type ValueType = null \| number \| string \| boolean \| Uint8Array \| Asset \| Assets;|@ohos.data.relationalStore.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-distributed-hardware.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-distributed-hardware.md new file mode 100644 index 0000000000..d50d73313f --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-distributed-hardware.md @@ -0,0 +1,158 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:distributedDeviceManager;
方法or属性:function createDeviceManager(bundleName: string): DeviceManager;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:distributedDeviceManager;
方法or属性:function releaseDeviceManager(deviceManager: DeviceManager): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceBasicInfo;
方法or属性:deviceId: string;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceBasicInfo;
方法or属性:deviceName: string;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceBasicInfo;
方法or属性:deviceType: number;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceBasicInfo;
方法or属性:networkId?: string;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceStateChange;
方法or属性:UNKNOWN = 0|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceStateChange;
方法or属性:AVAILABLE = 1|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceStateChange;
方法or属性:UNAVAILABLE = 2|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:getAvailableDeviceListSync(): Array\;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:getAvailableDeviceList(callback: AsyncCallback\>): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:getAvailableDeviceList(): Promise\>;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:getLocalDeviceNetworkId(): string;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:getLocalDeviceName(): string;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:getLocalDeviceType(): number;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:getLocalDeviceId(): string;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:getDeviceName(networkId: string): string;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:getDeviceType(networkId: string): number;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:startDiscovering(discoverParam: { [key: string]: Object }, filterOptions?: { [key: string]: Object }): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:stopDiscovering(): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:bindTarget(deviceId: string, bindParam: { [key: string]: Object }, callback: AsyncCallback\<{deviceId: string}>): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:unbindTarget(deviceId: string): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:replyUiAction(action: number, actionResult: string): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:on(type: 'deviceStateChange', callback: Callback\<{ action: DeviceStateChange, device: DeviceBasicInfo }>): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:on(type: 'discoverSuccess', callback: Callback\<{ device: DeviceBasicInfo }>): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:on(type: 'deviceNameChange', callback: Callback\<{ deviceName: string }>): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:on(type: 'discoverFailure', callback: Callback\<{ reason: number }>): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:on(type: 'serviceDie', callback?: Callback\<{}>): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:on(type: 'replyResult', callback: Callback\<{ param: string }>): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:off(type: 'deviceStateChange', callback?: Callback\<{ action: DeviceStateChange, device: DeviceBasicInfo }>): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:off(type: 'discoverSuccess', callback?: Callback\<{ device: DeviceBasicInfo }>): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:off(type: 'deviceNameChange', callback?: Callback\<{ deviceName: string }>): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:off(type: 'discoverFailure', callback?: Callback\<{ reason: number }>): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:off(type: 'serviceDie', callback?: Callback\<{}>): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:off(type: 'replyResult', callback?: Callback\<{ param: string }>): void;|@ohos.distributedDeviceManager.d.ts| +|新增|NA|类名:DeviceManager;
方法or属性:getTrustedDeviceListSync(isRefresh: boolean): Array\;|@ohos.distributedHardware.deviceManager.d.ts| +|新增(错误码)|类名:DeviceManager;
方法or属性:getTrustedDeviceList(): Promise\>;
旧版本信息:|类名:DeviceManager;
方法or属性:getTrustedDeviceList(): Promise\>;
新版本信息:202|@ohos.distributedHardware.deviceManager.d.ts| +|新增(错误码)|类名:DeviceManager;
方法or属性:getLocalDeviceInfo(): Promise\;
旧版本信息:|类名:DeviceManager;
方法or属性:getLocalDeviceInfo(): Promise\;
新版本信息:202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:deviceManager;
方法or属性:function createDeviceManager(bundleName: string, callback: AsyncCallback\): void;
旧版本信息:401|类名:deviceManager;
方法or属性:function createDeviceManager(bundleName: string, callback: AsyncCallback\): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:release(): void;
旧版本信息:11600101|类名:DeviceManager;
方法or属性:release(): void;
新版本信息:202,201,11600101|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:getTrustedDeviceListSync(): Array\;
旧版本信息:11600101|类名:DeviceManager;
方法or属性:getTrustedDeviceListSync(): Array\;
新版本信息:202,201,11600101|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:getTrustedDeviceList(callback: AsyncCallback\>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:getTrustedDeviceList(callback: AsyncCallback\>): void;
新版本信息:202,401|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:getLocalDeviceInfoSync(): DeviceInfo;
旧版本信息:11600101|类名:DeviceManager;
方法or属性:getLocalDeviceInfoSync(): DeviceInfo;
新版本信息:202,201,11600101|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:getLocalDeviceInfo(callback: AsyncCallback\): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:getLocalDeviceInfo(callback: AsyncCallback\): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:getDeviceInfo(networkId: string, callback: AsyncCallback\): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:getDeviceInfo(networkId: string, callback: AsyncCallback\): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:getDeviceInfo(networkId: string): Promise\;
旧版本信息:401|类名:DeviceManager;
方法or属性:getDeviceInfo(networkId: string): Promise\;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:startDeviceDiscovery(subscribeInfo: SubscribeInfo): void;
旧版本信息:401,201,11600104,11600101|类名:DeviceManager;
方法or属性:startDeviceDiscovery(subscribeInfo: SubscribeInfo): void;
新版本信息:401,202,201,11600104,11600101|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:startDeviceDiscovery(subscribeInfo: SubscribeInfo, filterOptions?: string): void;
旧版本信息:401,201,11600104,11600101|类名:DeviceManager;
方法or属性:startDeviceDiscovery(subscribeInfo: SubscribeInfo, filterOptions?: string): void;
新版本信息:401,202,201,11600104,11600101|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:stopDeviceDiscovery(subscribeId: number): void;
旧版本信息:401,201,11600101|类名:DeviceManager;
方法or属性:stopDeviceDiscovery(subscribeId: number): void;
新版本信息:401,202,201,11600101|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:publishDeviceDiscovery(publishInfo: PublishInfo): void;
旧版本信息:401,201,11600105,11600101|类名:DeviceManager;
方法or属性:publishDeviceDiscovery(publishInfo: PublishInfo): void;
新版本信息:401,202,201,11600105,11600101|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:unPublishDeviceDiscovery(publishId: number): void;
旧版本信息:401,201,11600101|类名:DeviceManager;
方法or属性:unPublishDeviceDiscovery(publishId: number): void;
新版本信息:401,202,201,11600101|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:authenticateDevice(
deviceInfo: DeviceInfo,
authParam: AuthParam,
callback: AsyncCallback\<{ deviceId: string, pinToken?: number }>
): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:authenticateDevice(
deviceInfo: DeviceInfo,
authParam: AuthParam,
callback: AsyncCallback\<{ deviceId: string, pinToken?: number }>
): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:unAuthenticateDevice(deviceInfo: DeviceInfo): void;
旧版本信息:401,201,11600101|类名:DeviceManager;
方法or属性:unAuthenticateDevice(deviceInfo: DeviceInfo): void;
新版本信息:401,202,201,11600101|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:verifyAuthInfo(authInfo: AuthInfo, callback: AsyncCallback\<{ deviceId: string, level: number }>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:verifyAuthInfo(authInfo: AuthInfo, callback: AsyncCallback\<{ deviceId: string, level: number }>): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:setUserOperation(operateAction: number, params: string): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:setUserOperation(operateAction: number, params: string): void;
新版本信息:401,202,201|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:requestCredentialRegisterInfo(requestInfo: string, callback: AsyncCallback\<{ registerInfo: string }>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:requestCredentialRegisterInfo(requestInfo: string, callback: AsyncCallback\<{ registerInfo: string }>): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:importCredential(credentialInfo: string, callback: AsyncCallback\<{ resultInfo: string }>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:importCredential(credentialInfo: string, callback: AsyncCallback\<{ resultInfo: string }>): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:deleteCredential(queryInfo: string, callback: AsyncCallback\<{ resultInfo: string }>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:deleteCredential(queryInfo: string, callback: AsyncCallback\<{ resultInfo: string }>): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:on(type: 'uiStateChange', callback: Callback\<{ param: string }>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:on(type: 'uiStateChange', callback: Callback\<{ param: string }>): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:on(type: 'deviceStateChange', callback: Callback\<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:on(type: 'deviceStateChange', callback: Callback\<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:on(type: 'deviceFound', callback: Callback\<{ subscribeId: number, device: DeviceInfo }>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:on(type: 'deviceFound', callback: Callback\<{ subscribeId: number, device: DeviceInfo }>): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:on(type: 'discoverFail', callback: Callback\<{ subscribeId: number, reason: number }>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:on(type: 'discoverFail', callback: Callback\<{ subscribeId: number, reason: number }>): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:on(type: 'publishSuccess', callback: Callback\<{ publishId: number }>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:on(type: 'publishSuccess', callback: Callback\<{ publishId: number }>): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:on(type: 'publishFail', callback: Callback\<{ publishId: number, reason: number }>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:on(type: 'publishFail', callback: Callback\<{ publishId: number, reason: number }>): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:on(type: 'serviceDie', callback: () => void): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:on(type: 'serviceDie', callback: () => void): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:off(type: 'uiStateChange', callback?: Callback\<{ param: string }>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:off(type: 'uiStateChange', callback?: Callback\<{ param: string }>): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:off(type: 'deviceStateChange', callback?: Callback\<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:off(type: 'deviceStateChange', callback?: Callback\<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:off(type: 'deviceFound', callback?: Callback\<{ subscribeId: number, device: DeviceInfo }>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:off(type: 'deviceFound', callback?: Callback\<{ subscribeId: number, device: DeviceInfo }>): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:off(type: 'discoverFail', callback?: Callback\<{ subscribeId: number, reason: number }>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:off(type: 'discoverFail', callback?: Callback\<{ subscribeId: number, reason: number }>): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:off(type: 'publishSuccess', callback?: Callback\<{ publishId: number }>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:off(type: 'publishSuccess', callback?: Callback\<{ publishId: number }>): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:off(type: 'publishFail', callback?: Callback\<{ publishId: number, reason: number }>): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:off(type: 'publishFail', callback?: Callback\<{ publishId: number, reason: number }>): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|错误码有变化|类名:DeviceManager;
方法or属性:off(type: 'serviceDie', callback?: () => void): void;
旧版本信息:401|类名:DeviceManager;
方法or属性:off(type: 'serviceDie', callback?: () => void): void;
新版本信息:401,202|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceInfo;
方法or属性:deviceId: string;
旧版本信息:|类名:DeviceInfo;
方法or属性:deviceId: string;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceInfo;
方法or属性:deviceName: string;
旧版本信息:|类名:DeviceInfo;
方法or属性:deviceName: string;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceInfo;
方法or属性:deviceType: DeviceType;
旧版本信息:|类名:DeviceInfo;
方法or属性:deviceType: DeviceType;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceInfo;
方法or属性:networkId: string;
旧版本信息:|类名:DeviceInfo;
方法or属性:networkId: string;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceInfo;
方法or属性:range: number;
旧版本信息:|类名:DeviceInfo;
方法or属性:range: number;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceInfo;
方法or属性:authForm: AuthForm;
旧版本信息:|类名:DeviceInfo;
方法or属性:authForm: AuthForm;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:AuthForm;
方法or属性:INVALID_TYPE = -1
旧版本信息:|类名:AuthForm;
方法or属性:INVALID_TYPE = -1
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:AuthForm;
方法or属性:PEER_TO_PEER = 0
旧版本信息:|类名:AuthForm;
方法or属性:PEER_TO_PEER = 0
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:AuthForm;
方法or属性:IDENTICAL_ACCOUNT = 1
旧版本信息:|类名:AuthForm;
方法or属性:IDENTICAL_ACCOUNT = 1
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:AuthForm;
方法or属性:ACROSS_ACCOUNT = 2
旧版本信息:|类名:AuthForm;
方法or属性:ACROSS_ACCOUNT = 2
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceType;
方法or属性:UNKNOWN_TYPE = 0
旧版本信息:|类名:DeviceType;
方法or属性:UNKNOWN_TYPE = 0
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceType;
方法or属性:SPEAKER = 0x0A
旧版本信息:|类名:DeviceType;
方法or属性:SPEAKER = 0x0A
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceType;
方法or属性:PHONE = 0x0E
旧版本信息:|类名:DeviceType;
方法or属性:PHONE = 0x0E
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceType;
方法or属性:TABLET = 0x11
旧版本信息:|类名:DeviceType;
方法or属性:TABLET = 0x11
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceType;
方法or属性:WEARABLE = 0x6D
旧版本信息:|类名:DeviceType;
方法or属性:WEARABLE = 0x6D
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceType;
方法or属性:CAR = 0x83
旧版本信息:|类名:DeviceType;
方法or属性:CAR = 0x83
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceType;
方法or属性:TV = 0x9C
旧版本信息:|类名:DeviceType;
方法or属性:TV = 0x9C
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceStateChangeAction;
方法or属性:ONLINE = 0
旧版本信息:|类名:DeviceStateChangeAction;
方法or属性:ONLINE = 0
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceStateChangeAction;
方法or属性:READY = 1
旧版本信息:|类名:DeviceStateChangeAction;
方法or属性:READY = 1
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceStateChangeAction;
方法or属性:OFFLINE = 2
旧版本信息:|类名:DeviceStateChangeAction;
方法or属性:OFFLINE = 2
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DeviceStateChangeAction;
方法or属性:CHANGE = 3
旧版本信息:|类名:DeviceStateChangeAction;
方法or属性:CHANGE = 3
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:SubscribeInfo;
方法or属性:subscribeId: number;
旧版本信息:|类名:SubscribeInfo;
方法or属性:subscribeId: number;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:SubscribeInfo;
方法or属性:mode: DiscoverMode;
旧版本信息:|类名:SubscribeInfo;
方法or属性:mode: DiscoverMode;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:PublishInfo;
方法or属性:mode: DiscoverMode;
旧版本信息:|类名:PublishInfo;
方法or属性:mode: DiscoverMode;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:SubscribeInfo;
方法or属性:medium: ExchangeMedium;
旧版本信息:|类名:SubscribeInfo;
方法or属性:medium: ExchangeMedium;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:SubscribeInfo;
方法or属性:freq: ExchangeFreq;
旧版本信息:|类名:SubscribeInfo;
方法or属性:freq: ExchangeFreq;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:PublishInfo;
方法or属性:freq: ExchangeFreq;
旧版本信息:|类名:PublishInfo;
方法or属性:freq: ExchangeFreq;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:SubscribeInfo;
方法or属性:isSameAccount: boolean;
旧版本信息:|类名:SubscribeInfo;
方法or属性:isSameAccount: boolean;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:SubscribeInfo;
方法or属性:isWakeRemote: boolean;
旧版本信息:|类名:SubscribeInfo;
方法or属性:isWakeRemote: boolean;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:SubscribeInfo;
方法or属性:capability: SubscribeCap;
旧版本信息:|类名:SubscribeInfo;
方法or属性:capability: SubscribeCap;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:PublishInfo;
方法or属性:publishId: number;
旧版本信息:|类名:PublishInfo;
方法or属性:publishId: number;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:PublishInfo;
方法or属性:ranging: boolean;
旧版本信息:|类名:PublishInfo;
方法or属性:ranging: boolean;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DiscoverMode;
方法or属性:DISCOVER_MODE_PASSIVE = 0x55
旧版本信息:|类名:DiscoverMode;
方法or属性:DISCOVER_MODE_PASSIVE = 0x55
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:DiscoverMode;
方法or属性:DISCOVER_MODE_ACTIVE = 0xAA
旧版本信息:|类名:DiscoverMode;
方法or属性:DISCOVER_MODE_ACTIVE = 0xAA
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:ExchangeMedium;
方法or属性:AUTO = 0
旧版本信息:|类名:ExchangeMedium;
方法or属性:AUTO = 0
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:ExchangeMedium;
方法or属性:BLE = 1
旧版本信息:|类名:ExchangeMedium;
方法or属性:BLE = 1
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:ExchangeMedium;
方法or属性:COAP = 2
旧版本信息:|类名:ExchangeMedium;
方法or属性:COAP = 2
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:ExchangeMedium;
方法or属性:USB = 3
旧版本信息:|类名:ExchangeMedium;
方法or属性:USB = 3
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:ExchangeFreq;
方法or属性:LOW = 0
旧版本信息:|类名:ExchangeFreq;
方法or属性:LOW = 0
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:ExchangeFreq;
方法or属性:MID = 1
旧版本信息:|类名:ExchangeFreq;
方法or属性:MID = 1
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:ExchangeFreq;
方法or属性:HIGH = 2
旧版本信息:|类名:ExchangeFreq;
方法or属性:HIGH = 2
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:ExchangeFreq;
方法or属性:SUPER_HIGH = 3
旧版本信息:|类名:ExchangeFreq;
方法or属性:SUPER_HIGH = 3
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:SubscribeCap;
方法or属性:SUBSCRIBE_CAPABILITY_DDMP = 0
旧版本信息:|类名:SubscribeCap;
方法or属性:SUBSCRIBE_CAPABILITY_DDMP = 0
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:SubscribeCap;
方法or属性:SUBSCRIBE_CAPABILITY_OSD = 1
旧版本信息:|类名:SubscribeCap;
方法or属性:SUBSCRIBE_CAPABILITY_OSD = 1
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:AuthParam;
方法or属性:authType: number;
旧版本信息:|类名:AuthParam;
方法or属性:authType: number;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:AuthInfo;
方法or属性:authType: number;
旧版本信息:|类名:AuthInfo;
方法or属性:authType: number;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:AuthParam;
方法or属性:extraInfo: { [key: string]: any };
旧版本信息:|类名:AuthParam;
方法or属性:extraInfo: { [key: string]: any };
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:AuthInfo;
方法or属性:extraInfo: { [key: string]: any };
旧版本信息:|类名:AuthInfo;
方法or属性:extraInfo: { [key: string]: any };
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|访问级别有变化|类名:AuthInfo;
方法or属性:token: number;
旧版本信息:|类名:AuthInfo;
方法or属性:token: number;
新版本信息:systemapi|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:release(): void;
旧版本信息:|类名:DeviceManager;
方法or属性:release(): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:getTrustedDeviceListSync(): Array\;
旧版本信息:|类名:DeviceManager;
方法or属性:getTrustedDeviceListSync(): Array\;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:getTrustedDeviceList(callback: AsyncCallback\>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:getTrustedDeviceList(callback: AsyncCallback\>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:getTrustedDeviceList(): Promise\>;
旧版本信息:|类名:DeviceManager;
方法or属性:getTrustedDeviceList(): Promise\>;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:getLocalDeviceInfoSync(): DeviceInfo;
旧版本信息:|类名:DeviceManager;
方法or属性:getLocalDeviceInfoSync(): DeviceInfo;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:getLocalDeviceInfo(callback: AsyncCallback\): void;
旧版本信息:|类名:DeviceManager;
方法or属性:getLocalDeviceInfo(callback: AsyncCallback\): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:getLocalDeviceInfo(): Promise\;
旧版本信息:|类名:DeviceManager;
方法or属性:getLocalDeviceInfo(): Promise\;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:getDeviceInfo(networkId: string, callback: AsyncCallback\): void;
旧版本信息:|类名:DeviceManager;
方法or属性:getDeviceInfo(networkId: string, callback: AsyncCallback\): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:getDeviceInfo(networkId: string): Promise\;
旧版本信息:|类名:DeviceManager;
方法or属性:getDeviceInfo(networkId: string): Promise\;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:startDeviceDiscovery(subscribeInfo: SubscribeInfo): void;
旧版本信息:|类名:DeviceManager;
方法or属性:startDeviceDiscovery(subscribeInfo: SubscribeInfo): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:startDeviceDiscovery(subscribeInfo: SubscribeInfo, filterOptions?: string): void;
旧版本信息:|类名:DeviceManager;
方法or属性:startDeviceDiscovery(subscribeInfo: SubscribeInfo, filterOptions?: string): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:stopDeviceDiscovery(subscribeId: number): void;
旧版本信息:|类名:DeviceManager;
方法or属性:stopDeviceDiscovery(subscribeId: number): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:publishDeviceDiscovery(publishInfo: PublishInfo): void;
旧版本信息:|类名:DeviceManager;
方法or属性:publishDeviceDiscovery(publishInfo: PublishInfo): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:unPublishDeviceDiscovery(publishId: number): void;
旧版本信息:|类名:DeviceManager;
方法or属性:unPublishDeviceDiscovery(publishId: number): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:authenticateDevice(
deviceInfo: DeviceInfo,
authParam: AuthParam,
callback: AsyncCallback\<{ deviceId: string, pinToken?: number }>
): void;
旧版本信息:|类名:DeviceManager;
方法or属性:authenticateDevice(
deviceInfo: DeviceInfo,
authParam: AuthParam,
callback: AsyncCallback\<{ deviceId: string, pinToken?: number }>
): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:unAuthenticateDevice(deviceInfo: DeviceInfo): void;
旧版本信息:|类名:DeviceManager;
方法or属性:unAuthenticateDevice(deviceInfo: DeviceInfo): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:verifyAuthInfo(authInfo: AuthInfo, callback: AsyncCallback\<{ deviceId: string, level: number }>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:verifyAuthInfo(authInfo: AuthInfo, callback: AsyncCallback\<{ deviceId: string, level: number }>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:setUserOperation(operateAction: number, params: string): void;
旧版本信息:|类名:DeviceManager;
方法or属性:setUserOperation(operateAction: number, params: string): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:requestCredentialRegisterInfo(requestInfo: string, callback: AsyncCallback\<{ registerInfo: string }>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:requestCredentialRegisterInfo(requestInfo: string, callback: AsyncCallback\<{ registerInfo: string }>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:importCredential(credentialInfo: string, callback: AsyncCallback\<{ resultInfo: string }>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:importCredential(credentialInfo: string, callback: AsyncCallback\<{ resultInfo: string }>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:deleteCredential(queryInfo: string, callback: AsyncCallback\<{ resultInfo: string }>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:deleteCredential(queryInfo: string, callback: AsyncCallback\<{ resultInfo: string }>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:on(type: 'uiStateChange', callback: Callback\<{ param: string }>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:on(type: 'uiStateChange', callback: Callback\<{ param: string }>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:on(type: 'deviceStateChange', callback: Callback\<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:on(type: 'deviceStateChange', callback: Callback\<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:on(type: 'deviceFound', callback: Callback\<{ subscribeId: number, device: DeviceInfo }>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:on(type: 'deviceFound', callback: Callback\<{ subscribeId: number, device: DeviceInfo }>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:on(type: 'discoverFail', callback: Callback\<{ subscribeId: number, reason: number }>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:on(type: 'discoverFail', callback: Callback\<{ subscribeId: number, reason: number }>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:on(type: 'publishSuccess', callback: Callback\<{ publishId: number }>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:on(type: 'publishSuccess', callback: Callback\<{ publishId: number }>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:on(type: 'publishFail', callback: Callback\<{ publishId: number, reason: number }>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:on(type: 'publishFail', callback: Callback\<{ publishId: number, reason: number }>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:on(type: 'serviceDie', callback: () => void): void;
旧版本信息:|类名:DeviceManager;
方法or属性:on(type: 'serviceDie', callback: () => void): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:off(type: 'uiStateChange', callback?: Callback\<{ param: string }>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:off(type: 'uiStateChange', callback?: Callback\<{ param: string }>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:off(type: 'deviceStateChange', callback?: Callback\<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:off(type: 'deviceStateChange', callback?: Callback\<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:off(type: 'deviceFound', callback?: Callback\<{ subscribeId: number, device: DeviceInfo }>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:off(type: 'deviceFound', callback?: Callback\<{ subscribeId: number, device: DeviceInfo }>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:off(type: 'discoverFail', callback?: Callback\<{ subscribeId: number, reason: number }>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:off(type: 'discoverFail', callback?: Callback\<{ subscribeId: number, reason: number }>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:off(type: 'publishSuccess', callback?: Callback\<{ publishId: number }>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:off(type: 'publishSuccess', callback?: Callback\<{ publishId: number }>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:off(type: 'publishFail', callback?: Callback\<{ publishId: number, reason: number }>): void;
旧版本信息:|类名:DeviceManager;
方法or属性:off(type: 'publishFail', callback?: Callback\<{ publishId: number, reason: number }>): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| +|权限有变化|类名:DeviceManager;
方法or属性:off(type: 'serviceDie', callback?: () => void): void;
旧版本信息:|类名:DeviceManager;
方法or属性:off(type: 'serviceDie', callback?: () => void): void;
新版本信息:ohos.permission.ACCESS_SERVICE_DM|@ohos.distributedHardware.deviceManager.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-download-upload.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-download-upload.md new file mode 100644 index 0000000000..7539085c42 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-download-upload.md @@ -0,0 +1,111 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:agent;
方法or属性:function create(context: BaseContext, config: Config, callback: AsyncCallback\): void;|@ohos.request.d.ts| +|新增|NA|类名:agent;
方法or属性:function create(context: BaseContext, config: Config): Promise\;|@ohos.request.d.ts| +|新增|NA|类名:agent;
方法or属性:function remove(id: string, callback: AsyncCallback\): void;|@ohos.request.d.ts| +|新增|NA|类名:agent;
方法or属性:function remove(id: string): Promise\;|@ohos.request.d.ts| +|新增|NA|类名:agent;
方法or属性:function show(id: string, callback: AsyncCallback\): void;|@ohos.request.d.ts| +|新增|NA|类名:agent;
方法or属性:function show(id: string): Promise\;|@ohos.request.d.ts| +|新增|NA|类名:agent;
方法or属性:function touch(id: string, token: string, callback: AsyncCallback\): void;|@ohos.request.d.ts| +|新增|NA|类名:agent;
方法or属性:function touch(id: string, token: string): Promise\;|@ohos.request.d.ts| +|新增|NA|类名:agent;
方法or属性:function search(filter: Filter, callback: AsyncCallback\>): void;|@ohos.request.d.ts| +|新增|NA|类名:agent;
方法or属性:function search(filter: Filter): Promise\>;|@ohos.request.d.ts| +|新增|NA|类名:agent;
方法or属性:function query(id: string, callback: AsyncCallback\): void;|@ohos.request.d.ts| +|新增|NA|类名:agent;
方法or属性:function query(id: string): Promise\;|@ohos.request.d.ts| +|新增|NA|类名:Action;
方法or属性:DOWNLOAD|@ohos.request.d.ts| +|新增|NA|类名:Action;
方法or属性:UPLOAD|@ohos.request.d.ts| +|新增|NA|类名:Mode;
方法or属性:BACKGROUND|@ohos.request.d.ts| +|新增|NA|类名:Mode;
方法or属性:FOREGROUND|@ohos.request.d.ts| +|新增|NA|类名:Network;
方法or属性:ANY|@ohos.request.d.ts| +|新增|NA|类名:Network;
方法or属性:WIFI|@ohos.request.d.ts| +|新增|NA|类名:Network;
方法or属性:CELLULAR|@ohos.request.d.ts| +|新增|NA|类名:FileSpec;
方法or属性:path: string;|@ohos.request.d.ts| +|新增|NA|类名:FileSpec;
方法or属性:mimeType?: string;|@ohos.request.d.ts| +|新增|NA|类名:FileSpec;
方法or属性:filename?: string;|@ohos.request.d.ts| +|新增|NA|类名:FileSpec;
方法or属性:extras?: object;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:extras?: object;|@ohos.request.d.ts| +|新增|NA|类名:FormItem;
方法or属性:name: string;|@ohos.request.d.ts| +|新增|NA|类名:FormItem;
方法or属性:value: string \| FileSpec \| Array\;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:action: Action;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:url: string;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:title?: string;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:description?: string;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:mode?: Mode;|@ohos.request.d.ts| +|新增|NA|类名:Filter;
方法or属性:mode?: Mode;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:overwrite?: boolean;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:method?: string;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:headers?: object;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:data?: string \| Array\;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:saveas?: string;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:network?: Network;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:metered?: boolean;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:roaming?: boolean;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:retry?: boolean;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:redirect?: boolean;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:index?: number;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:begins?: number;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:ends?: number;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:gauge?: boolean;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:precise?: boolean;|@ohos.request.d.ts| +|新增|NA|类名:Config;
方法or属性:token?: string;|@ohos.request.d.ts| +|新增|NA|类名:State;
方法or属性:INITIALIZED = 0x00|@ohos.request.d.ts| +|新增|NA|类名:State;
方法or属性:WAITING = 0x10|@ohos.request.d.ts| +|新增|NA|类名:State;
方法or属性:RUNNING = 0x20|@ohos.request.d.ts| +|新增|NA|类名:State;
方法or属性:RETRYING = 0x21|@ohos.request.d.ts| +|新增|NA|类名:State;
方法or属性:PAUSED = 0x30|@ohos.request.d.ts| +|新增|NA|类名:State;
方法or属性:STOPPED = 0x31|@ohos.request.d.ts| +|新增|NA|类名:State;
方法or属性:COMPLETED = 0x40|@ohos.request.d.ts| +|新增|NA|类名:State;
方法or属性:FAILED = 0x41|@ohos.request.d.ts| +|新增|NA|类名:State;
方法or属性:REMOVED = 0x50|@ohos.request.d.ts| +|新增|NA|类名:Progress;
方法or属性:readonly state: State;|@ohos.request.d.ts| +|新增|NA|类名:Progress;
方法or属性:readonly index: number;|@ohos.request.d.ts| +|新增|NA|类名:Progress;
方法or属性:readonly processed: number;|@ohos.request.d.ts| +|新增|NA|类名:Progress;
方法or属性:readonly sizes: Array\;|@ohos.request.d.ts| +|新增|NA|类名:Progress;
方法or属性:readonly extras?: object;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly extras?: object;|@ohos.request.d.ts| +|新增|NA|类名:Faults;
方法or属性:OTHERS = 0xFF|@ohos.request.d.ts| +|新增|NA|类名:Faults;
方法or属性:DISCONNECTED = 0x00|@ohos.request.d.ts| +|新增|NA|类名:Faults;
方法or属性:TIMEOUT = 0x10|@ohos.request.d.ts| +|新增|NA|类名:Faults;
方法or属性:PROTOCOL = 0x20|@ohos.request.d.ts| +|新增|NA|类名:Faults;
方法or属性:FSIO = 0x40|@ohos.request.d.ts| +|新增|NA|类名:Filter;
方法or属性:bundle?: string;|@ohos.request.d.ts| +|新增|NA|类名:Filter;
方法or属性:before?: number;|@ohos.request.d.ts| +|新增|NA|类名:Filter;
方法or属性:after?: number;|@ohos.request.d.ts| +|新增|NA|类名:Filter;
方法or属性:state?: State;|@ohos.request.d.ts| +|新增|NA|类名:Filter;
方法or属性:action?: Action;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly uid?: string;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly bundle?: string;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly saveas?: string;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly url?: string;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly data?: string \| Array\;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly tid: string;|@ohos.request.d.ts| +|新增|NA|类名:Task;
方法or属性:readonly tid: string;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly title: string;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly description: string;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly action: Action;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly mode: Mode;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly mimeType: string;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly progress: Progress;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly gauge: boolean;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly ctime: number;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly mtime: number;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly retry: boolean;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly tries: number;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly faults: Faults;|@ohos.request.d.ts| +|新增|NA|类名:TaskInfo;
方法or属性:readonly reason: string;|@ohos.request.d.ts| +|新增|NA|类名:Task;
方法or属性:config: Config;|@ohos.request.d.ts| +|新增|NA|类名:Task;
方法or属性:on(event: 'progress', callback: (progress: Progress) => void): void;|@ohos.request.d.ts| +|新增|NA|类名:Task;
方法or属性:on(event: 'completed', callback: (progress: Progress) => void): void;|@ohos.request.d.ts| +|新增|NA|类名:Task;
方法or属性:on(event: 'failed', callback: (progress: Progress) => void): void;|@ohos.request.d.ts| +|新增|NA|类名:Task;
方法or属性:off(event: 'progress', callback?: (progress: Progress) => void): void;|@ohos.request.d.ts| +|新增|NA|类名:Task;
方法or属性:off(event: 'completed', callback?: (progress: Progress) => void): void;|@ohos.request.d.ts| +|新增|NA|类名:Task;
方法or属性:off(event: 'failed', callback?: (progress: Progress) => void): void;|@ohos.request.d.ts| +|新增|NA|类名:Task;
方法or属性:start(callback: AsyncCallback\): void;|@ohos.request.d.ts| +|新增|NA|类名:Task;
方法or属性:start(): Promise\;|@ohos.request.d.ts| +|新增|NA|类名:Task;
方法or属性:pause(callback: AsyncCallback\): void;|@ohos.request.d.ts| +|新增|NA|类名:Task;
方法or属性:pause(): Promise\;|@ohos.request.d.ts| +|新增|NA|类名:Task;
方法or属性:resume(callback: AsyncCallback\): void;|@ohos.request.d.ts| +|新增|NA|类名:Task;
方法or属性:resume(): Promise\;|@ohos.request.d.ts| +|新增|NA|类名:Task;
方法or属性:stop(callback: AsyncCallback\): void;|@ohos.request.d.ts| +|新增|NA|类名:Task;
方法or属性:stop(): Promise\;|@ohos.request.d.ts| +|权限有变化|类名:request;
方法or属性:declare request
旧版本信息:ohos.permission.INTERNET|类名:request;
方法or属性:declare request
新版本信息:|@ohos.request.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-driver.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-driver.md new file mode 100644 index 0000000000..6f913f40e8 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-driver.md @@ -0,0 +1,20 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:DriverExtensionAbility;
方法or属性:context: DriverExtensionContext;|@ohos.app.ability.DriverExtensionAbility.d.ts| +|新增|NA|类名:DriverExtensionAbility;
方法or属性:onInit(want: Want): void;|@ohos.app.ability.DriverExtensionAbility.d.ts| +|新增|NA|类名:DriverExtensionAbility;
方法or属性:onRelease(): void;|@ohos.app.ability.DriverExtensionAbility.d.ts| +|新增|NA|类名:DriverExtensionAbility;
方法or属性:onConnect(want: Want): rpc.RemoteObject \| Promise\;|@ohos.app.ability.DriverExtensionAbility.d.ts| +|新增|NA|类名:DriverExtensionAbility;
方法or属性:onDisconnect(want: Want): void \| Promise\;|@ohos.app.ability.DriverExtensionAbility.d.ts| +|新增|NA|类名:DriverExtensionAbility;
方法or属性:onDump(params: Array\): Array\;|@ohos.app.ability.DriverExtensionAbility.d.ts| +|新增|NA|类名:deviceManager;
方法or属性:function queryDevices(busType?: number): Array\>;|@ohos.driver.deviceManager.d.ts| +|新增|NA|类名:deviceManager;
方法or属性:function bindDevice(deviceId: number, onDisconnect: AsyncCallback\,

callback: AsyncCallback\<{deviceId: number, remote: rpc.IRemoteObject}>): void;|@ohos.driver.deviceManager.d.ts| +|新增|NA|类名:deviceManager;
方法or属性:function bindDevice(deviceId: number, onDisconnect: AsyncCallback\): Promise\<{deviceId: number,

remote: rpc.IRemoteObject}>;|@ohos.driver.deviceManager.d.ts| +|新增|NA|类名:deviceManager;
方法or属性:function unbindDevice(deviceId: number, callback: AsyncCallback\): void;|@ohos.driver.deviceManager.d.ts| +|新增|NA|类名:deviceManager;
方法or属性:function unbindDevice(deviceId: number): Promise\;|@ohos.driver.deviceManager.d.ts| +|新增|NA|类名:BusType;
方法or属性:USB = 1|@ohos.driver.deviceManager.d.ts| +|新增|NA|类名:Device;
方法or属性:busType: BusType;|@ohos.driver.deviceManager.d.ts| +|新增|NA|类名:Device;
方法or属性:deviceId: number;|@ohos.driver.deviceManager.d.ts| +|新增|NA|类名:Device;
方法or属性:description: string;|@ohos.driver.deviceManager.d.ts| +|新增|NA|类名:USBDevice;
方法or属性:vendorId: number;|@ohos.driver.deviceManager.d.ts| +|新增|NA|类名:USBDevice;
方法or属性:productId: number;|@ohos.driver.deviceManager.d.ts| +|新增|NA|类名:DriverExtensionContext;
方法or属性:updateDriverState(): void;|DriverExtensionContext.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-file-management.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-file-management.md new file mode 100644 index 0000000000..6f3ccd0959 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-file-management.md @@ -0,0 +1,448 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:SyncState;
方法or属性:UPLOADING|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:SyncState;
方法or属性:UPLOAD_FAILED|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:SyncState;
方法or属性:DOWNLOADING|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:SyncState;
方法or属性:DOWNLOAD_FAILED|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:SyncState;
方法or属性:COMPLETED|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:State;
方法or属性:COMPLETED|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:SyncState;
方法or属性:STOPPED|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:State;
方法or属性:STOPPED|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:ErrorType;
方法or属性:NO_ERROR|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:ErrorType;
方法or属性:NETWORK_UNAVAILABLE|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:ErrorType;
方法or属性:WIFI_UNAVAILABLE|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:ErrorType;
方法or属性:BATTERY_LEVEL_LOW|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:ErrorType;
方法or属性:BATTERY_LEVEL_WARNING|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:ErrorType;
方法or属性:CLOUD_STORAGE_FULL|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:ErrorType;
方法or属性:LOCAL_STORAGE_FULL|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:SyncProgress;
方法or属性:state: SyncState;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:SyncProgress;
方法or属性:error: ErrorType;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:GallerySync;
方法or属性:constructor();|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:Download;
方法or属性:constructor();|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:GallerySync;
方法or属性:on(evt: 'progress', callback: (pg: SyncProgress) => void): void;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:GallerySync;
方法or属性:off(evt: 'progress'): void;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:Download;
方法or属性:off(evt: 'progress'): void;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:GallerySync;
方法or属性:start(): Promise\;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:GallerySync;
方法or属性:start(callback: AsyncCallback\): void;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:GallerySync;
方法or属性:stop(): Promise\;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:GallerySync;
方法or属性:stop(callback: AsyncCallback\): void;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:State;
方法or属性:RUNNING|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:State;
方法or属性:FAILED|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:DownloadProgress;
方法or属性:state: State;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:DownloadProgress;
方法or属性:processed: number;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:DownloadProgress;
方法or属性:size: number;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:DownloadProgress;
方法or属性:uri: string;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:Download;
方法or属性:on(evt: 'progress', callback: (pg: DownloadProgress) => void): void;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:Download;
方法or属性:start(uri: string): Promise\;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:Download;
方法or属性:start(uri: string, callback: AsyncCallback\): void;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:Download;
方法or属性:stop(uri: string): Promise\;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:Download;
方法or属性:stop(uri: string, callback: AsyncCallback\): void;|@ohos.file.cloudSync.d.ts| +|新增|NA|类名:cloudSyncManager;
方法or属性:function enableCloud(accountId: string, switches: { [bundleName: string]: boolean }): Promise\;|@ohos.file.cloudSyncManager.d.ts| +|新增|NA|类名:cloudSyncManager;
方法or属性:function enableCloud(
accountId: string,
switches: { [bundleName: string]: boolean },
callback: AsyncCallback\
): void;|@ohos.file.cloudSyncManager.d.ts| +|新增|NA|类名:cloudSyncManager;
方法or属性:function disableCloud(accountId: string): Promise\;|@ohos.file.cloudSyncManager.d.ts| +|新增|NA|类名:cloudSyncManager;
方法or属性:function disableCloud(accountId: string, callback: AsyncCallback\): void;|@ohos.file.cloudSyncManager.d.ts| +|新增|NA|类名:cloudSyncManager;
方法or属性:function clean(accountId: string, appActions: { [bundleName: string]: Action }): Promise\;|@ohos.file.cloudSyncManager.d.ts| +|新增|NA|类名:cloudSyncManager;
方法or属性:function clean(accountId: string, appActions: { [bundleName: string]: Action }, callback: AsyncCallback\): void;|@ohos.file.cloudSyncManager.d.ts| +|新增|NA|类名:Action;
方法or属性:RETAIN_DATA|@ohos.file.cloudSyncManager.d.ts| +|新增|NA|类名:Action;
方法or属性:CLEAR_DATA|@ohos.file.cloudSyncManager.d.ts| +|新增|NA|类名:sourcefile;
方法or属性:declare function createRandomAccessFile(file: string \| File, mode?: number): Promise\;|@ohos.file.fs.d.ts| +|新增|NA|类名:sourcefile;
方法or属性:declare function createRandomAccessFile(file: string \| File, callback: AsyncCallback\): void;|@ohos.file.fs.d.ts| +|新增|NA|类名:sourcefile;
方法or属性:declare function createRandomAccessFile(file: string \| File, mode: number, callback: AsyncCallback\): void;|@ohos.file.fs.d.ts| +|新增|NA|类名:sourcefile;
方法or属性:declare function createRandomAccessFileSync(file: string \| File, mode?: number): RandomAccessFile;|@ohos.file.fs.d.ts| +|新增|NA|类名:RandomAccessFile;
方法or属性:readonly fd: number;|@ohos.file.fs.d.ts| +|新增|NA|类名:RandomAccessFile;
方法or属性:readonly filePointer: number;|@ohos.file.fs.d.ts| +|新增|NA|类名:RandomAccessFile;
方法or属性:setFilePointer(filePointer: number): void;|@ohos.file.fs.d.ts| +|新增|NA|类名:RandomAccessFile;
方法or属性:close(): void;|@ohos.file.fs.d.ts| +|新增|NA|类名:RandomAccessFile;
方法or属性:write(
buffer: ArrayBuffer \| string,
options?: {
offset?: number;
length?: number;
encoding?: string;
}
): Promise\;|@ohos.file.fs.d.ts| +|新增|NA|类名:RandomAccessFile;
方法or属性:write(buffer: ArrayBuffer \| string, callback: AsyncCallback\): void;|@ohos.file.fs.d.ts| +|新增|NA|类名:RandomAccessFile;
方法or属性:write(
buffer: ArrayBuffer \| string,
options: {
offset?: number;
length?: number;
encoding?: string;
},
callback: AsyncCallback\
): void;|@ohos.file.fs.d.ts| +|新增|NA|类名:RandomAccessFile;
方法or属性:writeSync(
buffer: ArrayBuffer \| string,
options?: {
offset?: number;
length?: number;
encoding?: string;
}
): number;|@ohos.file.fs.d.ts| +|新增|NA|类名:RandomAccessFile;
方法or属性:read(
buffer: ArrayBuffer,
options?: {
offset?: number;
length?: number;
}
): Promise\;|@ohos.file.fs.d.ts| +|新增|NA|类名:RandomAccessFile;
方法or属性:read(buffer: ArrayBuffer, callback: AsyncCallback\): void;|@ohos.file.fs.d.ts| +|新增|NA|类名:RandomAccessFile;
方法or属性:read(
buffer: ArrayBuffer,
options: {
offset?: number;
length?: number;
},
callback: AsyncCallback\
): void;|@ohos.file.fs.d.ts| +|新增|NA|类名:RandomAccessFile;
方法or属性:readSync(
buffer: ArrayBuffer,
options?: {
offset?: number;
length?: number;
}
): number;|@ohos.file.fs.d.ts| +|新增|NA|类名:photoAccessHelper;
方法or属性:function getPhotoAccessHelper(context: Context): PhotoAccessHelper;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:photoAccessHelper;
方法or属性:type MemberType = number \| string \| boolean;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoType;
方法or属性:IMAGE = 1|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoType;
方法or属性:VIDEO|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AlbumSubtype;
方法or属性:VIDEO|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoSubtype;
方法or属性:DEFAULT|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoSubtype;
方法or属性:SCREENSHOT|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AlbumSubtype;
方法or属性:SCREENSHOT|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PositionType;
方法or属性:LOCAL = 1 \<\< 0|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PositionType;
方法or属性:CLOUD = 1 \<\< 1|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:readonly uri: string;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:readonly photoType: PhotoType;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:readonly displayName: string;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:get(member: string): MemberType;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:set(member: string, value: string): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:commitModify(callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:Album;
方法or属性:commitModify(callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:commitModify(): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:Album;
方法or属性:commitModify(): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:open(mode: string, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:open(mode: string): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:getReadOnlyFd(callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:getReadOnlyFd(): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:close(fd: number, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:close(fd: number): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:getThumbnail(callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:getThumbnail(size: image.Size, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:getThumbnail(size?: image.Size): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:setFavorite(favoriteState: boolean, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:setFavorite(favoriteState: boolean): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:setHidden(hiddenState: boolean, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAsset;
方法or属性:setHidden(hiddenState: boolean): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoKeys;
方法or属性:URI = 'uri'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AlbumKeys;
方法or属性:URI = 'uri'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoKeys;
方法or属性:PHOTO_TYPE = 'media_type'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoKeys;
方法or属性:DISPLAY_NAME = 'display_name'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoKeys;
方法or属性:SIZE = 'size'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoKeys;
方法or属性:DATE_ADDED = 'date_added'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoKeys;
方法or属性:DATE_MODIFIED = 'date_modified'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoKeys;
方法or属性:DURATION = 'duration'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoKeys;
方法or属性:WIDTH = 'width'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoKeys;
方法or属性:HEIGHT = 'height'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoKeys;
方法or属性:DATE_TAKEN = 'date_taken'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoKeys;
方法or属性:ORIENTATION = 'orientation'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoKeys;
方法or属性:FAVORITE = 'is_favorite'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoKeys;
方法or属性:TITLE = 'title'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoKeys;
方法or属性:POSITION = 'position'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoKeys;
方法or属性:DATE_TRASHED = 'date_trashed'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoKeys;
方法or属性:HIDDEN = 'hidden'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AlbumKeys;
方法or属性:ALBUM_NAME = 'album_name'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:FetchOptions;
方法or属性:fetchColumns: Array\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:FetchOptions;
方法or属性:predicates: dataSharePredicates.DataSharePredicates;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoCreateOptions;
方法or属性:subtype?: PhotoSubtype;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:CreateOptions;
方法or属性:title?: string;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:FetchResult;
方法or属性:getCount(): number;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:FetchResult;
方法or属性:isAfterLast(): boolean;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:FetchResult;
方法or属性:getFirstObject(callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:FetchResult;
方法or属性:getFirstObject(): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:FetchResult;
方法or属性:getNextObject(callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:FetchResult;
方法or属性:getNextObject(): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:FetchResult;
方法or属性:getLastObject(callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:FetchResult;
方法or属性:getLastObject(): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:FetchResult;
方法or属性:getObjectByPosition(index: number, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:FetchResult;
方法or属性:getObjectByPosition(index: number): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:FetchResult;
方法or属性:getAllObjects(callback: AsyncCallback\>): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:FetchResult;
方法or属性:getAllObjects(): Promise\>;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:FetchResult;
方法or属性:close(): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AlbumType;
方法or属性:USER = 0|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AlbumType;
方法or属性:SYSTEM = 1024|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AlbumSubtype;
方法or属性:USER_GENERIC = 1|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AlbumSubtype;
方法or属性:FAVORITE = 1025|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AlbumSubtype;
方法or属性:HIDDEN|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AlbumSubtype;
方法or属性:TRASH|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AlbumSubtype;
方法or属性:CAMERA|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AlbumSubtype;
方法or属性:ANY = 2147483647|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AbsAlbum;
方法or属性:readonly albumType: AlbumType;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AbsAlbum;
方法or属性:readonly albumSubtype: AlbumSubtype;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AbsAlbum;
方法or属性:albumName: string;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AbsAlbum;
方法or属性:readonly albumUri: string;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AbsAlbum;
方法or属性:readonly count: number;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AbsAlbum;
方法or属性:readonly coverUri: string;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AbsAlbum;
方法or属性:getAssets(options: FetchOptions, callback: AsyncCallback\>): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:getAssets(options: FetchOptions, callback: AsyncCallback\>): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:AbsAlbum;
方法or属性:getAssets(options: FetchOptions): Promise\>;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:getAssets(options: FetchOptions): Promise\>;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:Album;
方法or属性:addAssets(assets: Array\, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:Album;
方法or属性:addAssets(assets: Array\): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:Album;
方法or属性:removeAssets(assets: Array\, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:Album;
方法or属性:removeAssets(assets: Array\): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:Album;
方法or属性:recoverAssets(assets: Array\, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:Album;
方法or属性:recoverAssets(assets: Array\): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:Album;
方法or属性:deleteAssets(assets: Array\, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:Album;
方法or属性:deleteAssets(assets: Array\): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:Album;
方法or属性:setCoverUri(uri: string, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:Album;
方法or属性:setCoverUri(uri: string): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:createAsset(displayName: string, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:createAsset(displayName: string): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:createAsset(displayName: string, options: PhotoCreateOptions): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:createAsset(displayName: string, options: PhotoCreateOptions, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:createAsset(photoType: PhotoType, extension: string, options: CreateOptions, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:createAsset(photoType: PhotoType, extension: string, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:createAsset(photoType: PhotoType, extension: string, options?: CreateOptions): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:createAlbum(name: string, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:createAlbum(name: string): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:deleteAlbums(albums: Array\, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:deleteAlbums(albums: Array\): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:getAlbums(
type: AlbumType,
subtype: AlbumSubtype,
options: FetchOptions,
callback: AsyncCallback\>
): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:getAlbums(type: AlbumType, subtype: AlbumSubtype, callback: AsyncCallback\>): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:getAlbums(type: AlbumType, subtype: AlbumSubtype, options?: FetchOptions): Promise\>;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:deleteAssets(uriList: Array\, callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:deleteAssets(uriList: Array\): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:registerChange(uri: string, forChildUris: boolean, callback: Callback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:unRegisterChange(uri: string, callback?: Callback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:release(callback: AsyncCallback\): void;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:PhotoAccessHelper;
方法or属性:release(): Promise\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:NotifyType;
方法or属性:NOTIFY_ADD|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:NotifyType;
方法or属性:NOTIFY_UPDATE|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:NotifyType;
方法or属性:NOTIFY_REMOVE|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:NotifyType;
方法or属性:NOTIFY_ALBUM_ADD_ASSET|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:NotifyType;
方法or属性:NOTIFY_ALBUM_REMOVE_ASSET|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:DefaultChangeUri;
方法or属性:DEFAULT_PHOTO_URI = 'file://media/Photo'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:DefaultChangeUri;
方法or属性:DEFAULT_ALBUM_URI = 'file://media/PhotoAlbum'|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:ChangeData;
方法or属性:type: NotifyType;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:ChangeData;
方法or属性:uris: Array\;|@ohos.file.photoAccessHelper.d.ts| +|新增|NA|类名:ChangeData;
方法or属性:extraUris: Array\;|@ohos.file.photoAccessHelper.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function choose(callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function choose(callback: AsyncCallback\): void;
新版本信息:9
代替接口:|@ohos.document.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function choose(types: string[], callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function choose(types: string[], callback: AsyncCallback\): void;
新版本信息:9
代替接口:|@ohos.document.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function show(uri: string, type: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function show(uri: string, type: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口:|@ohos.document.d.ts| +|废弃版本有变化|类名:document;
方法or属性:declare document
旧版本信息:|类名:document;
方法or属性:declare document
新版本信息:9
代替接口:|@ohos.document.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function access(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function access(path: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.access|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function access(path: string, mode: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function access(path: string, mode: number, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.access|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function close(fd: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function close(fd: number, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.close|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function copyFile(src: string \| number, dest: string \| number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function copyFile(src: string \| number, dest: string \| number, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.copyFile|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function copyFile(
src: string \| number,
dest: string \| number,
mode: number,
callback: AsyncCallback\
): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function copyFile(
src: string \| number,
dest: string \| number,
mode: number,
callback: AsyncCallback\
): void;
新版本信息:9
代替接口: ohos.file.fs.copyFile|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function createStream(path: string, mode: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function createStream(path: string, mode: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.createStream|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function chown(path: string, uid: number, gid: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function chown(path: string, uid: number, gid: number, callback: AsyncCallback\): void;
新版本信息:9
代替接口:|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function chmod(path: string, mode: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function chmod(path: string, mode: number, callback: AsyncCallback\): void;
新版本信息:9
代替接口:|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function ftruncate(fd: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function ftruncate(fd: number, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.truncate|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function ftruncate(fd: number, len: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function ftruncate(fd: number, len: number, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.truncate|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function fsync(fd: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function fsync(fd: number, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.fsync|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function fstat(fd: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function fstat(fd: number, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.stat|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function fdatasync(fd: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function fdatasync(fd: number, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.fdatasync|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function fchown(fd: number, uid: number, gid: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function fchown(fd: number, uid: number, gid: number, callback: AsyncCallback\): void;
新版本信息:9
代替接口:|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function fchmod(fd: number, mode: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function fchmod(fd: number, mode: number, callback: AsyncCallback\): void;
新版本信息:9
代替接口:|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function fdopenStream(fd: number, mode: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function fdopenStream(fd: number, mode: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.fdopenStream|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function hash(path: string, algorithm: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function hash(path: string, algorithm: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.hash.hash|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function lchown(path: string, uid: number, gid: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function lchown(path: string, uid: number, gid: number, callback: AsyncCallback\): void;
新版本信息:9
代替接口:|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function lstat(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function lstat(path: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.lstat|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function mkdir(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function mkdir(path: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.mkdir|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function mkdir(path: string, mode: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function mkdir(path: string, mode: number, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.mkdir|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function mkdtemp(prefix: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function mkdtemp(prefix: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.mkdtemp|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function open(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function open(path: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.open|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function open(path: string, flags: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function open(path: string, flags: number, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.open|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function open(path: string, flags: number, mode: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function open(path: string, flags: number, mode: number, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.open|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function opendir(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function opendir(path: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.listFile|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function readText(
filePath: string,
options: {
position?: number;
length?: number;
encoding?: string;
},
callback: AsyncCallback\
): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function readText(
filePath: string,
options: {
position?: number;
length?: number;
encoding?: string;
},
callback: AsyncCallback\
): void;
新版本信息:9
代替接口: ohos.file.fs.readText|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function read(fd: number, buffer: ArrayBuffer, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function read(fd: number, buffer: ArrayBuffer, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.read|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function read(
fd: number,
buffer: ArrayBuffer,
options: {
offset?: number;
length?: number;
position?: number;
},
callback: AsyncCallback\
): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function read(
fd: number,
buffer: ArrayBuffer,
options: {
offset?: number;
length?: number;
position?: number;
},
callback: AsyncCallback\
): void;
新版本信息:9
代替接口: ohos.file.fs.read|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function rename(oldPath: string, newPath: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function rename(oldPath: string, newPath: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.rename|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function rmdir(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function rmdir(path: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.rmdir|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function stat(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function stat(path: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.stat|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function symlink(target: string, srcPath: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function symlink(target: string, srcPath: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.symlink|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function truncate(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function truncate(path: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.truncate|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function truncate(path: string, len: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function truncate(path: string, len: number, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.truncate|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function unlink(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function unlink(path: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.unlink|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function write(fd: number, buffer: ArrayBuffer \| string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function write(fd: number, buffer: ArrayBuffer \| string, callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.write|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function write(
fd: number,
buffer: ArrayBuffer \| string,
options: {
offset?: number;
length?: number;
position?: number;
encoding?: string;
},
callback: AsyncCallback\
): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function write(
fd: number,
buffer: ArrayBuffer \| string,
options: {
offset?: number;
length?: number;
position?: number;
encoding?: string;
},
callback: AsyncCallback\
): void;
新版本信息:9
代替接口: ohos.file.fs.write|@ohos.fileio.d.ts| +|废弃版本有变化|类名:sourcefile;
方法or属性:declare function createWatcher(filename: string, events: number, callback: AsyncCallback\): Watcher;
旧版本信息:|类名:sourcefile;
方法or属性:declare function createWatcher(filename: string, events: number, callback: AsyncCallback\): Watcher;
新版本信息:10
代替接口: ohos.file.fs.createWatcher|@ohos.fileio.d.ts| +|废弃版本有变化|类名:Dir;
方法or属性:declare interface Dir
旧版本信息:|类名:Dir;
方法or属性:declare interface Dir
新版本信息:9
代替接口: ohos.file.fs.listFile|@ohos.fileio.d.ts| +|废弃版本有变化|类名:Dir;
方法or属性:read(callback: AsyncCallback\): void;
旧版本信息:|类名:Dir;
方法or属性:read(callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.listFile|@ohos.fileio.d.ts| +|废弃版本有变化|类名:Dir;
方法or属性:close(callback: AsyncCallback\): void;
旧版本信息:|类名:Dir;
方法or属性:close(callback: AsyncCallback\): void;
新版本信息:9
代替接口: ohos.file.fs.listFile|@ohos.fileio.d.ts| +|废弃版本有变化|类名:Watcher;
方法or属性:declare interface Watcher
旧版本信息:|类名:Watcher;
方法or属性:declare interface Watcher
新版本信息:10
代替接口: ohos.file.fs.Watcher|@ohos.fileio.d.ts| +|废弃版本有变化|类名:Watcher;
方法or属性:stop(): Promise\;
旧版本信息:|类名:Watcher;
方法or属性:stop(): Promise\;
新版本信息:10
代替接口: ohos.file.fs.Watcher.stop|@ohos.fileio.d.ts| +|废弃版本有变化|类名:Watcher;
方法or属性:stop(callback: AsyncCallback\): void;
旧版本信息:|类名:Watcher;
方法or属性:stop(callback: AsyncCallback\): void;
新版本信息:10
代替接口: ohos.file.fs.Watcher.stop|@ohos.fileio.d.ts| +|废弃版本有变化|类名:Statfs;
方法or属性:declare Statfs
旧版本信息:|类名:Statfs;
方法or属性:declare Statfs
新版本信息:9
代替接口: ohos.file.statvfs.statfs|@ohos.statfs.d.ts| +|废弃版本有变化|类名:Statfs;
方法or属性:function getFreeBytes(path: string): Promise\;
旧版本信息:|类名:Statfs;
方法or属性:function getFreeBytes(path: string): Promise\;
新版本信息:9
代替接口: ohos.file.statvfs.getFreeSize|@ohos.statfs.d.ts| +|废弃版本有变化|类名:Statfs;
方法or属性:function getTotalBytes(path: string): Promise\;
旧版本信息:|类名:Statfs;
方法or属性:function getTotalBytes(path: string): Promise\;
新版本信息:9
代替接口: ohos.file.statvfs.getTotalSize|@ohos.statfs.d.ts| +|废弃版本有变化|类名:FileResponse;
方法or属性:export interface FileResponse
旧版本信息:|类名:FileResponse;
方法or属性:export interface FileResponse
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileResponse;
方法or属性:uri: string;
旧版本信息:|类名:FileResponse;
方法or属性:uri: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileListOption;
方法or属性:uri: string;
旧版本信息:|类名:FileListOption;
方法or属性:uri: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileGetOption;
方法or属性:uri: string;
旧版本信息:|类名:FileGetOption;
方法or属性:uri: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileDeleteOption;
方法or属性:uri: string;
旧版本信息:|类名:FileDeleteOption;
方法or属性:uri: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileWriteTextOption;
方法or属性:uri: string;
旧版本信息:|类名:FileWriteTextOption;
方法or属性:uri: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadTextOption;
方法or属性:uri: string;
旧版本信息:|类名:FileReadTextOption;
方法or属性:uri: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileWriteArrayBufferOption;
方法or属性:uri: string;
旧版本信息:|类名:FileWriteArrayBufferOption;
方法or属性:uri: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadArrayBufferOption;
方法or属性:uri: string;
旧版本信息:|类名:FileReadArrayBufferOption;
方法or属性:uri: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileAccessOption;
方法or属性:uri: string;
旧版本信息:|类名:FileAccessOption;
方法or属性:uri: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileMkdirOption;
方法or属性:uri: string;
旧版本信息:|类名:FileMkdirOption;
方法or属性:uri: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileRmdirOption;
方法or属性:uri: string;
旧版本信息:|类名:FileRmdirOption;
方法or属性:uri: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileResponse;
方法or属性:length: number;
旧版本信息:|类名:FileResponse;
方法or属性:length: number;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileResponse;
方法or属性:lastModifiedTime: number;
旧版本信息:|类名:FileResponse;
方法or属性:lastModifiedTime: number;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileResponse;
方法or属性:type: 'dir' \| 'file';
旧版本信息:|类名:FileResponse;
方法or属性:type: 'dir' \| 'file';
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileResponse;
方法or属性:subFiles?: Array\;
旧版本信息:|类名:FileResponse;
方法or属性:subFiles?: Array\;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileMoveOption;
方法or属性:export interface FileMoveOption
旧版本信息:|类名:FileMoveOption;
方法or属性:export interface FileMoveOption
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileMoveOption;
方法or属性:srcUri: string;
旧版本信息:|类名:FileMoveOption;
方法or属性:srcUri: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileCopyOption;
方法or属性:srcUri: string;
旧版本信息:|类名:FileCopyOption;
方法or属性:srcUri: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileMoveOption;
方法or属性:dstUri: string;
旧版本信息:|类名:FileMoveOption;
方法or属性:dstUri: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileCopyOption;
方法or属性:dstUri: string;
旧版本信息:|类名:FileCopyOption;
方法or属性:dstUri: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileMoveOption;
方法or属性:success?: (uri: string) => void;
旧版本信息:|类名:FileMoveOption;
方法or属性:success?: (uri: string) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileCopyOption;
方法or属性:success?: (uri: string) => void;
旧版本信息:|类名:FileCopyOption;
方法or属性:success?: (uri: string) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileMoveOption;
方法or属性:fail?: (data: string, code: number) => void;
旧版本信息:|类名:FileMoveOption;
方法or属性:fail?: (data: string, code: number) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileListOption;
方法or属性:fail?: (data: string, code: number) => void;
旧版本信息:|类名:FileListOption;
方法or属性:fail?: (data: string, code: number) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileCopyOption;
方法or属性:fail?: (data: string, code: number) => void;
旧版本信息:|类名:FileCopyOption;
方法or属性:fail?: (data: string, code: number) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileGetOption;
方法or属性:fail?: (data: string, code: number) => void;
旧版本信息:|类名:FileGetOption;
方法or属性:fail?: (data: string, code: number) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileDeleteOption;
方法or属性:fail?: (data: string, code: number) => void;
旧版本信息:|类名:FileDeleteOption;
方法or属性:fail?: (data: string, code: number) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileWriteTextOption;
方法or属性:fail?: (data: string, code: number) => void;
旧版本信息:|类名:FileWriteTextOption;
方法or属性:fail?: (data: string, code: number) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadTextOption;
方法or属性:fail?: (data: string, code: number) => void;
旧版本信息:|类名:FileReadTextOption;
方法or属性:fail?: (data: string, code: number) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileWriteArrayBufferOption;
方法or属性:fail?: (data: string, code: number) => void;
旧版本信息:|类名:FileWriteArrayBufferOption;
方法or属性:fail?: (data: string, code: number) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadArrayBufferOption;
方法or属性:fail?: (data: string, code: number) => void;
旧版本信息:|类名:FileReadArrayBufferOption;
方法or属性:fail?: (data: string, code: number) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileAccessOption;
方法or属性:fail?: (data: string, code: number) => void;
旧版本信息:|类名:FileAccessOption;
方法or属性:fail?: (data: string, code: number) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileMkdirOption;
方法or属性:fail?: (data: string, code: number) => void;
旧版本信息:|类名:FileMkdirOption;
方法or属性:fail?: (data: string, code: number) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileRmdirOption;
方法or属性:fail?: (data: string, code: number) => void;
旧版本信息:|类名:FileRmdirOption;
方法or属性:fail?: (data: string, code: number) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileMoveOption;
方法or属性:complete?: () => void;
旧版本信息:|类名:FileMoveOption;
方法or属性:complete?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileListOption;
方法or属性:complete?: () => void;
旧版本信息:|类名:FileListOption;
方法or属性:complete?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileCopyOption;
方法or属性:complete?: () => void;
旧版本信息:|类名:FileCopyOption;
方法or属性:complete?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileGetOption;
方法or属性:complete?: () => void;
旧版本信息:|类名:FileGetOption;
方法or属性:complete?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileDeleteOption;
方法or属性:complete?: () => void;
旧版本信息:|类名:FileDeleteOption;
方法or属性:complete?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileWriteTextOption;
方法or属性:complete?: () => void;
旧版本信息:|类名:FileWriteTextOption;
方法or属性:complete?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadTextOption;
方法or属性:complete?: () => void;
旧版本信息:|类名:FileReadTextOption;
方法or属性:complete?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileWriteArrayBufferOption;
方法or属性:complete?: () => void;
旧版本信息:|类名:FileWriteArrayBufferOption;
方法or属性:complete?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadArrayBufferOption;
方法or属性:complete?: () => void;
旧版本信息:|类名:FileReadArrayBufferOption;
方法or属性:complete?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileAccessOption;
方法or属性:complete?: () => void;
旧版本信息:|类名:FileAccessOption;
方法or属性:complete?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileMkdirOption;
方法or属性:complete?: () => void;
旧版本信息:|类名:FileMkdirOption;
方法or属性:complete?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileRmdirOption;
方法or属性:complete?: () => void;
旧版本信息:|类名:FileRmdirOption;
方法or属性:complete?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileListResponse;
方法or属性:export interface FileListResponse
旧版本信息:|类名:FileListResponse;
方法or属性:export interface FileListResponse
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileListResponse;
方法or属性:fileList: Array\;
旧版本信息:|类名:FileListResponse;
方法or属性:fileList: Array\;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileListOption;
方法or属性:export interface FileListOption
旧版本信息:|类名:FileListOption;
方法or属性:export interface FileListOption
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileListOption;
方法or属性:success?: (data: FileListResponse) => void;
旧版本信息:|类名:FileListOption;
方法or属性:success?: (data: FileListResponse) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileCopyOption;
方法or属性:export interface FileCopyOption
旧版本信息:|类名:FileCopyOption;
方法or属性:export interface FileCopyOption
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileGetOption;
方法or属性:export interface FileGetOption
旧版本信息:|类名:FileGetOption;
方法or属性:export interface FileGetOption
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileGetOption;
方法or属性:recursive?: boolean;
旧版本信息:|类名:FileGetOption;
方法or属性:recursive?: boolean;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileMkdirOption;
方法or属性:recursive?: boolean;
旧版本信息:|类名:FileMkdirOption;
方法or属性:recursive?: boolean;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileRmdirOption;
方法or属性:recursive?: boolean;
旧版本信息:|类名:FileRmdirOption;
方法or属性:recursive?: boolean;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileGetOption;
方法or属性:success?: (file: FileResponse) => void;
旧版本信息:|类名:FileGetOption;
方法or属性:success?: (file: FileResponse) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileDeleteOption;
方法or属性:export interface FileDeleteOption
旧版本信息:|类名:FileDeleteOption;
方法or属性:export interface FileDeleteOption
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileDeleteOption;
方法or属性:success?: () => void;
旧版本信息:|类名:FileDeleteOption;
方法or属性:success?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileWriteTextOption;
方法or属性:success?: () => void;
旧版本信息:|类名:FileWriteTextOption;
方法or属性:success?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileWriteArrayBufferOption;
方法or属性:success?: () => void;
旧版本信息:|类名:FileWriteArrayBufferOption;
方法or属性:success?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileAccessOption;
方法or属性:success?: () => void;
旧版本信息:|类名:FileAccessOption;
方法or属性:success?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileMkdirOption;
方法or属性:success?: () => void;
旧版本信息:|类名:FileMkdirOption;
方法or属性:success?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileRmdirOption;
方法or属性:success?: () => void;
旧版本信息:|类名:FileRmdirOption;
方法or属性:success?: () => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileWriteTextOption;
方法or属性:export interface FileWriteTextOption
旧版本信息:|类名:FileWriteTextOption;
方法or属性:export interface FileWriteTextOption
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileWriteTextOption;
方法or属性:text: string;
旧版本信息:|类名:FileWriteTextOption;
方法or属性:text: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadTextResponse;
方法or属性:text: string;
旧版本信息:|类名:FileReadTextResponse;
方法or属性:text: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileWriteTextOption;
方法or属性:encoding?: string;
旧版本信息:|类名:FileWriteTextOption;
方法or属性:encoding?: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadTextOption;
方法or属性:encoding?: string;
旧版本信息:|类名:FileReadTextOption;
方法or属性:encoding?: string;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileWriteTextOption;
方法or属性:append?: boolean;
旧版本信息:|类名:FileWriteTextOption;
方法or属性:append?: boolean;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileWriteArrayBufferOption;
方法or属性:append?: boolean;
旧版本信息:|类名:FileWriteArrayBufferOption;
方法or属性:append?: boolean;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadTextResponse;
方法or属性:export interface FileReadTextResponse
旧版本信息:|类名:FileReadTextResponse;
方法or属性:export interface FileReadTextResponse
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadTextOption;
方法or属性:export interface FileReadTextOption
旧版本信息:|类名:FileReadTextOption;
方法or属性:export interface FileReadTextOption
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadTextOption;
方法or属性:position?: number;
旧版本信息:|类名:FileReadTextOption;
方法or属性:position?: number;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileWriteArrayBufferOption;
方法or属性:position?: number;
旧版本信息:|类名:FileWriteArrayBufferOption;
方法or属性:position?: number;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadArrayBufferOption;
方法or属性:position?: number;
旧版本信息:|类名:FileReadArrayBufferOption;
方法or属性:position?: number;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadTextOption;
方法or属性:length?: number;
旧版本信息:|类名:FileReadTextOption;
方法or属性:length?: number;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadArrayBufferOption;
方法or属性:length?: number;
旧版本信息:|类名:FileReadArrayBufferOption;
方法or属性:length?: number;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadTextOption;
方法or属性:success?: (data: FileReadTextResponse) => void;
旧版本信息:|类名:FileReadTextOption;
方法or属性:success?: (data: FileReadTextResponse) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileWriteArrayBufferOption;
方法or属性:export interface FileWriteArrayBufferOption
旧版本信息:|类名:FileWriteArrayBufferOption;
方法or属性:export interface FileWriteArrayBufferOption
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileWriteArrayBufferOption;
方法or属性:buffer: Uint8Array;
旧版本信息:|类名:FileWriteArrayBufferOption;
方法or属性:buffer: Uint8Array;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadArrayBufferResponse;
方法or属性:buffer: Uint8Array;
旧版本信息:|类名:FileReadArrayBufferResponse;
方法or属性:buffer: Uint8Array;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadArrayBufferResponse;
方法or属性:export interface FileReadArrayBufferResponse
旧版本信息:|类名:FileReadArrayBufferResponse;
方法or属性:export interface FileReadArrayBufferResponse
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadArrayBufferOption;
方法or属性:export interface FileReadArrayBufferOption
旧版本信息:|类名:FileReadArrayBufferOption;
方法or属性:export interface FileReadArrayBufferOption
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileReadArrayBufferOption;
方法or属性:success?: (data: FileReadArrayBufferResponse) => void;
旧版本信息:|类名:FileReadArrayBufferOption;
方法or属性:success?: (data: FileReadArrayBufferResponse) => void;
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileAccessOption;
方法or属性:export interface FileAccessOption
旧版本信息:|类名:FileAccessOption;
方法or属性:export interface FileAccessOption
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileMkdirOption;
方法or属性:export interface FileMkdirOption
旧版本信息:|类名:FileMkdirOption;
方法or属性:export interface FileMkdirOption
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:FileRmdirOption;
方法or属性:export interface FileRmdirOption
旧版本信息:|类名:FileRmdirOption;
方法or属性:export interface FileRmdirOption
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:File;
方法or属性:export default class File
旧版本信息:|类名:File;
方法or属性:export default class File
新版本信息:10
代替接口:|@system.file.d.ts| +|废弃版本有变化|类名:File;
方法or属性:static move(options: FileMoveOption): void;
旧版本信息:|类名:File;
方法or属性:static move(options: FileMoveOption): void;
新版本信息:10
代替接口: ohos.file.fs.moveFile|@system.file.d.ts| +|废弃版本有变化|类名:File;
方法or属性:static copy(options: FileCopyOption): void;
旧版本信息:|类名:File;
方法or属性:static copy(options: FileCopyOption): void;
新版本信息:10
代替接口: ohos.file.fs.copyFile|@system.file.d.ts| +|废弃版本有变化|类名:File;
方法or属性:static list(options: FileListOption): void;
旧版本信息:|类名:File;
方法or属性:static list(options: FileListOption): void;
新版本信息:10
代替接口: ohos.file.fs.listFile|@system.file.d.ts| +|废弃版本有变化|类名:File;
方法or属性:static get(options: FileGetOption): void;
旧版本信息:|类名:File;
方法or属性:static get(options: FileGetOption): void;
新版本信息:10
代替接口: ohos.file.fs.stat|@system.file.d.ts| +|废弃版本有变化|类名:File;
方法or属性:static delete(options: FileDeleteOption): void;
旧版本信息:|类名:File;
方法or属性:static delete(options: FileDeleteOption): void;
新版本信息:10
代替接口: ohos.file.fs.unlink|@system.file.d.ts| +|废弃版本有变化|类名:File;
方法or属性:static writeText(options: FileWriteTextOption): void;
旧版本信息:|类名:File;
方法or属性:static writeText(options: FileWriteTextOption): void;
新版本信息:10
代替接口: ohos.file.fs.write|@system.file.d.ts| +|废弃版本有变化|类名:File;
方法or属性:static readText(options: FileReadTextOption): void;
旧版本信息:|类名:File;
方法or属性:static readText(options: FileReadTextOption): void;
新版本信息:10
代替接口: ohos.file.fs.readText|@system.file.d.ts| +|废弃版本有变化|类名:File;
方法or属性:static writeArrayBuffer(options: FileWriteArrayBufferOption): void;
旧版本信息:|类名:File;
方法or属性:static writeArrayBuffer(options: FileWriteArrayBufferOption): void;
新版本信息:10
代替接口: ohos.file.fs.write|@system.file.d.ts| +|废弃版本有变化|类名:File;
方法or属性:static readArrayBuffer(options: FileReadArrayBufferOption): void;
旧版本信息:|类名:File;
方法or属性:static readArrayBuffer(options: FileReadArrayBufferOption): void;
新版本信息:10
代替接口: ohos.file.fs.read|@system.file.d.ts| +|废弃版本有变化|类名:File;
方法or属性:static access(options: FileAccessOption): void;
旧版本信息:|类名:File;
方法or属性:static access(options: FileAccessOption): void;
新版本信息:10
代替接口: ohos.file.fs.access|@system.file.d.ts| +|废弃版本有变化|类名:File;
方法or属性:static mkdir(options: FileMkdirOption): void;
旧版本信息:|类名:File;
方法or属性:static mkdir(options: FileMkdirOption): void;
新版本信息:10
代替接口: ohos.file.fs.mkdir|@system.file.d.ts| +|废弃版本有变化|类名:File;
方法or属性:static rmdir(options: FileRmdirOption): void;
旧版本信息:|类名:File;
方法or属性:static rmdir(options: FileRmdirOption): void;
新版本信息:10
代替接口: ohos.file.fs.rmdir|@system.file.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function choose(callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function choose(callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.document.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function choose(types: string[], callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function choose(types: string[], callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.document.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function show(uri: string, type: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function show(uri: string, type: string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.document.d.ts| +|新增(错误码)|类名:storageStatistics;
方法or属性:function getTotalSizeOfVolume(volumeUuid: string): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getTotalSizeOfVolume(volumeUuid: string): Promise\;
新版本信息:201,202,401,13600001,13600008,13900032|@ohos.file.storageStatistics.d.ts| +|新增(错误码)|类名:storageStatistics;
方法or属性:function getFreeSizeOfVolume(volumeUuid: string): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getFreeSizeOfVolume(volumeUuid: string): Promise\;
新版本信息:201,202,401,13600001,13600008,13900032|@ohos.file.storageStatistics.d.ts| +|新增(错误码)|类名:storageStatistics;
方法or属性:function getBundleStats(packageName: string): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getBundleStats(packageName: string): Promise\;
新版本信息:201,202,401,13600001,13600008,13900032|@ohos.file.storageStatistics.d.ts| +|新增(错误码)|类名:storageStatistics;
方法or属性:function getCurrentBundleStats(): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getCurrentBundleStats(): Promise\;
新版本信息:401,13600001,13900032|@ohos.file.storageStatistics.d.ts| +|新增(错误码)|类名:storageStatistics;
方法or属性:function getSystemSize(): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getSystemSize(): Promise\;
新版本信息:201,202,401,13600001,13900032|@ohos.file.storageStatistics.d.ts| +|新增(错误码)|类名:storageStatistics;
方法or属性:function getUserStorageStats(callback: AsyncCallback\): void;
旧版本信息:|类名:storageStatistics;
方法or属性:function getUserStorageStats(callback: AsyncCallback\): void;
新版本信息:201,202,401,13600001,13900032|@ohos.file.storageStatistics.d.ts| +|新增(错误码)|类名:storageStatistics;
方法or属性:function getUserStorageStats(userId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:storageStatistics;
方法or属性:function getUserStorageStats(userId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,13600001,13600009,13900032|@ohos.file.storageStatistics.d.ts| +|新增(错误码)|类名:storageStatistics;
方法or属性:function getTotalSize(): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getTotalSize(): Promise\;
新版本信息:201,202,401,13600001,13900032|@ohos.file.storageStatistics.d.ts| +|新增(错误码)|类名:storageStatistics;
方法or属性:function getFreeSize(): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getFreeSize(): Promise\;
新版本信息:201,202,401,13600001,13900032|@ohos.file.storageStatistics.d.ts| +|新增(错误码)|类名:volumeManager;
方法or属性:function getAllVolumes(): Promise\>;
旧版本信息:|类名:volumeManager;
方法or属性:function getAllVolumes(): Promise\>;
新版本信息:201,202,401,13600001,13900032|@ohos.file.volumeManager.d.ts| +|新增(错误码)|类名:volumeManager;
方法or属性:function mount(volumeId: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function mount(volumeId: string): Promise\;
新版本信息:201,202,401,13600001,13600002,13600003,13600005,13600008,13900032|@ohos.file.volumeManager.d.ts| +|新增(错误码)|类名:volumeManager;
方法or属性:function unmount(volumeId: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function unmount(volumeId: string): Promise\;
新版本信息:201,202,401,13600001,13600002,13600004,13600005,13600008,13900032|@ohos.file.volumeManager.d.ts| +|新增(错误码)|类名:volumeManager;
方法or属性:function getVolumeByUuid(uuid: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function getVolumeByUuid(uuid: string): Promise\;
新版本信息:201,202,401,13600001,13600008,13900032|@ohos.file.volumeManager.d.ts| +|新增(错误码)|类名:volumeManager;
方法or属性:function getVolumeById(volumeId: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function getVolumeById(volumeId: string): Promise\;
新版本信息:201,202,401,13600001,13600008,13900032|@ohos.file.volumeManager.d.ts| +|新增(错误码)|类名:volumeManager;
方法or属性:function setVolumeDescription(uuid: string, description: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function setVolumeDescription(uuid: string, description: string): Promise\;
新版本信息:201,202,401,13600001,13600002,13600005,13600008,13900032|@ohos.file.volumeManager.d.ts| +|新增(错误码)|类名:volumeManager;
方法or属性:function format(volumeId: string, fsType: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function format(volumeId: string, fsType: string): Promise\;
新版本信息:201,202,401,13600001,13600002,13600005,13600008,13900032|@ohos.file.volumeManager.d.ts| +|新增(错误码)|类名:volumeManager;
方法or属性:function partition(diskId: string, type: number): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function partition(diskId: string, type: number): Promise\;
新版本信息:201,202,401,13600001,13600008,13900032|@ohos.file.volumeManager.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function access(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function access(path: string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function access(path: string, mode: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function access(path: string, mode: number, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function close(fd: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function close(fd: number, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function copyFile(src: string \| number, dest: string \| number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function copyFile(src: string \| number, dest: string \| number, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function copyFile(
src: string \| number,
dest: string \| number,
mode: number,
callback: AsyncCallback\
): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function copyFile(
src: string \| number,
dest: string \| number,
mode: number,
callback: AsyncCallback\
): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function createStream(path: string, mode: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function createStream(path: string, mode: string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function chown(path: string, uid: number, gid: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function chown(path: string, uid: number, gid: number, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function chmod(path: string, mode: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function chmod(path: string, mode: number, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function ftruncate(fd: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function ftruncate(fd: number, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function ftruncate(fd: number, len: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function ftruncate(fd: number, len: number, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function fsync(fd: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function fsync(fd: number, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function fstat(fd: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function fstat(fd: number, callback: AsyncCallback\): void;
新版本信息:fstat|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function fdatasync(fd: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function fdatasync(fd: number, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function fchown(fd: number, uid: number, gid: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function fchown(fd: number, uid: number, gid: number, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function fchmod(fd: number, mode: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function fchmod(fd: number, mode: number, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function fdopenStream(fd: number, mode: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function fdopenStream(fd: number, mode: string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function hash(path: string, algorithm: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function hash(path: string, algorithm: string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function lchown(path: string, uid: number, gid: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function lchown(path: string, uid: number, gid: number, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function lstat(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function lstat(path: string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function mkdir(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function mkdir(path: string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function mkdir(path: string, mode: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function mkdir(path: string, mode: number, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function mkdtemp(prefix: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function mkdtemp(prefix: string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function open(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function open(path: string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function open(path: string, flags: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function open(path: string, flags: number, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function open(path: string, flags: number, mode: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function open(path: string, flags: number, mode: number, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function opendir(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function opendir(path: string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function readText(
filePath: string,
options: {
position?: number;
length?: number;
encoding?: string;
},
callback: AsyncCallback\
): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function readText(
filePath: string,
options: {
position?: number;
length?: number;
encoding?: string;
},
callback: AsyncCallback\
): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function read(fd: number, buffer: ArrayBuffer, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function read(fd: number, buffer: ArrayBuffer, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function read(
fd: number,
buffer: ArrayBuffer,
options: {
offset?: number;
length?: number;
position?: number;
},
callback: AsyncCallback\
): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function read(
fd: number,
buffer: ArrayBuffer,
options: {
offset?: number;
length?: number;
position?: number;
},
callback: AsyncCallback\
): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function rename(oldPath: string, newPath: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function rename(oldPath: string, newPath: string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function rmdir(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function rmdir(path: string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function stat(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function stat(path: string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function symlink(target: string, srcPath: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function symlink(target: string, srcPath: string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function truncate(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function truncate(path: string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function truncate(path: string, len: number, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function truncate(path: string, len: number, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function unlink(path: string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function unlink(path: string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function write(fd: number, buffer: ArrayBuffer \| string, callback: AsyncCallback\): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function write(fd: number, buffer: ArrayBuffer \| string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:sourcefile;
方法or属性:declare function write(
fd: number,
buffer: ArrayBuffer \| string,
options: {
offset?: number;
length?: number;
position?: number;
encoding?: string;
},
callback: AsyncCallback\
): void;
旧版本信息:|类名:sourcefile;
方法or属性:declare function write(
fd: number,
buffer: ArrayBuffer \| string,
options: {
offset?: number;
length?: number;
position?: number;
encoding?: string;
},
callback: AsyncCallback\
): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:Dir;
方法or属性:read(callback: AsyncCallback\): void;
旧版本信息:|类名:Dir;
方法or属性:read(callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:Dir;
方法or属性:close(callback: AsyncCallback\): void;
旧版本信息:|类名:Dir;
方法or属性:close(callback: AsyncCallback\): void;
新版本信息:close|@ohos.fileio.d.ts| +|新增(错误码)|类名:Stream;
方法or属性:close(callback: AsyncCallback\): void;
旧版本信息:|类名:Stream;
方法or属性:close(callback: AsyncCallback\): void;
新版本信息:close|@ohos.fileio.d.ts| +|新增(错误码)|类名:Stream;
方法or属性:flush(callback: AsyncCallback\): void;
旧版本信息:|类名:Stream;
方法or属性:flush(callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:Stream;
方法or属性:write(buffer: ArrayBuffer \| string, callback: AsyncCallback\): void;
旧版本信息:|类名:Stream;
方法or属性:write(buffer: ArrayBuffer \| string, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:Stream;
方法or属性:write(
buffer: ArrayBuffer \| string,
options: {
offset?: number;
length?: number;
position?: number;
encoding?: string;
},
callback: AsyncCallback\
): void;
旧版本信息:|类名:Stream;
方法or属性:write(
buffer: ArrayBuffer \| string,
options: {
offset?: number;
length?: number;
position?: number;
encoding?: string;
},
callback: AsyncCallback\
): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:Stream;
方法or属性:read(buffer: ArrayBuffer, callback: AsyncCallback\): void;
旧版本信息:|类名:Stream;
方法or属性:read(buffer: ArrayBuffer, callback: AsyncCallback\): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:Stream;
方法or属性:read(
buffer: ArrayBuffer,
options: {
position?: number;
offset?: number;
length?: number;
},
callback: AsyncCallback\
): void;
旧版本信息:|类名:Stream;
方法or属性:read(
buffer: ArrayBuffer,
options: {
position?: number;
offset?: number;
length?: number;
},
callback: AsyncCallback\
): void;
新版本信息:Parameter|@ohos.fileio.d.ts| +|新增(错误码)|类名:Watcher;
方法or属性:stop(callback: AsyncCallback\): void;
旧版本信息:|类名:Watcher;
方法or属性:stop(callback: AsyncCallback\): void;
新版本信息:stop|@ohos.fileio.d.ts| +|访问级别有变化|类名:storageStatistics;
方法or属性:function getTotalSizeOfVolume(volumeUuid: string): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getTotalSizeOfVolume(volumeUuid: string): Promise\;
新版本信息:systemapi|@ohos.file.storageStatistics.d.ts| +|访问级别有变化|类名:storageStatistics;
方法or属性:function getFreeSizeOfVolume(volumeUuid: string): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getFreeSizeOfVolume(volumeUuid: string): Promise\;
新版本信息:systemapi|@ohos.file.storageStatistics.d.ts| +|访问级别有变化|类名:storageStatistics;
方法or属性:function getBundleStats(packageName: string): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getBundleStats(packageName: string): Promise\;
新版本信息:systemapi|@ohos.file.storageStatistics.d.ts| +|访问级别有变化|类名:storageStatistics;
方法or属性:function getSystemSize(): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getSystemSize(): Promise\;
新版本信息:systemapi|@ohos.file.storageStatistics.d.ts| +|访问级别有变化|类名:storageStatistics;
方法or属性:function getUserStorageStats(callback: AsyncCallback\): void;
旧版本信息:|类名:storageStatistics;
方法or属性:function getUserStorageStats(callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.file.storageStatistics.d.ts| +|访问级别有变化|类名:storageStatistics;
方法or属性:function getUserStorageStats(userId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:storageStatistics;
方法or属性:function getUserStorageStats(userId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.file.storageStatistics.d.ts| +|访问级别有变化|类名:storageStatistics;
方法or属性:function getTotalSize(): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getTotalSize(): Promise\;
新版本信息:systemapi|@ohos.file.storageStatistics.d.ts| +|访问级别有变化|类名:storageStatistics;
方法or属性:function getFreeSize(): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getFreeSize(): Promise\;
新版本信息:systemapi|@ohos.file.storageStatistics.d.ts| +|访问级别有变化|类名:volumeManager;
方法or属性:function getAllVolumes(): Promise\>;
旧版本信息:|类名:volumeManager;
方法or属性:function getAllVolumes(): Promise\>;
新版本信息:systemapi|@ohos.file.volumeManager.d.ts| +|访问级别有变化|类名:volumeManager;
方法or属性:function mount(volumeId: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function mount(volumeId: string): Promise\;
新版本信息:systemapi|@ohos.file.volumeManager.d.ts| +|访问级别有变化|类名:volumeManager;
方法or属性:function unmount(volumeId: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function unmount(volumeId: string): Promise\;
新版本信息:systemapi|@ohos.file.volumeManager.d.ts| +|访问级别有变化|类名:volumeManager;
方法or属性:function getVolumeByUuid(uuid: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function getVolumeByUuid(uuid: string): Promise\;
新版本信息:systemapi|@ohos.file.volumeManager.d.ts| +|访问级别有变化|类名:volumeManager;
方法or属性:function getVolumeById(volumeId: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function getVolumeById(volumeId: string): Promise\;
新版本信息:systemapi|@ohos.file.volumeManager.d.ts| +|访问级别有变化|类名:volumeManager;
方法or属性:function setVolumeDescription(uuid: string, description: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function setVolumeDescription(uuid: string, description: string): Promise\;
新版本信息:systemapi|@ohos.file.volumeManager.d.ts| +|访问级别有变化|类名:volumeManager;
方法or属性:function format(volumeId: string, fsType: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function format(volumeId: string, fsType: string): Promise\;
新版本信息:systemapi|@ohos.file.volumeManager.d.ts| +|访问级别有变化|类名:volumeManager;
方法or属性:function partition(diskId: string, type: number): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function partition(diskId: string, type: number): Promise\;
新版本信息:systemapi|@ohos.file.volumeManager.d.ts| +|访问级别有变化|类名:Volume;
方法or属性:path: string;
旧版本信息:|类名:Volume;
方法or属性:path: string;
新版本信息:systemapi|@ohos.file.volumeManager.d.ts| +|权限有变化|类名:storageStatistics;
方法or属性:function getTotalSizeOfVolume(volumeUuid: string): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getTotalSizeOfVolume(volumeUuid: string): Promise\;
新版本信息:ohos.permission.STORAGE_MANAGER|@ohos.file.storageStatistics.d.ts| +|权限有变化|类名:storageStatistics;
方法or属性:function getFreeSizeOfVolume(volumeUuid: string): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getFreeSizeOfVolume(volumeUuid: string): Promise\;
新版本信息:ohos.permission.STORAGE_MANAGER|@ohos.file.storageStatistics.d.ts| +|权限有变化|类名:storageStatistics;
方法or属性:function getBundleStats(packageName: string): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getBundleStats(packageName: string): Promise\;
新版本信息:ohos.permission.STORAGE_MANAGER|@ohos.file.storageStatistics.d.ts| +|权限有变化|类名:storageStatistics;
方法or属性:function getSystemSize(): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getSystemSize(): Promise\;
新版本信息:ohos.permission.STORAGE_MANAGER|@ohos.file.storageStatistics.d.ts| +|权限有变化|类名:storageStatistics;
方法or属性:function getUserStorageStats(callback: AsyncCallback\): void;
旧版本信息:|类名:storageStatistics;
方法or属性:function getUserStorageStats(callback: AsyncCallback\): void;
新版本信息:ohos.permission.STORAGE_MANAGER|@ohos.file.storageStatistics.d.ts| +|权限有变化|类名:storageStatistics;
方法or属性:function getUserStorageStats(userId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:storageStatistics;
方法or属性:function getUserStorageStats(userId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.STORAGE_MANAGER|@ohos.file.storageStatistics.d.ts| +|权限有变化|类名:storageStatistics;
方法or属性:function getTotalSize(): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getTotalSize(): Promise\;
新版本信息:ohos.permission.STORAGE_MANAGER|@ohos.file.storageStatistics.d.ts| +|权限有变化|类名:storageStatistics;
方法or属性:function getFreeSize(): Promise\;
旧版本信息:|类名:storageStatistics;
方法or属性:function getFreeSize(): Promise\;
新版本信息:ohos.permission.STORAGE_MANAGER|@ohos.file.storageStatistics.d.ts| +|权限有变化|类名:volumeManager;
方法or属性:function getAllVolumes(): Promise\>;
旧版本信息:|类名:volumeManager;
方法or属性:function getAllVolumes(): Promise\>;
新版本信息:ohos.permission.STORAGE_MANAGER|@ohos.file.volumeManager.d.ts| +|权限有变化|类名:volumeManager;
方法or属性:function mount(volumeId: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function mount(volumeId: string): Promise\;
新版本信息:ohos.permission.MOUNT_UNMOUNT_MANAGER|@ohos.file.volumeManager.d.ts| +|权限有变化|类名:volumeManager;
方法or属性:function unmount(volumeId: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function unmount(volumeId: string): Promise\;
新版本信息:ohos.permission.MOUNT_UNMOUNT_MANAGER|@ohos.file.volumeManager.d.ts| +|权限有变化|类名:volumeManager;
方法or属性:function getVolumeByUuid(uuid: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function getVolumeByUuid(uuid: string): Promise\;
新版本信息:ohos.permission.STORAGE_MANAGER|@ohos.file.volumeManager.d.ts| +|权限有变化|类名:volumeManager;
方法or属性:function getVolumeById(volumeId: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function getVolumeById(volumeId: string): Promise\;
新版本信息:ohos.permission.STORAGE_MANAGER|@ohos.file.volumeManager.d.ts| +|权限有变化|类名:volumeManager;
方法or属性:function setVolumeDescription(uuid: string, description: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function setVolumeDescription(uuid: string, description: string): Promise\;
新版本信息:ohos.permission.MOUNT_UNMOUNT_MANAGER|@ohos.file.volumeManager.d.ts| +|权限有变化|类名:volumeManager;
方法or属性:function format(volumeId: string, fsType: string): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function format(volumeId: string, fsType: string): Promise\;
新版本信息:ohos.permission.MOUNT_FORMAT_MANAGER|@ohos.file.volumeManager.d.ts| +|权限有变化|类名:volumeManager;
方法or属性:function partition(diskId: string, type: number): Promise\;
旧版本信息:|类名:volumeManager;
方法or属性:function partition(diskId: string, type: number): Promise\;
新版本信息:ohos.permission.MOUNT_FORMAT_MANAGER|@ohos.file.volumeManager.d.ts| +|权限有变化|类名:fileShare;
方法or属性:function grantUriPermission(
uri: string,
bundleName: string,
flag: wantConstant.Flags,
callback: AsyncCallback\
): void;
旧版本信息:|类名:fileShare;
方法or属性:function grantUriPermission(
uri: string,
bundleName: string,
flag: wantConstant.Flags,
callback: AsyncCallback\
): void;
新版本信息:ohos.permission.WRITE_MEDIA|@ohos.fileshare.d.ts| +|权限有变化|类名:fileShare;
方法or属性:function grantUriPermission(uri: string, bundleName: string, flag: wantConstant.Flags): Promise\;
旧版本信息:|类名:fileShare;
方法or属性:function grantUriPermission(uri: string, bundleName: string, flag: wantConstant.Flags): Promise\;
新版本信息:ohos.permission.WRITE_MEDIA|@ohos.fileshare.d.ts| +|type有变化|类名:PhotoSelectOptions;
方法or属性:MIMEType?: PhotoViewMIMETypes;
旧版本信息:PhotoViewMIMETypes|类名:PhotoSelectOptions;
方法or属性:MIMEType?: PhotoViewMIMETypes;
新版本信息:?PhotoViewMIMETypes|@ohos.file.picker.d.ts| +|type有变化|类名:PhotoSelectOptions;
方法or属性:maxSelectNumber?: number;
旧版本信息:number|类名:PhotoSelectOptions;
方法or属性:maxSelectNumber?: number;
新版本信息:?number|@ohos.file.picker.d.ts| +|type有变化|类名:PhotoSaveOptions;
方法or属性:newFileNames?: Array\;
旧版本信息:Array\|类名:PhotoSaveOptions;
方法or属性:newFileNames?: Array\;
新版本信息:?Array\|@ohos.file.picker.d.ts| +|type有变化|类名:DocumentSaveOptions;
方法or属性:newFileNames?: Array\;
旧版本信息:Array\|类名:DocumentSaveOptions;
方法or属性:newFileNames?: Array\;
新版本信息:?Array\|@ohos.file.picker.d.ts| +|type有变化|类名:AudioSaveOptions;
方法or属性:newFileNames?: Array\;
旧版本信息:Array\|类名:AudioSaveOptions;
方法or属性:newFileNames?: Array\;
新版本信息:?Array\|@ohos.file.picker.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-geolocation.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-geolocation.md new file mode 100644 index 0000000000..4e191569f4 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-geolocation.md @@ -0,0 +1,22 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:geoLocationManager;
方法or属性:function on(type: 'locatingRequiredDataChange', config: LocatingRequiredDataConfig, callback: Callback\>): void;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:geoLocationManager;
方法or属性:function off(type: 'locatingRequiredDataChange', callback?: Callback\>): void;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:geoLocationManager;
方法or属性:function getLocatingRequiredData(config: LocatingRequiredDataConfig): Promise\>;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:LocatingRequiredDataConfig;
方法or属性:type: LocatingRequiredDataType;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:LocatingRequiredDataConfig;
方法or属性:needStartScan: boolean;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:LocatingRequiredDataConfig;
方法or属性:scanInterval?: number;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:LocatingRequiredDataConfig;
方法or属性:scanTimeout?: number;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:LocatingRequiredData;
方法or属性:wifiData?: WifiScanInfo;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:LocatingRequiredData;
方法or属性:bluetoothData?: BluetoothScanInfo;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:WifiScanInfo;
方法or属性:ssid: string;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:WifiScanInfo;
方法or属性:bssid: string;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:WifiScanInfo;
方法or属性:rssi: number;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:BluetoothScanInfo;
方法or属性:rssi: number;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:WifiScanInfo;
方法or属性:frequency: number;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:WifiScanInfo;
方法or属性:timestamp: number;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:BluetoothScanInfo;
方法or属性:timestamp: number;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:BluetoothScanInfo;
方法or属性:deviceName: string;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:BluetoothScanInfo;
方法or属性:macAddress: string;|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:LocatingRequiredDataType;
方法or属性:WIFI = 1|@ohos.geoLocationManager.d.ts| +|新增|NA|类名:LocatingRequiredDataType;
方法or属性:BLUETOOTH|@ohos.geoLocationManager.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-global.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-global.md new file mode 100644 index 0000000000..5f6592c6e4 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-global.md @@ -0,0 +1,34 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:SuggestionType;
方法or属性:SUGGESTION_TYPE_NONE = 0|@ohos.i18n.d.ts| +|新增|NA|类名:SuggestionType;
方法or属性:SUGGESTION_TYPE_RELATED = 1|@ohos.i18n.d.ts| +|新增|NA|类名:SuggestionType;
方法or属性:SUGGESTION_TYPE_SIM = 2|@ohos.i18n.d.ts| +|新增|NA|类名:SortOptions;
方法or属性:locale?: string;|@ohos.i18n.d.ts| +|新增|NA|类名:SortOptions;
方法or属性:isUseLocalName?: boolean;|@ohos.i18n.d.ts| +|新增|NA|类名:SortOptions;
方法or属性:isSuggestedFirst?: boolean;|@ohos.i18n.d.ts| +|新增|NA|类名:LocaleItem;
方法or属性:id: string;|@ohos.i18n.d.ts| +|新增|NA|类名:LocaleItem;
方法or属性:suggestionType: SuggestionType;|@ohos.i18n.d.ts| +|新增|NA|类名:LocaleItem;
方法or属性:displayName: string;|@ohos.i18n.d.ts| +|新增|NA|类名:LocaleItem;
方法or属性:localName?: string;|@ohos.i18n.d.ts| +|新增|NA|类名:TimeZoneCityItem;
方法or属性:zoneId: string;|@ohos.i18n.d.ts| +|新增|NA|类名:TimeZoneCityItem;
方法or属性:cityId: string;|@ohos.i18n.d.ts| +|新增|NA|类名:TimeZoneCityItem;
方法or属性:cityDisplayName: string;|@ohos.i18n.d.ts| +|新增|NA|类名:TimeZoneCityItem;
方法or属性:offset: number;|@ohos.i18n.d.ts| +|新增|NA|类名:TimeZoneCityItem;
方法or属性:zoneDisplayName: string;|@ohos.i18n.d.ts| +|新增|NA|类名:TimeZoneCityItem;
方法or属性:rawOffset?: number;|@ohos.i18n.d.ts| +|新增|NA|类名:SystemLocaleManager;
方法or属性:constructor();|@ohos.i18n.d.ts| +|新增|NA|类名:SystemLocaleManager;
方法or属性:getLanguageInfoArray(languages: Array\, options?: SortOptions): Array\;|@ohos.i18n.d.ts| +|新增|NA|类名:SystemLocaleManager;
方法or属性:getRegionInfoArray(regions: Array\, options?: SortOptions): Array\;|@ohos.i18n.d.ts| +|新增|NA|类名:SystemLocaleManager;
方法or属性:static getTimeZoneCityItemArray(): Array\;|@ohos.i18n.d.ts| +|新增|NA|类名:resourceManager;
方法or属性:export function getSystemResourceManager(): ResourceManager;|@ohos.resourceManager.d.ts| +|新增|NA|类名:ResourceManager;
方法or属性:getColor(resId: number, callback: _AsyncCallback\): void;|@ohos.resourceManager.d.ts| +|新增|NA|类名:ResourceManager;
方法or属性:getColor(resId: number): Promise\;|@ohos.resourceManager.d.ts| +|新增|NA|类名:ResourceManager;
方法or属性:getColor(resource: Resource, callback: _AsyncCallback\): void;|@ohos.resourceManager.d.ts| +|新增|NA|类名:ResourceManager;
方法or属性:getColor(resource: Resource): Promise\;|@ohos.resourceManager.d.ts| +|新增|NA|类名:ResourceManager;
方法or属性:getColorByName(resName: string, callback: _AsyncCallback\): void;|@ohos.resourceManager.d.ts| +|新增|NA|类名:ResourceManager;
方法or属性:getColorByName(resName: string): Promise\;|@ohos.resourceManager.d.ts| +|新增|NA|类名:ResourceManager;
方法or属性:getColorSync(resId: number) : number;|@ohos.resourceManager.d.ts| +|新增|NA|类名:ResourceManager;
方法or属性:getColorSync(resource: Resource) : number;|@ohos.resourceManager.d.ts| +|新增|NA|类名:ResourceManager;
方法or属性:getColorByNameSync(resName: string) : number;|@ohos.resourceManager.d.ts| +|新增|NA|类名:ResourceManager;
方法or属性:addResource(path: string) : void;|@ohos.resourceManager.d.ts| +|新增|NA|类名:ResourceManager;
方法or属性:removeResource(path: string) : void;|@ohos.resourceManager.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-misc.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-misc.md new file mode 100644 index 0000000000..77fa2c6012 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-misc.md @@ -0,0 +1,61 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|删除|类名:InputMethodSetting;
方法or属性:on(type: 'imeShow' \| 'imeHide', callback: (info: Array\) => void): void;|NA|@ohos.inputMethod.d.ts| +|删除|类名:InputMethodSetting;
方法or属性:off(type: 'imeShow' \| 'imeHide', callback?: (info: Array\) => void): void;|NA|@ohos.inputMethod.d.ts| +|删除|类名:InputMethodController;
方法or属性:on(type: 'deleteLeft' \| 'deleteRight', callback: (length: number) => void): void;|NA|@ohos.inputMethod.d.ts| +|删除|类名:InputMethodController;
方法or属性:on(type: 'sendKeyboardStatus', callback: (keyBoardStatus: KeyboardStatus) => void): void;|NA|@ohos.inputMethod.d.ts| +|删除|类名:InputMethodController;
方法or属性:off(type: 'selectByRange'): void;|NA|@ohos.inputMethod.d.ts| +|删除|类名:InputMethodController;
方法or属性:off(type: 'selectByMovement'): void;|NA|@ohos.inputMethod.d.ts| +|删除|类名:InputMethodController;
方法or属性:off(type: 'insertText'): void;|NA|@ohos.inputMethod.d.ts| +|删除|类名:InputMethodController;
方法or属性:off(type: 'deleteLeft' \| 'deleteRight'): void;|NA|@ohos.inputMethod.d.ts| +|删除|类名:InputMethodController;
方法or属性:off(type: 'sendKeyboardStatus'): void;|NA|@ohos.inputMethod.d.ts| +|删除|类名:InputMethodController;
方法or属性:off(type: 'sendFunctionKey'): void;|NA|@ohos.inputMethod.d.ts| +|删除|类名:InputMethodController;
方法or属性:off(type: 'moveCursor'): void;|NA|@ohos.inputMethod.d.ts| +|删除|类名:InputMethodController;
方法or属性:off(type: 'handleExtendAction'): void;|NA|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodSetting;
方法or属性:on(type: 'imeShow', callback: (info: Array\) => void): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodSetting;
方法or属性:on(type: 'imeHide', callback: (info: Array\) => void): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodSetting;
方法or属性:off(type: 'imeShow', callback?: (info: Array\) => void): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodSetting;
方法or属性:off(type: 'imeHide', callback?: (info: Array\) => void): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:on(type: 'deleteLeft', callback: (length: number) => void): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:on(type: 'deleteRight', callback: (length: number) => void): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:on(type: 'sendKeyboardStatus', callback: (keyboardStatus: KeyboardStatus) => void): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:on(type: 'getLeftTextOfCursor', callback: (length: number) => string): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:on(type: 'getRightTextOfCursor', callback: (length: number) => string): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:on(type: 'getTextIndexAtCursor', callback: () => number): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:off(type: 'selectByRange', callback?: Callback\): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:off(type: 'selectByMovement', callback?: Callback\): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:off(type: 'insertText', callback?: (text: string) => void): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:off(type: 'deleteLeft', callback?: (length: number) => void): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:off(type: 'deleteRight', callback?: (length: number) => void): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:off(type: 'sendKeyboardStatus', callback?: (keyboardStatus: KeyboardStatus) => void): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:off(type: 'sendFunctionKey', callback?: (functionKey: FunctionKey) => void): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:off(type: 'moveCursor', callback?: (direction: Direction) => void): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:off(type: 'handleExtendAction', callback?: (action: ExtendAction) => void): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:off(type: 'getLeftTextOfCursor', callback?: (length: number) => string): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:off(type: 'getRightTextOfCursor', callback?: (length: number) => string): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:InputMethodController;
方法or属性:off(type: 'getTextIndexAtCursor', callback?: () => number): void;|@ohos.inputMethod.d.ts| +|新增|NA|类名:TextConfig;
方法or属性:cursorInfo?: CursorInfo;|@ohos.inputMethod.d.ts| +|新增|NA|类名:TextConfig;
方法or属性:selection?: Range;|@ohos.inputMethod.d.ts| +|新增|NA|类名:TextConfig;
方法or属性:windowId?: number;|@ohos.inputMethod.d.ts| +|新增|NA|类名:KeyboardDelegate;
方法or属性:on(type: 'keyEvent', callback: (event: InputKeyEvent) => boolean): void;|@ohos.inputMethodEngine.d.ts| +|新增|NA|类名:KeyboardDelegate;
方法or属性:on(type: 'editorAttributeChanged', callback: (attr: EditorAttribute) => void): void;|@ohos.inputMethodEngine.d.ts| +|新增|NA|类名:KeyboardDelegate;
方法or属性:off(type: 'keyEvent', callback?: (event: InputKeyEvent) => boolean): void;|@ohos.inputMethodEngine.d.ts| +|新增|NA|类名:KeyboardDelegate;
方法or属性:off(type: 'editorAttributeChanged', callback?: (attr: EditorAttribute) => void): void;|@ohos.inputMethodEngine.d.ts| +|新增|NA|类名:wallpaper;
方法or属性:function setCustomWallpaper(source: string, wallpaperType: WallpaperType, callback: AsyncCallback\): void;|@ohos.wallpaper.d.ts| +|新增|NA|类名:wallpaper;
方法or属性:function setCustomWallpaper(source: string, wallpaperType: WallpaperType): Promise\;|@ohos.wallpaper.d.ts| +|新增|NA|类名:WallpaperExtensionAbility;
方法or属性:onCreate(want: object): void;|@ohos.WallpaperExtensionAbility.d.ts| +|新增|NA|类名:WallpaperExtensionAbility;
方法or属性:onWallpaperChange(wallpaperType: number): void;|@ohos.WallpaperExtensionAbility.d.ts| +|新增|NA|类名:WallpaperExtensionAbility;
方法or属性:onDestroy(): void;|@ohos.WallpaperExtensionAbility.d.ts| +|错误码有变化|类名:wallpaper;
方法or属性:function off(

type: 'wallpaperChange',

callback?: (wallpaperType: WallpaperType, resourceType: WallpaperResourceType, uri?: string) => void

): void;
旧版本信息:202|类名:wallpaper;
方法or属性:function off(

type: 'wallpaperChange',

callback?: (wallpaperType: WallpaperType, resourceType: WallpaperResourceType, uri?: string) => void

): void;
新版本信息:401,202|@ohos.wallpaper.d.ts| +|type有变化|类名:InputMethodProperty;
方法or属性:readonly labelId?: number;
旧版本信息:|类名:InputMethodProperty;
方法or属性:readonly labelId?: number;
新版本信息:?number|@ohos.inputMethod.d.ts| +|type有变化|类名:InputMethodProperty;
方法or属性:readonly iconId?: number;
旧版本信息:|类名:InputMethodProperty;
方法or属性:readonly iconId?: number;
新版本信息:?number|@ohos.inputMethod.d.ts| +|type有变化|类名:Movement;
方法or属性:direction: Direction;
旧版本信息:number|类名:Movement;
方法or属性:direction: Direction;
新版本信息:Direction|@ohos.inputMethod.d.ts| +|type有变化|类名:TextConfig;
方法or属性:inputAttribute: InputAttribute;
旧版本信息:|类名:TextConfig;
方法or属性:inputAttribute: InputAttribute;
新版本信息:InputAttribute|@ohos.inputMethod.d.ts| +|type有变化|类名:Movement;
方法or属性:direction: Direction;
旧版本信息:number|类名:Movement;
方法or属性:direction: Direction;
新版本信息:Direction|@ohos.inputMethodEngine.d.ts| +|type有变化|类名:InputMethodSubtype;
方法or属性:readonly labelId?: number;
旧版本信息:|类名:InputMethodSubtype;
方法or属性:readonly labelId?: number;
新版本信息:?number|@ohos.InputMethodSubtype.d.ts| +|函数有变化|类名:Panel;
方法or属性:on(type: 'show' \| 'hide', callback: () => void): void;|类名:Panel;
方法or属性:on(type: 'show', callback: () => void): void;|@ohos.inputMethodEngine.d.ts| +|函数有变化|类名:Panel;
方法or属性:on(type: 'show' \| 'hide', callback: () => void): void;|类名:Panel;
方法or属性:on(type: 'hide', callback: () => void): void;|@ohos.inputMethodEngine.d.ts| +|函数有变化|类名:Panel;
方法or属性:off(type: 'show' \| 'hide', callback?: () => void): void;|类名:Panel;
方法or属性:off(type: 'show', callback?: () => void): void;|@ohos.inputMethodEngine.d.ts| +|函数有变化|类名:Panel;
方法or属性:off(type: 'show' \| 'hide', callback?: () => void): void;|类名:Panel;
方法or属性:off(type: 'hide', callback?: () => void): void;|@ohos.inputMethodEngine.d.ts| +|函数有变化|类名:wallpaper;
方法or属性:function on(

type: 'wallpaperChange',

callback: (wallpaperType: WallpaperType, resourceType: WallpaperResourceType) => void

): void;|类名:wallpaper;
方法or属性:function on(

type: 'wallpaperChange',

callback: (wallpaperType: WallpaperType, resourceType: WallpaperResourceType, uri?: string) => void

): void;|@ohos.wallpaper.d.ts| +|函数有变化|类名:wallpaper;
方法or属性:function off(

type: 'wallpaperChange',

callback?: (wallpaperType: WallpaperType, resourceType: WallpaperResourceType) => void

): void;|类名:wallpaper;
方法or属性:function off(

type: 'wallpaperChange',

callback?: (wallpaperType: WallpaperType, resourceType: WallpaperResourceType, uri?: string) => void

): void;|@ohos.wallpaper.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-msdp.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-msdp.md new file mode 100644 index 0000000000..945b29ea2c --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-msdp.md @@ -0,0 +1,15 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:CooperateMsg;
方法or属性:COOPERATE_SESSION_DISCONNECTED = 7|@ohos.cooperate.d.ts| +|新增|NA|类名:dragInteraction;
方法or属性:function on(type: 'drag', callback: Callback\): void;|@ohos.deviceStatus.dragInteraction.d.ts| +|新增|NA|类名:dragInteraction;
方法or属性:function off(type: 'drag', callback?: Callback\): void;|@ohos.deviceStatus.dragInteraction.d.ts| +|新增|NA|类名:DragState;
方法or属性:MSG_DRAG_STATE_START = 1|@ohos.deviceStatus.dragInteraction.d.ts| +|新增|NA|类名:DragState;
方法or属性:MSG_DRAG_STATE_STOP = 2|@ohos.deviceStatus.dragInteraction.d.ts| +|新增|NA|类名:DragState;
方法or属性:MSG_DRAG_STATE_CANCEL = 3|@ohos.deviceStatus.dragInteraction.d.ts| +|函数有变化|类名:CooperateMsg;
方法or属性:COOPERATE_PREPARE|类名:CooperateMsg;
方法or属性:COOPERATE_PREPARE = 0|@ohos.cooperate.d.ts| +|函数有变化|类名:CooperateMsg;
方法or属性:COOPERATE_UNPREPARE|类名:CooperateMsg;
方法or属性:COOPERATE_UNPREPARE = 1|@ohos.cooperate.d.ts| +|函数有变化|类名:CooperateMsg;
方法or属性:COOPERATE_ACTIVATE|类名:CooperateMsg;
方法or属性:COOPERATE_ACTIVATE = 2|@ohos.cooperate.d.ts| +|函数有变化|类名:CooperateMsg;
方法or属性:COOPERATE_ACTIVATE_SUCCESS|类名:CooperateMsg;
方法or属性:COOPERATE_ACTIVATE_SUCCESS = 3|@ohos.cooperate.d.ts| +|函数有变化|类名:CooperateMsg;
方法or属性:COOPERATE_ACTIVATE_FAIL|类名:CooperateMsg;
方法or属性:COOPERATE_ACTIVATE_FAIL = 4|@ohos.cooperate.d.ts| +|函数有变化|类名:CooperateMsg;
方法or属性:COOPERATE_DEACTIVATE_SUCCESS|类名:CooperateMsg;
方法or属性:COOPERATE_DEACTIVATE_SUCCESS = 5|@ohos.cooperate.d.ts| +|函数有变化|类名:CooperateMsg;
方法or属性:COOPERATE_DEACTIVATE_FAIL|类名:CooperateMsg;
方法or属性:COOPERATE_DEACTIVATE_FAIL = 6|@ohos.cooperate.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-multi-modal-input.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-multi-modal-input.md new file mode 100644 index 0000000000..8fc645cd59 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-multi-modal-input.md @@ -0,0 +1,90 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:Pinch;
方法or属性:type: ActionType;|@ohos.multimodalInput.gestureEvent.d.ts| +|新增|NA|类名:ThreeFingersSwipe;
方法or属性:type: ActionType;|@ohos.multimodalInput.gestureEvent.d.ts| +|新增|NA|类名:FourFingersSwipe;
方法or属性:type: ActionType;|@ohos.multimodalInput.gestureEvent.d.ts| +|新增|NA|类名:Pinch;
方法or属性:scale: number;|@ohos.multimodalInput.gestureEvent.d.ts| +|新增|NA|类名:ThreeFingersSwipe;
方法or属性:x: number;|@ohos.multimodalInput.gestureEvent.d.ts| +|新增|NA|类名:FourFingersSwipe;
方法or属性:x: number;|@ohos.multimodalInput.gestureEvent.d.ts| +|新增|NA|类名:ThreeFingersSwipe;
方法or属性:y: number;|@ohos.multimodalInput.gestureEvent.d.ts| +|新增|NA|类名:FourFingersSwipe;
方法or属性:y: number;|@ohos.multimodalInput.gestureEvent.d.ts| +|新增|NA|类名:ActionType;
方法or属性:CANCEL = 0|@ohos.multimodalInput.gestureEvent.d.ts| +|新增|NA|类名:ActionType;
方法or属性:BEGIN = 1|@ohos.multimodalInput.gestureEvent.d.ts| +|新增|NA|类名:ActionType;
方法or属性:UPDATE = 2|@ohos.multimodalInput.gestureEvent.d.ts| +|新增|NA|类名:ActionType;
方法or属性:END = 3|@ohos.multimodalInput.gestureEvent.d.ts| +|新增|NA|类名:inputDevice;
方法or属性:function setKeyboardRepeatDelay(delay: number, callback: AsyncCallback\): void;|@ohos.multimodalInput.inputDevice.d.ts| +|新增|NA|类名:inputDevice;
方法or属性:function setKeyboardRepeatDelay(delay: number): Promise\;|@ohos.multimodalInput.inputDevice.d.ts| +|新增|NA|类名:inputDevice;
方法or属性:function getKeyboardRepeatDelay(callback: AsyncCallback\): void;|@ohos.multimodalInput.inputDevice.d.ts| +|新增|NA|类名:inputDevice;
方法or属性:function getKeyboardRepeatDelay(): Promise\;|@ohos.multimodalInput.inputDevice.d.ts| +|新增|NA|类名:inputDevice;
方法or属性:function setKeyboardRepeatRate(rate: number, callback: AsyncCallback\): void;|@ohos.multimodalInput.inputDevice.d.ts| +|新增|NA|类名:inputDevice;
方法or属性:function setKeyboardRepeatRate(rate: number): Promise\;|@ohos.multimodalInput.inputDevice.d.ts| +|新增|NA|类名:inputDevice;
方法or属性:function getKeyboardRepeatRate(callback: AsyncCallback\): void;|@ohos.multimodalInput.inputDevice.d.ts| +|新增|NA|类名:inputDevice;
方法or属性:function getKeyboardRepeatRate(): Promise\;|@ohos.multimodalInput.inputDevice.d.ts| +|新增|NA|类名:inputMonitor;
方法or属性:function on(type: 'pinch', receiver: Callback\): void;|@ohos.multimodalInput.inputMonitor.d.ts| +|新增|NA|类名:inputMonitor;
方法or属性:function on(type: 'threeFingersSwipe', receiver: Callback\): void;|@ohos.multimodalInput.inputMonitor.d.ts| +|新增|NA|类名:inputMonitor;
方法or属性:function on(type: 'fourFingersSwipe', receiver: Callback\): void;|@ohos.multimodalInput.inputMonitor.d.ts| +|新增|NA|类名:inputMonitor;
方法or属性:function off(type: 'pinch', receiver?: Callback\): void;|@ohos.multimodalInput.inputMonitor.d.ts| +|新增|NA|类名:inputMonitor;
方法or属性:function off(type: 'threeFingersSwipe', receiver?: Callback\): void;|@ohos.multimodalInput.inputMonitor.d.ts| +|新增|NA|类名:inputMonitor;
方法or属性:function off(type: 'fourFingersSwipe', receiver?: Callback\): void;|@ohos.multimodalInput.inputMonitor.d.ts| +|新增|NA|类名:IntentionCode;
方法or属性:INTENTION_UNKNOWN = -1|@ohos.multimodalInput.intentionCode.d.ts| +|新增|NA|类名:IntentionCode;
方法or属性:INTENTION_UP = 1|@ohos.multimodalInput.intentionCode.d.ts| +|新增|NA|类名:IntentionCode;
方法or属性:INTENTION_DOWN = 2|@ohos.multimodalInput.intentionCode.d.ts| +|新增|NA|类名:IntentionCode;
方法or属性:INTENTION_LEFT = 3|@ohos.multimodalInput.intentionCode.d.ts| +|新增|NA|类名:IntentionCode;
方法or属性:INTENTION_RIGHT = 4|@ohos.multimodalInput.intentionCode.d.ts| +|新增|NA|类名:IntentionCode;
方法or属性:INTENTION_SELECT = 5|@ohos.multimodalInput.intentionCode.d.ts| +|新增|NA|类名:IntentionCode;
方法or属性:INTENTION_ESCAPE = 6|@ohos.multimodalInput.intentionCode.d.ts| +|新增|NA|类名:IntentionCode;
方法or属性:INTENTION_BACK = 7|@ohos.multimodalInput.intentionCode.d.ts| +|新增|NA|类名:IntentionCode;
方法or属性:INTENTION_FORWARD = 8|@ohos.multimodalInput.intentionCode.d.ts| +|新增|NA|类名:IntentionCode;
方法or属性:INTENTION_MENU = 9|@ohos.multimodalInput.intentionCode.d.ts| +|新增|NA|类名:IntentionCode;
方法or属性:INTENTION_PAGE_UP = 11|@ohos.multimodalInput.intentionCode.d.ts| +|新增|NA|类名:IntentionCode;
方法or属性:INTENTION_PAGE_DOWN = 12|@ohos.multimodalInput.intentionCode.d.ts| +|新增|NA|类名:IntentionCode;
方法or属性:INTENTION_ZOOM_OUT = 13|@ohos.multimodalInput.intentionCode.d.ts| +|新增|NA|类名:IntentionCode;
方法or属性:INTENTION_ZOOM_IN = 14|@ohos.multimodalInput.intentionCode.d.ts| +|新增|NA|类名:pointer;
方法or属性:function setTouchpadScrollSwitch(state: boolean, callback: AsyncCallback\): void;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function setTouchpadScrollSwitch(state: boolean): Promise\;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function getTouchpadScrollSwitch(callback: AsyncCallback\): void;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function getTouchpadScrollSwitch(): Promise\;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function setTouchpadScrollDirection(state: boolean, callback: AsyncCallback\): void;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function setTouchpadScrollDirection(state: boolean): Promise\;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function getTouchpadScrollDirection(callback: AsyncCallback\): void;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function getTouchpadScrollDirection(): Promise\;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function setTouchpadTapSwitch(state: boolean, callback: AsyncCallback\): void;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function setTouchpadTapSwitch(state: boolean): Promise\;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function getTouchpadTapSwitch(callback: AsyncCallback\): void;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function getTouchpadTapSwitch(): Promise\;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function setTouchpadPointerSpeed(speed: number, callback: AsyncCallback\): void;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function setTouchpadPointerSpeed(speed: number): Promise\;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function getTouchpadPointerSpeed(callback: AsyncCallback\): void;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function getTouchpadPointerSpeed(): Promise\;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function setTouchpadPinchSwitch(state: boolean, callback: AsyncCallback\): void;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function setTouchpadPinchSwitch(state: boolean): Promise\;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function getTouchpadPinchSwitch(callback: AsyncCallback\): void;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function getTouchpadPinchSwitch(): Promise\;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function setTouchpadSwipeSwitch(state: boolean, callback: AsyncCallback\): void;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function setTouchpadSwipeSwitch(state: boolean): Promise\;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function getTouchpadSwipeSwitch(callback: AsyncCallback\): void;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function getTouchpadSwipeSwitch(): Promise\;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function setTouchpadRightClickType(type: RightClickType, callback: AsyncCallback\): void;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function setTouchpadRightClickType(type: RightClickType): Promise\;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function getTouchpadRightClickType(callback: AsyncCallback\): void;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:pointer;
方法or属性:function getTouchpadRightClickType(): Promise\;|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:PointerStyle;
方法or属性:HORIZONTAL_TEXT_CURSOR|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:PointerStyle;
方法or属性:CURSOR_CROSS|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:PointerStyle;
方法or属性:CURSOR_CIRCLE|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:RightClickType;
方法or属性:TOUCHPAD_RIGHT_BUTTON = 1|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:RightClickType;
方法or属性:TOUCHPAD_LEFT_BUTTON = 2|@ohos.multimodalInput.pointer.d.ts| +|新增|NA|类名:RightClickType;
方法or属性:TOUCHPAD_TWO_FINGER_TAP = 3|@ohos.multimodalInput.pointer.d.ts| +|错误码有变化|类名:pointer;
方法or属性:function setMousePrimaryButton(primary: PrimaryButton, callback: AsyncCallback\): void;
旧版本信息:401|类名:pointer;
方法or属性:function setMousePrimaryButton(primary: PrimaryButton, callback: AsyncCallback\): void;
新版本信息:202,401|@ohos.multimodalInput.pointer.d.ts| +|错误码有变化|类名:pointer;
方法or属性:function setMousePrimaryButton(primary: PrimaryButton): Promise\;
旧版本信息:401|类名:pointer;
方法or属性:function setMousePrimaryButton(primary: PrimaryButton): Promise\;
新版本信息:202,401|@ohos.multimodalInput.pointer.d.ts| +|错误码有变化|类名:pointer;
方法or属性:function getMousePrimaryButton(callback: AsyncCallback\): void;
旧版本信息:401|类名:pointer;
方法or属性:function getMousePrimaryButton(callback: AsyncCallback\): void;
新版本信息:202,401|@ohos.multimodalInput.pointer.d.ts| +|错误码有变化|类名:pointer;
方法or属性:function getMousePrimaryButton(): Promise\;
旧版本信息:401|类名:pointer;
方法or属性:function getMousePrimaryButton(): Promise\;
新版本信息:202,401|@ohos.multimodalInput.pointer.d.ts| +|错误码有变化|类名:pointer;
方法or属性:function setHoverScrollState(state: boolean, callback: AsyncCallback\): void;
旧版本信息:401|类名:pointer;
方法or属性:function setHoverScrollState(state: boolean, callback: AsyncCallback\): void;
新版本信息:202,401|@ohos.multimodalInput.pointer.d.ts| +|错误码有变化|类名:pointer;
方法or属性:function setHoverScrollState(state: boolean): Promise\;
旧版本信息:401|类名:pointer;
方法or属性:function setHoverScrollState(state: boolean): Promise\;
新版本信息:202,401|@ohos.multimodalInput.pointer.d.ts| +|错误码有变化|类名:pointer;
方法or属性:function getHoverScrollState(callback: AsyncCallback\): void;
旧版本信息:401|类名:pointer;
方法or属性:function getHoverScrollState(callback: AsyncCallback\): void;
新版本信息:202,401|@ohos.multimodalInput.pointer.d.ts| +|错误码有变化|类名:pointer;
方法or属性:function getHoverScrollState(): Promise\;
旧版本信息:401|类名:pointer;
方法or属性:function getHoverScrollState(): Promise\;
新版本信息:202,401|@ohos.multimodalInput.pointer.d.ts| +|错误码有变化|类名:pointer;
方法or属性:function setMouseScrollRows(rows: number, callback: AsyncCallback\): void;
旧版本信息:401|类名:pointer;
方法or属性:function setMouseScrollRows(rows: number, callback: AsyncCallback\): void;
新版本信息:202,401|@ohos.multimodalInput.pointer.d.ts| +|错误码有变化|类名:pointer;
方法or属性:function setMouseScrollRows(rows: number): Promise\;
旧版本信息:401|类名:pointer;
方法or属性:function setMouseScrollRows(rows: number): Promise\;
新版本信息:202,401|@ohos.multimodalInput.pointer.d.ts| +|错误码有变化|类名:pointer;
方法or属性:function getMouseScrollRows(callback: AsyncCallback\): void;
旧版本信息:401|类名:pointer;
方法or属性:function getMouseScrollRows(callback: AsyncCallback\): void;
新版本信息:202,401|@ohos.multimodalInput.pointer.d.ts| +|错误码有变化|类名:pointer;
方法or属性:function getMouseScrollRows(): Promise\;
旧版本信息:401|类名:pointer;
方法or属性:function getMouseScrollRows(): Promise\;
新版本信息:202,401|@ohos.multimodalInput.pointer.d.ts| +|错误码有变化|类名:shortKey;
方法or属性:function setKeyDownDuration(businessKey: string, delay: number, callback: AsyncCallback\): void;
旧版本信息:401|类名:shortKey;
方法or属性:function setKeyDownDuration(businessKey: string, delay: number, callback: AsyncCallback\): void;
新版本信息:202,401|@ohos.multimodalInput.shortKey.d.ts| +|错误码有变化|类名:shortKey;
方法or属性:function setKeyDownDuration(businessKey: string, delay: number): Promise\;
旧版本信息:401|类名:shortKey;
方法or属性:function setKeyDownDuration(businessKey: string, delay: number): Promise\;
新版本信息:202,401|@ohos.multimodalInput.shortKey.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-multimedia.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-multimedia.md new file mode 100644 index 0000000000..105069268e --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-multimedia.md @@ -0,0 +1,410 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|删除|类名:avSession;
方法or属性:function on(type: 'sessionCreate' \| 'sessionDestroy' \| 'topSessionChange', callback: (session: AVSessionDescriptor) => void): void;|NA|@ohos.multimedia.avsession.d.ts| +|删除|类名:avSession;
方法or属性:function off(type: 'sessionCreate' \| 'sessionDestroy' \| 'topSessionChange', callback?: (session: AVSessionDescriptor) => void): void;|NA|@ohos.multimedia.avsession.d.ts| +|删除|类名:AVSession;
方法or属性:on(type: 'play' \| 'pause' \| 'stop' \| 'playNext' \| 'playPrevious' \| 'fastForward' \| 'rewind', callback: () => void): void;|NA|@ohos.multimedia.avsession.d.ts| +|删除|类名:AVSession;
方法or属性:on(type: 'outputDeviceChange', callback: (device: OutputDeviceInfo) => void): void;|NA|@ohos.multimedia.avsession.d.ts| +|删除|类名:AVSessionController;
方法or属性:on(type: 'outputDeviceChange', callback: (device: OutputDeviceInfo) => void): void;|NA|@ohos.multimedia.avsession.d.ts| +|删除|类名:AVSession;
方法or属性:off(type: 'play' \| 'pause' \| 'stop' \| 'playNext' \| 'playPrevious' \| 'fastForward' \| 'rewind', callback?: () => void): void;|NA|@ohos.multimedia.avsession.d.ts| +|删除|类名:AVSession;
方法or属性:off(type: 'outputDeviceChange', callback?: (device: OutputDeviceInfo) => void): void;|NA|@ohos.multimedia.avsession.d.ts| +|删除|类名:AVSessionController;
方法or属性:off(type: 'outputDeviceChange', callback?: (device: OutputDeviceInfo) => void): void;|NA|@ohos.multimedia.avsession.d.ts| +|删除|类名:OutputDeviceInfo;
方法or属性:isRemote: boolean;|NA|@ohos.multimedia.avsession.d.ts| +|删除|类名:OutputDeviceInfo;
方法or属性:audioDeviceId: Array\;|NA|@ohos.multimedia.avsession.d.ts| +|删除|类名:OutputDeviceInfo;
方法or属性:deviceName: Array\;|NA|@ohos.multimedia.avsession.d.ts| +|删除|类名:ImageSource;
方法or属性:getDelayTime(): Promise\>;|NA|@ohos.multimedia.image.d.ts| +|删除|类名:ImageSource;
方法or属性:getDelayTime(callback: AsyncCallback\>): void;|NA|@ohos.multimedia.image.d.ts| +|新增|NA|类名:effectKit;
方法or属性:function createColorPicker(source:image.PixelMap,region:Array\):Promise\;|@ohos.effectKit.d.ts| +|新增|NA|类名:effectKit;
方法or属性:function createColorPicker(source:image.PixelMap,region:Array\,callback:AsyncCallback\):void;|@ohos.effectKit.d.ts| +|新增|NA|类名:AVMediaDescription;
方法or属性:artist?: string;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVMediaDescription;
方法or属性:duration?: number;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:getAVPlaybackState(callback: AsyncCallback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:getAVPlaybackState(): Promise\;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:audio;
方法or属性:type AudioEffectInfoArray = Array\>;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:StreamUsage;
方法or属性:STREAM_USAGE_MUSIC = 1|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:StreamUsage;
方法or属性:STREAM_USAGE_VOICE_MESSAGE = 5|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:StreamUsage;
方法or属性:STREAM_USAGE_RINGTONE = 6|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:StreamUsage;
方法or属性:STREAM_USAGE_NOTIFICATION = 7|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:StreamUsage;
方法or属性:STREAM_USAGE_MOVIE = 10|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:StreamUsage;
方法or属性:STREAM_USAGE_GAME = 11|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:StreamUsage;
方法or属性:STREAM_USAGE_AUDIOBOOK = 12|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:StreamUsage;
方法or属性:STREAM_USAGE_NAVIGATION = 13|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:StreamUsage;
方法or属性:STREAM_USAGE_DTMF = 14|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:StreamUsage;
方法or属性:STREAM_USAGE_ENFORCED_TONE = 15|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:StreamUsage;
方法or属性:STREAM_USAGE_ULTRASONIC = 16|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioRendererOptions;
方法or属性:privacyType?: AudioPrivacyType;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioPrivacyType;
方法or属性:PRIVACY_TYPE_PUBLIC = 0|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioPrivacyType;
方法or属性:PRIVACY_TYPE_PRIVATE = 1|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:VolumeAdjustType;
方法or属性:VOLUME_UP = 0|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:VolumeAdjustType;
方法or属性:VOLUME_DOWN = 1|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioStreamManager;
方法or属性:getAudioEffectInfoArray(usage: StreamUsage, callback: AsyncCallback\): void;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioStreamManager;
方法or属性:getAudioEffectInfoArray(usage: StreamUsage): Promise\;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioVolumeGroupManager;
方法or属性:isVolumeUnadjustable(): boolean;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioVolumeGroupManager;
方法or属性:adjustVolumeByStep(adjustType: VolumeAdjustType, callback: AsyncCallback\): void;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioVolumeGroupManager;
方法or属性:adjustVolumeByStep(adjustType: VolumeAdjustType): Promise\;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioVolumeGroupManager;
方法or属性:adjustSystemVolumeByStep(volumeType: AudioVolumeType, adjustType: VolumeAdjustType, callback: AsyncCallback\): void;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioVolumeGroupManager;
方法or属性:adjustSystemVolumeByStep(volumeType: AudioVolumeType, adjustType: VolumeAdjustType): Promise\;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioVolumeGroupManager;
方法or属性:getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType, callback: AsyncCallback\): void;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioVolumeGroupManager;
方法or属性:getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): Promise\;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioRenderer;
方法or属性:getAudioEffectMode(callback: AsyncCallback\): void;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioRenderer;
方法or属性:getAudioEffectMode(): Promise\;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioRenderer;
方法or属性:setAudioEffectMode(mode: AudioEffectMode, callback: AsyncCallback\): void;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioRenderer;
方法or属性:setAudioEffectMode(mode: AudioEffectMode): Promise\;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioRenderer;
方法or属性:getMinStreamVolume(callback: AsyncCallback\): void;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioRenderer;
方法or属性:getMinStreamVolume(): Promise\;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioRenderer;
方法or属性:getMaxStreamVolume(callback: AsyncCallback\): void;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioRenderer;
方法or属性:getMaxStreamVolume(): Promise\;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioRenderer;
方法or属性:getUnderflowCount(callback: AsyncCallback\): void;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioRenderer;
方法or属性:getUnderflowCount(): Promise\;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioRenderer;
方法or属性:getCurrentOutputDevices(callback: AsyncCallback\): void;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioRenderer;
方法or属性:getCurrentOutputDevices(): Promise\;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioRenderer;
方法or属性:on(type: 'outputDeviceChange', callback: Callback\): void;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioRenderer;
方法or属性:off(type: 'outputDeviceChange', callback?: Callback\): void;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:SourceType;
方法or属性:SOURCE_TYPE_PLAYBACK_CAPTURE = 2|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioCapturerOptions;
方法or属性:playbackCaptureConfig?: AudioPlaybackCaptureConfig;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:CaptureFilterOptions;
方法or属性:usages: Array\;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioPlaybackCaptureConfig;
方法or属性:filterOptions: CaptureFilterOptions;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioCapturer;
方法or属性:off(type: 'audioInterrupt'): void;|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioEffectMode;
方法or属性:EFFECT_NONE = 0|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:AudioEffectMode;
方法or属性:EFFECT_DEFAULT = 1|@ohos.multimedia.audio.d.ts| +|新增|NA|类名:avSession;
方法or属性:function on(type: 'sessionCreate', callback: (session: AVSessionDescriptor) => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function on(type: 'sessionDestroy', callback: (session: AVSessionDescriptor) => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function on(type: 'topSessionChange', callback: (session: AVSessionDescriptor) => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function on(type: 'deviceAvailable', callback: (device: OutputDeviceInfo) => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function off(type: 'sessionCreate', callback?: (session: AVSessionDescriptor) => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function off(type: 'sessionDestroy', callback?: (session: AVSessionDescriptor) => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function off(type: 'topSessionChange', callback?: (session: AVSessionDescriptor) => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function off(type: 'deviceAvailable', callback?: (device: OutputDeviceInfo) => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function startCastDeviceDiscovery(callback: AsyncCallback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function startCastDeviceDiscovery(filter: number, callback: AsyncCallback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function startCastDeviceDiscovery(filter?: number): Promise\;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function stopCastDeviceDiscovery(callback: AsyncCallback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function stopCastDeviceDiscovery(): Promise\;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function setDiscoverable(enable: boolean, callback: AsyncCallback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function setDiscoverable(enable: boolean): Promise\;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function getAVCastController(sessionId: string, callback: AsyncCallback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function getAVCastController(sessionId: string): Promise\;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function startCasting(session: SessionToken, device: OutputDeviceInfo, callback: AsyncCallback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function startCasting(session: SessionToken, device: OutputDeviceInfo): Promise\;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function stopCasting(session: SessionToken, callback: AsyncCallback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:function stopCasting(session: SessionToken): Promise\;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:avSession;
方法or属性:type AVCastControlCommandType = 'play' \| 'pause' \| 'stop' \| 'playNext' \| 'playPrevious' \| 'fastForward' \| 'rewind' \|
'seek' \| 'setVolume' \| 'setSpeed' \| 'setLoopMode' \| 'toggleFavorite';|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:ProtocolType;
方法or属性:TYPE_LOCAL = 0|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:ProtocolType;
方法or属性:TYPE_CAST_PLUS_MIRROR = 1|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:ProtocolType;
方法or属性:TYPE_CAST_PLUS_STREAM = 2|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:readonly sessionType: AVSessionType;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:getAVCastController(callback: AsyncCallback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:getAVCastController(): Promise\;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:on(type: 'play', callback: () => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:on(type: 'pause', callback: () => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:on(type: 'stop', callback: () => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:on(type: 'playNext', callback: () => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:on(type: 'playPrevious', callback: () => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:on(type: 'fastForward', callback: () => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:on(type: 'rewind', callback: () => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:on(type: 'outputDeviceChange', callback: (state: ConnectionState, device: OutputDeviceInfo) => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSessionController;
方法or属性:on(type: 'outputDeviceChange', callback: (state: ConnectionState, device: OutputDeviceInfo) => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:off(type: 'play', callback?: () => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:off(type: 'pause', callback?: () => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:off(type: 'stop', callback?: () => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:off(type: 'playNext', callback?: () => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:off(type: 'playPrevious', callback?: () => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:off(type: 'fastForward', callback?: () => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:off(type: 'rewind', callback?: () => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:off(type: 'outputDeviceChange', callback?: (state: ConnectionState, device: OutputDeviceInfo) => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSessionController;
方法or属性:off(type: 'outputDeviceChange', callback?: (state: ConnectionState, device: OutputDeviceInfo) => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:stopCasting(callback: AsyncCallback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSession;
方法or属性:stopCasting(): Promise\;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastControlCommand;
方法or属性:command: AVCastControlCommandType;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastControlCommand;
方法or属性:parameter?: media.PlaybackSpeed \| number;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:setDisplaySurface(surfaceId: string, callback: AsyncCallback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:setDisplaySurface(surfaceId: string): Promise\;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:sendControlCommand(command: AVCastControlCommand, callback: AsyncCallback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:sendControlCommand(command: AVCastControlCommand): Promise\;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:start(item: AVQueueItem, callback: AsyncCallback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:start(item: AVQueueItem): Promise\;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:prepare(item: AVQueueItem, callback: AsyncCallback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:prepare(item: AVQueueItem): Promise\;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:getCurrentItem(callback: AsyncCallback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:getCurrentItem(): Promise\;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:on(type: 'playbackStateChange', filter: Array\ \| 'all', callback: (state: AVPlaybackState) => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:on(type: 'mediaItemChange', callback: Callback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:on(type: 'playNext', callback: Callback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:on(type: 'playPrevious', callback: Callback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:on(type: 'seekDone', callback: Callback\): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:on(type: 'videoSizeChange', callback: (width: number, height: number) => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:on(type: 'error', callback: ErrorCallback): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:off(type: 'playbackStateChange', callback?: (state: AVPlaybackState) => void): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:off(type: 'mediaItemChange'): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:off(type: 'playNext'): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:off(type: 'playPrevious'): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:off(type: 'seekDone'): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:off(type: 'videoSizeChange'): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastController;
方法or属性:off(type: 'error'): void;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:ConnectionState;
方法or属性:STATE_CONNECTING = 0|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:ConnectionState;
方法or属性:STATE_CONNECTED = 1|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:ConnectionState;
方法or属性:STATE_DISCONNECTED = 6|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVMediaDescription;
方法or属性:mediaType?: string;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVMediaDescription;
方法or属性:mediaSize?: number;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVMediaDescription;
方法or属性:albumTitle?: string;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVMediaDescription;
方法or属性:albumCoverUri?: string;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVMediaDescription;
方法or属性:lyricContent?: string;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVMediaDescription;
方法or属性:lyricUri?: string;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVMediaDescription;
方法or属性:fdSrc?: media.AVFileDescriptor;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVMediaDescription;
方法or属性:startPosition?: number;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVMediaDescription;
方法or属性:creditsPosition?: number;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVMediaDescription;
方法or属性:appName?: string;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVPlaybackState;
方法or属性:volume?: number;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastCategory;
方法or属性:CATEGORY_LOCAL = 0|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVCastCategory;
方法or属性:CATEGORY_REMOTE = 1|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:DeviceType;
方法or属性:DEVICE_TYPE_LOCAL = 0|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:DeviceType;
方法or属性:DEVICE_TYPE_TV = 2|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:DeviceType;
方法or属性:DEVICE_TYPE_SMART_SPEAKER = 3|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:DeviceType;
方法or属性:DEVICE_TYPE_BLUETOOTH = 10|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:DeviceInfo;
方法or属性:castCategory: number;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:DeviceInfo;
方法or属性:deviceId: string;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:DeviceInfo;
方法or属性:deviceName: string;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:DeviceInfo;
方法or属性:deviceType: DeviceType;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:DeviceInfo;
方法or属性:ipAddress?: string;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:DeviceInfo;
方法or属性:providerId?: number;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:OutputDeviceInfo;
方法or属性:devices: Array\;|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:PlaybackState;
方法or属性:PLAYBACK_STATE_COMPLETED = 7|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:PlaybackState;
方法or属性:PLAYBACK_STATE_RELEASED = 8|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:PlaybackState;
方法or属性:PLAYBACK_STATE_ERROR = 9|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSessionErrorCode;
方法or属性:ERR_CODE_DEVICE_CONNECTION_FAILED = 6600108|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:AVSessionErrorCode;
方法or属性:ERR_CODE_REMOTE_CONNECTION_NOT_EXIST = 6600109|@ohos.multimedia.avsession.d.ts| +|新增|NA|类名:PrelaunchConfig;
方法or属性:cameraDevice: CameraDevice;|@ohos.multimedia.camera.d.ts| +|新增|NA|类名:CameraManager;
方法or属性:isPrelaunchSupported(camera: CameraDevice): boolean;|@ohos.multimedia.camera.d.ts| +|新增|NA|类名:CameraManager;
方法or属性:setPrelaunchConfig(prelaunchConfig: PrelaunchConfig): void;|@ohos.multimedia.camera.d.ts| +|新增|NA|类名:CameraManager;
方法or属性:prelaunch(): void;|@ohos.multimedia.camera.d.ts| +|新增|NA|类名:CameraManager;
方法or属性:createDeferredPreviewOutput(profile: Profile): PreviewOutput;|@ohos.multimedia.camera.d.ts| +|新增|NA|类名:PreviewOutput;
方法or属性:addDeferredSurface(surfaceId: string): void;|@ohos.multimedia.camera.d.ts| +|新增|NA|类名:PhotoOutput;
方法or属性:on(type: 'quickThumbnail', callback: AsyncCallback\): void;|@ohos.multimedia.camera.d.ts| +|新增|NA|类名:PhotoOutput;
方法or属性:isQuickThumbnailSupported(): boolean;|@ohos.multimedia.camera.d.ts| +|新增|NA|类名:PhotoOutput;
方法or属性:enableQuickThumbnail(enabled: boolean): void;|@ohos.multimedia.camera.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:DATE_TIME = 'DateTime'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:GPS_TIME_STAMP = 'GPSTimeStamp'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:GPS_DATE_STAMP = 'GPSDateStamp'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:IMAGE_DESCRIPTION = 'ImageDescription'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:MAKE = 'Make'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:MODEL = 'Model'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:PHOTO_MODE = 'PhotoMode'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:SENSITIVITY_TYPE = 'SensitivityType'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:STANDARD_OUTPUT_SENSITIVITY = 'StandardOutputSensitivity'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:RECOMMENDED_EXPOSURE_INDEX = 'RecommendedExposureIndex'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:ISO_SPEED = 'ISOSpeedRatings'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:APERTURE_VALUE = 'ApertureValue'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:EXPOSURE_BIAS_VALUE = 'ExposureBiasValue'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:METERING_MODE = 'MeteringMode'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:LIGHT_SOURCE = 'LightSource'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:FLASH = 'Flash'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:FOCAL_LENGTH = 'FocalLength'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:USER_COMMENT = 'UserComment'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:PIXEL_X_DIMENSION = 'PixelXDimension'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:PIXEL_Y_DIMENSION = 'PixelYDimension'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:WHITE_BALANCE = 'WhiteBalance'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:FOCAL_LENGTH_IN_35_MM_FILM = 'FocalLengthIn35mmFilm'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:CAPTURE_MODE = 'HwMnoteCaptureMode'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PropertyKey;
方法or属性:PHYSICAL_APERTURE = 'HwMnotePhysicalAperture'|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PixelMap;
方法or属性:getColorSpace(): colorSpaceManager.ColorSpaceManager;|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PixelMap;
方法or属性:marshalling(sequence: rpc.MessageSequence): void;|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PixelMap;
方法or属性:unmarshalling(sequence: rpc.MessageSequence): Promise\;|@ohos.multimedia.image.d.ts| +|新增|NA|类名:PixelMap;
方法or属性:setColorSpace(colorSpace: colorSpaceManager.ColorSpaceManager): void;|@ohos.multimedia.image.d.ts| +|新增|NA|类名:ImageSource;
方法or属性:getDelayTimeList(): Promise\>;|@ohos.multimedia.image.d.ts| +|新增|NA|类名:ImageSource;
方法or属性:getDelayTimeList(callback: AsyncCallback\>): void;|@ohos.multimedia.image.d.ts| +|新增|NA|类名:AVPlayer;
方法or属性:audioEffectMode ?: audio.AudioEffectMode;|@ohos.multimedia.media.d.ts| +|新增(错误码)|类名:effectKit;
方法or属性:function createColorPicker(source:image.PixelMap): Promise\;
旧版本信息:|类名:effectKit;
方法or属性:function createColorPicker(source:image.PixelMap): Promise\;
新版本信息:401|@ohos.effectKit.d.ts| +|新增(错误码)|类名:effectKit;
方法or属性:function createColorPicker(source:image.PixelMap,callback:AsyncCallback\):void;
旧版本信息:|类名:effectKit;
方法or属性:function createColorPicker(source:image.PixelMap,callback:AsyncCallback\):void;
新版本信息:401|@ohos.effectKit.d.ts| +|新增(错误码)|类名:avSession;
方法or属性:function createAVSession(context: Context, tag: string, type: AVSessionType): Promise\;
旧版本信息:|类名:avSession;
方法or属性:function createAVSession(context: Context, tag: string, type: AVSessionType): Promise\;
新版本信息:401,6600101|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:avSession;
方法or属性:function getAllSessionDescriptors(): Promise\>>;
旧版本信息:|类名:avSession;
方法or属性:function getAllSessionDescriptors(): Promise\>>;
新版本信息:201,6600101|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:avSession;
方法or属性:function createController(sessionId: string): Promise\;
旧版本信息:|类名:avSession;
方法or属性:function createController(sessionId: string): Promise\;
新版本信息:201,401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:avSession;
方法or属性:function castAudio(session: SessionToken \| 'all', audioDevices: Array\): Promise\;
旧版本信息:|类名:avSession;
方法or属性:function castAudio(session: SessionToken \| 'all', audioDevices: Array\): Promise\;
新版本信息:201,401,6600101,6600102,6600104|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:avSession;
方法or属性:function sendSystemAVKeyEvent(event: KeyEvent): Promise\;
旧版本信息:|类名:avSession;
方法or属性:function sendSystemAVKeyEvent(event: KeyEvent): Promise\;
新版本信息:201,401,6600101,6600105|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:avSession;
方法or属性:function sendSystemControlCommand(command: AVControlCommand): Promise\;
旧版本信息:|类名:avSession;
方法or属性:function sendSystemControlCommand(command: AVControlCommand): Promise\;
新版本信息:201,401,6600101,6600105,6600107|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSession;
方法or属性:setAVMetadata(data: AVMetadata): Promise\;
旧版本信息:|类名:AVSession;
方法or属性:setAVMetadata(data: AVMetadata): Promise\;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSession;
方法or属性:setAVPlaybackState(state: AVPlaybackState): Promise\;
旧版本信息:|类名:AVSession;
方法or属性:setAVPlaybackState(state: AVPlaybackState): Promise\;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSession;
方法or属性:setLaunchAbility(ability: WantAgent): Promise\;
旧版本信息:|类名:AVSession;
方法or属性:setLaunchAbility(ability: WantAgent): Promise\;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSession;
方法or属性:getController(): Promise\;
旧版本信息:|类名:AVSession;
方法or属性:getController(): Promise\;
新版本信息:6600101,6600102|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSession;
方法or属性:getOutputDevice(): Promise\;
旧版本信息:|类名:AVSession;
方法or属性:getOutputDevice(): Promise\;
新版本信息:6600101,6600102|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSessionController;
方法or属性:getOutputDevice(): Promise\;
旧版本信息:|类名:AVSessionController;
方法or属性:getOutputDevice(): Promise\;
新版本信息:600101,600103|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSession;
方法or属性:activate(): Promise\;
旧版本信息:|类名:AVSession;
方法or属性:activate(): Promise\;
新版本信息:6600101,6600102|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSession;
方法or属性:deactivate(): Promise\;
旧版本信息:|类名:AVSession;
方法or属性:deactivate(): Promise\;
新版本信息:6600101,6600102|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSession;
方法or属性:destroy(): Promise\;
旧版本信息:|类名:AVSession;
方法or属性:destroy(): Promise\;
新版本信息:6600101,6600102|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSessionController;
方法or属性:destroy(): Promise\;
旧版本信息:|类名:AVSessionController;
方法or属性:destroy(): Promise\;
新版本信息:6600101,6600103|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSessionController;
方法or属性:getAVPlaybackState(): Promise\;
旧版本信息:|类名:AVSessionController;
方法or属性:getAVPlaybackState(): Promise\;
新版本信息:6600101,6600102,6600103|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSessionController;
方法or属性:getAVMetadata(): Promise\;
旧版本信息:|类名:AVSessionController;
方法or属性:getAVMetadata(): Promise\;
新版本信息:6600101,6600102,6600103|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSessionController;
方法or属性:sendAVKeyEvent(event: KeyEvent): Promise\;
旧版本信息:|类名:AVSessionController;
方法or属性:sendAVKeyEvent(event: KeyEvent): Promise\;
新版本信息:401,600101,600102,600103,600105,600106|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSessionController;
方法or属性:getLaunchAbility(): Promise\;
旧版本信息:|类名:AVSessionController;
方法or属性:getLaunchAbility(): Promise\;
新版本信息:6600101,6600102,6600103|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSessionController;
方法or属性:isActive(): Promise\;
旧版本信息:|类名:AVSessionController;
方法or属性:isActive(): Promise\;
新版本信息:6600101,6600102,6600103|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSessionController;
方法or属性:getValidCommands(): Promise\>;
旧版本信息:|类名:AVSessionController;
方法or属性:getValidCommands(): Promise\>;
新版本信息:6600101,6600102,6600103|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:AVSessionController;
方法or属性:sendControlCommand(command: AVControlCommand): Promise\;
旧版本信息:|类名:AVSessionController;
方法or属性:sendControlCommand(command: AVControlCommand): Promise\;
新版本信息:401,6600101,6600102,6600103,6600105,6600106,6600107|@ohos.multimedia.avsession.d.ts| +|新增(错误码)|类名:ImageSource;
方法or属性:createPixelMapList(options?: DecodingOptions): Promise\>;
旧版本信息:|类名:ImageSource;
方法or属性:createPixelMapList(options?: DecodingOptions): Promise\>;
新版本信息:62980096,62980103,62980110,62980111,62980118|@ohos.multimedia.image.d.ts| +|新增(错误码)|类名:ImageSource;
方法or属性:createPixelMapList(callback: AsyncCallback\>): void;
旧版本信息:|类名:ImageSource;
方法or属性:createPixelMapList(callback: AsyncCallback\>): void;
新版本信息:62980096,62980103,62980110,62980111,62980118|@ohos.multimedia.image.d.ts| +|新增(错误码)|类名:ImageSource;
方法or属性:createPixelMapList(options: DecodingOptions, callback: AsyncCallback\>): void;
旧版本信息:|类名:ImageSource;
方法or属性:createPixelMapList(options: DecodingOptions, callback: AsyncCallback\>): void;
新版本信息:62980096,62980103,62980110,62980111,62980118|@ohos.multimedia.image.d.ts| +|新增(错误码)|类名:ImageSource;
方法or属性:getFrameCount(): Promise\;
旧版本信息:|类名:ImageSource;
方法or属性:getFrameCount(): Promise\;
新版本信息:62980096,62980110,62980111,62980113,62980116,62980118,62980122|@ohos.multimedia.image.d.ts| +|新增(错误码)|类名:ImageSource;
方法or属性:getFrameCount(callback: AsyncCallback\): void;
旧版本信息:|类名:ImageSource;
方法or属性:getFrameCount(callback: AsyncCallback\): void;
新版本信息:62980096,62980110,62980111,62980113,62980116,62980118,62980122|@ohos.multimedia.image.d.ts| +|错误码有变化|类名:avSession;
方法or属性:function createAVSession(context: Context, tag: string, type: AVSessionType, callback: AsyncCallback\): void;
旧版本信息:401,{@link|类名:avSession;
方法or属性:function createAVSession(context: Context, tag: string, type: AVSessionType, callback: AsyncCallback\): void;
新版本信息:401,6600101|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:avSession;
方法or属性:function getAllSessionDescriptors(callback: AsyncCallback\>>): void;
旧版本信息:201,{@link|类名:avSession;
方法or属性:function getAllSessionDescriptors(callback: AsyncCallback\>>): void;
新版本信息:201,6600101|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:avSession;
方法or属性:function createController(sessionId: string, callback: AsyncCallback\): void;
旧版本信息:201,401,{@link,{@link|类名:avSession;
方法or属性:function createController(sessionId: string, callback: AsyncCallback\): void;
新版本信息:201,401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:avSession;
方法or属性:function castAudio(session: SessionToken \| 'all', audioDevices: Array\, callback: AsyncCallback\): void;
旧版本信息:201,401,{@link,{@link,{@link|类名:avSession;
方法or属性:function castAudio(session: SessionToken \| 'all', audioDevices: Array\, callback: AsyncCallback\): void;
新版本信息:201,401,6600101,6600102,6600104|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:avSession;
方法or属性:function on(type: 'sessionServiceDie', callback: () => void): void;
旧版本信息:201,401,{@link|类名:avSession;
方法or属性:function on(type: 'sessionServiceDie', callback: () => void): void;
新版本信息:201,401,6600101|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:avSession;
方法or属性:function off(type: 'sessionServiceDie', callback?: () => void): void;
旧版本信息:201,401,{@link|类名:avSession;
方法or属性:function off(type: 'sessionServiceDie', callback?: () => void): void;
新版本信息:201,401,6600101|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:avSession;
方法or属性:function sendSystemAVKeyEvent(event: KeyEvent, callback: AsyncCallback\): void;
旧版本信息:201,401,{@link,{@link|类名:avSession;
方法or属性:function sendSystemAVKeyEvent(event: KeyEvent, callback: AsyncCallback\): void;
新版本信息:201,401,6600101,6600105|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:avSession;
方法or属性:function sendSystemControlCommand(command: AVControlCommand, callback: AsyncCallback\): void;
旧版本信息:201,401,{@link,{@link,{@link|类名:avSession;
方法or属性:function sendSystemControlCommand(command: AVControlCommand, callback: AsyncCallback\): void;
新版本信息:201,401,6600101,6600105,6600107|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:setAVMetadata(data: AVMetadata, callback: AsyncCallback\): void;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:setAVMetadata(data: AVMetadata, callback: AsyncCallback\): void;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:setAVPlaybackState(state: AVPlaybackState, callback: AsyncCallback\): void;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:setAVPlaybackState(state: AVPlaybackState, callback: AsyncCallback\): void;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:setLaunchAbility(ability: WantAgent, callback: AsyncCallback\): void;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:setLaunchAbility(ability: WantAgent, callback: AsyncCallback\): void;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:dispatchSessionEvent(event: string, args: {[key: string]: Object}, callback: AsyncCallback\): void;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:dispatchSessionEvent(event: string, args: {[key: string]: Object}, callback: AsyncCallback\): void;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:dispatchSessionEvent(event: string, args: {[key: string]: Object}): Promise\;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:dispatchSessionEvent(event: string, args: {[key: string]: Object}): Promise\;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:setExtras(extras: {[key: string]: Object}, callback: AsyncCallback\): void;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:setExtras(extras: {[key: string]: Object}, callback: AsyncCallback\): void;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:setExtras(extras: {[key: string]: Object}): Promise\;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:setExtras(extras: {[key: string]: Object}): Promise\;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:getController(callback: AsyncCallback\): void;
旧版本信息:{@link,{@link|类名:AVSession;
方法or属性:getController(callback: AsyncCallback\): void;
新版本信息:6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:getOutputDevice(callback: AsyncCallback\): void;
旧版本信息:{@link,{@link|类名:AVSession;
方法or属性:getOutputDevice(callback: AsyncCallback\): void;
新版本信息:6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:getOutputDevice(callback: AsyncCallback\): void;
旧版本信息:{@link,{@link|类名:AVSessionController;
方法or属性:getOutputDevice(callback: AsyncCallback\): void;
新版本信息:600101,600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:on(type: 'seek', callback: (time: number) => void): void;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:on(type: 'seek', callback: (time: number) => void): void;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:on(type: 'setSpeed', callback: (speed: number) => void): void;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:on(type: 'setSpeed', callback: (speed: number) => void): void;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:on(type: 'setLoopMode', callback: (mode: LoopMode) => void): void;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:on(type: 'setLoopMode', callback: (mode: LoopMode) => void): void;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:on(type: 'toggleFavorite', callback: (assetId: string) => void): void;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:on(type: 'toggleFavorite', callback: (assetId: string) => void): void;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:on(type: 'handleKeyEvent', callback: (event: KeyEvent) => void): void;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:on(type: 'handleKeyEvent', callback: (event: KeyEvent) => void): void;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:off(type: 'seek', callback?: (time: number) => void): void;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:off(type: 'seek', callback?: (time: number) => void): void;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:off(type: 'setSpeed', callback?: (speed: number) => void): void;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:off(type: 'setSpeed', callback?: (speed: number) => void): void;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:off(type: 'setLoopMode', callback?: (mode: LoopMode) => void): void;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:off(type: 'setLoopMode', callback?: (mode: LoopMode) => void): void;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:off(type: 'toggleFavorite', callback?: (assetId: string) => void): void;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:off(type: 'toggleFavorite', callback?: (assetId: string) => void): void;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:off(type: 'handleKeyEvent', callback?: (event: KeyEvent) => void): void;
旧版本信息:401,{@link,{@link|类名:AVSession;
方法or属性:off(type: 'handleKeyEvent', callback?: (event: KeyEvent) => void): void;
新版本信息:401,6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:activate(callback: AsyncCallback\): void;
旧版本信息:{@link,{@link|类名:AVSession;
方法or属性:activate(callback: AsyncCallback\): void;
新版本信息:6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:deactivate(callback: AsyncCallback\): void;
旧版本信息:{@link,{@link|类名:AVSession;
方法or属性:deactivate(callback: AsyncCallback\): void;
新版本信息:6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSession;
方法or属性:destroy(callback: AsyncCallback\): void;
旧版本信息:{@link,{@link|类名:AVSession;
方法or属性:destroy(callback: AsyncCallback\): void;
新版本信息:6600101,6600102|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:destroy(callback: AsyncCallback\): void;
旧版本信息:{@link,{@link|类名:AVSessionController;
方法or属性:destroy(callback: AsyncCallback\): void;
新版本信息:6600101,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:getAVPlaybackState(callback: AsyncCallback\): void;
旧版本信息:{@link,{@link,{@link|类名:AVSessionController;
方法or属性:getAVPlaybackState(callback: AsyncCallback\): void;
新版本信息:6600101,6600102,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:getAVMetadata(callback: AsyncCallback\): void;
旧版本信息:{@link,{@link,{@link|类名:AVSessionController;
方法or属性:getAVMetadata(callback: AsyncCallback\): void;
新版本信息:6600101,6600102,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:sendAVKeyEvent(event: KeyEvent, callback: AsyncCallback\): void;
旧版本信息:401,{@link,{@link,{@link,{@link,{@link|类名:AVSessionController;
方法or属性:sendAVKeyEvent(event: KeyEvent, callback: AsyncCallback\): void;
新版本信息:401,600101,600102,600103,600105,600106|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:getLaunchAbility(callback: AsyncCallback\): void;
旧版本信息:{@link,{@link,{@link|类名:AVSessionController;
方法or属性:getLaunchAbility(callback: AsyncCallback\): void;
新版本信息:6600101,6600102,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:getRealPlaybackPositionSync(): number;
旧版本信息:{@link,{@link|类名:AVSessionController;
方法or属性:getRealPlaybackPositionSync(): number;
新版本信息:6600101,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:isActive(callback: AsyncCallback\): void;
旧版本信息:{@link,{@link,{@link|类名:AVSessionController;
方法or属性:isActive(callback: AsyncCallback\): void;
新版本信息:6600101,6600102,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:getValidCommands(callback: AsyncCallback\>): void;
旧版本信息:{@link,{@link,{@link|类名:AVSessionController;
方法or属性:getValidCommands(callback: AsyncCallback\>): void;
新版本信息:6600101,6600102,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:sendControlCommand(command: AVControlCommand, callback: AsyncCallback\): void;
旧版本信息:401,{@link,{@link,{@link,{@link,{@link,{@link|类名:AVSessionController;
方法or属性:sendControlCommand(command: AVControlCommand, callback: AsyncCallback\): void;
新版本信息:401,6600101,6600102,6600103,6600105,6600106,6600107|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:on(type: 'metadataChange', filter: Array\ \| 'all', callback: (data: AVMetadata) => void);
旧版本信息:401,{@link,{@link|类名:AVSessionController;
方法or属性:on(type: 'metadataChange', filter: Array\ \| 'all', callback: (data: AVMetadata) => void);
新版本信息:401,6600101,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:on(type: 'playbackStateChange', filter: Array\ \| 'all', callback: (state: AVPlaybackState) => void);
旧版本信息:401,{@link,{@link|类名:AVSessionController;
方法or属性:on(type: 'playbackStateChange', filter: Array\ \| 'all', callback: (state: AVPlaybackState) => void);
新版本信息:401,6600101,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:on(type: 'sessionDestroy', callback: () => void);
旧版本信息:401,{@link,{@link|类名:AVSessionController;
方法or属性:on(type: 'sessionDestroy', callback: () => void);
新版本信息:401,6600101,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:on(type: 'activeStateChange', callback: (isActive: boolean) => void);
旧版本信息:401,{@link,{@link|类名:AVSessionController;
方法or属性:on(type: 'activeStateChange', callback: (isActive: boolean) => void);
新版本信息:401,6600101,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:on(type: 'validCommandChange', callback: (commands: Array\) => void);
旧版本信息:401,{@link,{@link|类名:AVSessionController;
方法or属性:on(type: 'validCommandChange', callback: (commands: Array\) => void);
新版本信息:401,6600101,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:on(type: 'sessionEvent', callback: (sessionEvent: string, args: {[key: string]: Object}) => void): void;
旧版本信息:401,{@link,{@link|类名:AVSessionController;
方法or属性:on(type: 'sessionEvent', callback: (sessionEvent: string, args: {[key: string]: Object}) => void): void;
新版本信息:401,6600101,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:on(type: 'extrasChange', callback: (extras: {[key: string]: Object}) => void): void;
旧版本信息:401,{@link,{@link|类名:AVSessionController;
方法or属性:on(type: 'extrasChange', callback: (extras: {[key: string]: Object}) => void): void;
新版本信息:401,6600101,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:off(type: 'metadataChange', callback?: (data: AVMetadata) => void);
旧版本信息:401,{@link,{@link|类名:AVSessionController;
方法or属性:off(type: 'metadataChange', callback?: (data: AVMetadata) => void);
新版本信息:401,6600101,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:off(type: 'playbackStateChange', callback?: (state: AVPlaybackState) => void);
旧版本信息:401,{@link,{@link|类名:AVSessionController;
方法or属性:off(type: 'playbackStateChange', callback?: (state: AVPlaybackState) => void);
新版本信息:401,6600101,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:off(type: 'sessionDestroy', callback?: () => void);
旧版本信息:401,{@link,{@link|类名:AVSessionController;
方法or属性:off(type: 'sessionDestroy', callback?: () => void);
新版本信息:401,6600101,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:off(type: 'activeStateChange', callback?: (isActive: boolean) => void);
旧版本信息:401,{@link,{@link|类名:AVSessionController;
方法or属性:off(type: 'activeStateChange', callback?: (isActive: boolean) => void);
新版本信息:401,6600101,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:off(type: 'validCommandChange', callback?: (commands: Array\) => void);
旧版本信息:401,{@link,{@link|类名:AVSessionController;
方法or属性:off(type: 'validCommandChange', callback?: (commands: Array\) => void);
新版本信息:401,6600101,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:off(type: 'sessionEvent', callback?: (sessionEvent: string, args: {[key: string]: Object}) => void): void;
旧版本信息:401,{@link,{@link|类名:AVSessionController;
方法or属性:off(type: 'sessionEvent', callback?: (sessionEvent: string, args: {[key: string]: Object}) => void): void;
新版本信息:401,6600101,6600103|@ohos.multimedia.avsession.d.ts| +|错误码有变化|类名:AVSessionController;
方法or属性:off(type: 'extrasChange', callback?: (extras: {[key: string]: Object}) => void): void;
旧版本信息:401,{@link,{@link|类名:AVSessionController;
方法or属性:off(type: 'extrasChange', callback?: (extras: {[key: string]: Object}) => void): void;
新版本信息:401,6600101,6600103|@ohos.multimedia.avsession.d.ts| +|访问级别有变化|类名:ConnectType;
方法or属性:CONNECT_TYPE_LOCAL = 1
旧版本信息:|类名:ConnectType;
方法or属性:CONNECT_TYPE_LOCAL = 1
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ConnectType;
方法or属性:CONNECT_TYPE_DISTRIBUTED = 2
旧版本信息:|类名:ConnectType;
方法or属性:CONNECT_TYPE_DISTRIBUTED = 2
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:VolumeGroupInfo;
方法or属性:readonly groupId: number;
旧版本信息:|类名:VolumeGroupInfo;
方法or属性:readonly groupId: number;
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:VolumeGroupInfo;
方法or属性:readonly mappingId: number;
旧版本信息:|类名:VolumeGroupInfo;
方法or属性:readonly mappingId: number;
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:VolumeGroupInfo;
方法or属性:readonly groupName: string;
旧版本信息:|类名:VolumeGroupInfo;
方法or属性:readonly groupName: string;
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:VolumeGroupInfo;
方法or属性:readonly type: ConnectType;
旧版本信息:|类名:VolumeGroupInfo;
方法or属性:readonly type: ConnectType;
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:VolumeEvent;
方法or属性:interface VolumeEvent
旧版本信息:systemapi|类名:VolumeEvent;
方法or属性:interface VolumeEvent
新版本信息:|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:VolumeEvent;
方法or属性:volumeGroupId: number;
旧版本信息:|类名:VolumeEvent;
方法or属性:volumeGroupId: number;
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:VolumeEvent;
方法or属性:networkId: string;
旧版本信息:|类名:VolumeEvent;
方法or属性:networkId: string;
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_0 = 0
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_0 = 0
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_1 = 1
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_1 = 1
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_2 = 2
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_2 = 2
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_3 = 3
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_3 = 3
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_4 = 4
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_4 = 4
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_5 = 5
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_5 = 5
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_6 = 6
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_6 = 6
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_7 = 7
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_7 = 7
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_8 = 8
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_8 = 8
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_9 = 9
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_9 = 9
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_S = 10
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_S = 10
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_P = 11
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_P = 11
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_A = 12
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_A = 12
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_B = 13
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_B = 13
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_C = 14
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_C = 14
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_D = 15
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_DIAL_D = 15
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_SUPERVISORY_DIAL = 100
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_SUPERVISORY_DIAL = 100
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_SUPERVISORY_BUSY = 101
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_SUPERVISORY_BUSY = 101
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_SUPERVISORY_CONGESTION = 102
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_SUPERVISORY_CONGESTION = 102
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_SUPERVISORY_RADIO_ACK = 103
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_SUPERVISORY_RADIO_ACK = 103
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_SUPERVISORY_RADIO_NOT_AVAILABLE = 104
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_SUPERVISORY_RADIO_NOT_AVAILABLE = 104
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_SUPERVISORY_CALL_WAITING = 106
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_SUPERVISORY_CALL_WAITING = 106
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_SUPERVISORY_RINGTONE = 107
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_SUPERVISORY_RINGTONE = 107
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_PROPRIETARY_BEEP = 200
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_PROPRIETARY_BEEP = 200
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_PROPRIETARY_ACK = 201
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_PROPRIETARY_ACK = 201
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_PROPRIETARY_PROMPT = 203
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_PROPRIETARY_PROMPT = 203
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_PROPRIETARY_DOUBLE_BEEP = 204
旧版本信息:|类名:ToneType;
方法or属性:TONE_TYPE_COMMON_PROPRIETARY_DOUBLE_BEEP = 204
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:TonePlayer;
方法or属性:load(type: ToneType, callback: AsyncCallback\): void;
旧版本信息:|类名:TonePlayer;
方法or属性:load(type: ToneType, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:TonePlayer;
方法or属性:load(type: ToneType): Promise\;
旧版本信息:|类名:TonePlayer;
方法or属性:load(type: ToneType): Promise\;
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:TonePlayer;
方法or属性:start(callback: AsyncCallback\): void;
旧版本信息:|类名:TonePlayer;
方法or属性:start(callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:TonePlayer;
方法or属性:start(): Promise\;
旧版本信息:|类名:TonePlayer;
方法or属性:start(): Promise\;
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:TonePlayer;
方法or属性:stop(callback: AsyncCallback\): void;
旧版本信息:|类名:TonePlayer;
方法or属性:stop(callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:TonePlayer;
方法or属性:stop(): Promise\;
旧版本信息:|类名:TonePlayer;
方法or属性:stop(): Promise\;
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:TonePlayer;
方法or属性:release(callback: AsyncCallback\): void;
旧版本信息:|类名:TonePlayer;
方法or属性:release(callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:TonePlayer;
方法or属性:release(): Promise\;
旧版本信息:|类名:TonePlayer;
方法or属性:release(): Promise\;
新版本信息:systemapi|@ohos.multimedia.audio.d.ts| +|访问级别有变化|类名:avSession;
方法or属性:function getAllSessionDescriptors(): Promise\>>;
旧版本信息:|类名:avSession;
方法or属性:function getAllSessionDescriptors(): Promise\>>;
新版本信息:systemapi|@ohos.multimedia.avsession.d.ts| +|访问级别有变化|类名:avSession;
方法or属性:function createController(sessionId: string): Promise\;
旧版本信息:|类名:avSession;
方法or属性:function createController(sessionId: string): Promise\;
新版本信息:systemapi|@ohos.multimedia.avsession.d.ts| +|访问级别有变化|类名:avSession;
方法or属性:function castAudio(session: SessionToken \| 'all', audioDevices: Array\): Promise\;
旧版本信息:|类名:avSession;
方法or属性:function castAudio(session: SessionToken \| 'all', audioDevices: Array\): Promise\;
新版本信息:systemapi|@ohos.multimedia.avsession.d.ts| +|访问级别有变化|类名:avSession;
方法or属性:function sendSystemAVKeyEvent(event: KeyEvent): Promise\;
旧版本信息:|类名:avSession;
方法or属性:function sendSystemAVKeyEvent(event: KeyEvent): Promise\;
新版本信息:systemapi|@ohos.multimedia.avsession.d.ts| +|访问级别有变化|类名:avSession;
方法or属性:function sendSystemControlCommand(command: AVControlCommand): Promise\;
旧版本信息:|类名:avSession;
方法or属性:function sendSystemControlCommand(command: AVControlCommand): Promise\;
新版本信息:systemapi|@ohos.multimedia.avsession.d.ts| +|访问级别有变化|类名:SessionToken;
方法or属性:sessionId: string;
旧版本信息:|类名:SessionToken;
方法or属性:sessionId: string;
新版本信息:systemapi|@ohos.multimedia.avsession.d.ts| +|访问级别有变化|类名:AVSessionDescriptor;
方法or属性:sessionId: string;
旧版本信息:|类名:AVSessionDescriptor;
方法or属性:sessionId: string;
新版本信息:systemapi|@ohos.multimedia.avsession.d.ts| +|访问级别有变化|类名:SessionToken;
方法or属性:pid?: number;
旧版本信息:|类名:SessionToken;
方法or属性:pid?: number;
新版本信息:systemapi|@ohos.multimedia.avsession.d.ts| +|访问级别有变化|类名:SessionToken;
方法or属性:uid?: number;
旧版本信息:|类名:SessionToken;
方法or属性:uid?: number;
新版本信息:systemapi|@ohos.multimedia.avsession.d.ts| +|访问级别有变化|类名:AVSessionDescriptor;
方法or属性:type: AVSessionType;
旧版本信息:|类名:AVSessionDescriptor;
方法or属性:type: AVSessionType;
新版本信息:systemapi|@ohos.multimedia.avsession.d.ts| +|访问级别有变化|类名:AVSessionDescriptor;
方法or属性:sessionTag: string;
旧版本信息:|类名:AVSessionDescriptor;
方法or属性:sessionTag: string;
新版本信息:systemapi|@ohos.multimedia.avsession.d.ts| +|访问级别有变化|类名:AVSessionDescriptor;
方法or属性:elementName: ElementName;
旧版本信息:|类名:AVSessionDescriptor;
方法or属性:elementName: ElementName;
新版本信息:systemapi|@ohos.multimedia.avsession.d.ts| +|访问级别有变化|类名:AVSessionDescriptor;
方法or属性:isActive: boolean;
旧版本信息:|类名:AVSessionDescriptor;
方法or属性:isActive: boolean;
新版本信息:systemapi|@ohos.multimedia.avsession.d.ts| +|访问级别有变化|类名:AVSessionDescriptor;
方法or属性:isTopSession: boolean;
旧版本信息:|类名:AVSessionDescriptor;
方法or属性:isTopSession: boolean;
新版本信息:systemapi|@ohos.multimedia.avsession.d.ts| +|访问级别有变化|类名:AVSessionDescriptor;
方法or属性:outputDevice: OutputDeviceInfo;
旧版本信息:|类名:AVSessionDescriptor;
方法or属性:outputDevice: OutputDeviceInfo;
新版本信息:systemapi|@ohos.multimedia.avsession.d.ts| +|权限有变化|类名:avSession;
方法or属性:function getAllSessionDescriptors(): Promise\>>;
旧版本信息:|类名:avSession;
方法or属性:function getAllSessionDescriptors(): Promise\>>;
新版本信息:ohos.permission.MANAGE_MEDIA_RESOURCES|@ohos.multimedia.avsession.d.ts| +|权限有变化|类名:avSession;
方法or属性:function createController(sessionId: string): Promise\;
旧版本信息:|类名:avSession;
方法or属性:function createController(sessionId: string): Promise\;
新版本信息:ohos.permission.MANAGE_MEDIA_RESOURCES|@ohos.multimedia.avsession.d.ts| +|权限有变化|类名:avSession;
方法or属性:function castAudio(session: SessionToken \| 'all', audioDevices: Array\): Promise\;
旧版本信息:|类名:avSession;
方法or属性:function castAudio(session: SessionToken \| 'all', audioDevices: Array\): Promise\;
新版本信息:ohos.permission.MANAGE_MEDIA_RESOURCES|@ohos.multimedia.avsession.d.ts| +|权限有变化|类名:avSession;
方法or属性:function sendSystemAVKeyEvent(event: KeyEvent): Promise\;
旧版本信息:|类名:avSession;
方法or属性:function sendSystemAVKeyEvent(event: KeyEvent): Promise\;
新版本信息:ohos.permission.MANAGE_MEDIA_RESOURCES|@ohos.multimedia.avsession.d.ts| +|权限有变化|类名:avSession;
方法or属性:function sendSystemControlCommand(command: AVControlCommand): Promise\;
旧版本信息:|类名:avSession;
方法or属性:function sendSystemControlCommand(command: AVControlCommand): Promise\;
新版本信息:ohos.permission.MANAGE_MEDIA_RESOURCES|@ohos.multimedia.avsession.d.ts| +|权限有变化|类名:SessionToken;
方法or属性:sessionId: string;
旧版本信息:|类名:SessionToken;
方法or属性:sessionId: string;
新版本信息:ohos.permission.MANAGE_MEDIA_RESOURCES|@ohos.multimedia.avsession.d.ts| +|权限有变化|类名:SessionToken;
方法or属性:pid?: number;
旧版本信息:|类名:SessionToken;
方法or属性:pid?: number;
新版本信息:ohos.permission.MANAGE_MEDIA_RESOURCES|@ohos.multimedia.avsession.d.ts| +|权限有变化|类名:SessionToken;
方法or属性:uid?: number;
旧版本信息:|类名:SessionToken;
方法or属性:uid?: number;
新版本信息:ohos.permission.MANAGE_MEDIA_RESOURCES|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AudioRendererInfo;
方法or属性:content?: ContentType;
旧版本信息:|类名:AudioRendererInfo;
方法or属性:content?: ContentType;
新版本信息:?ContentType|@ohos.multimedia.audio.d.ts| +|type有变化|类名:SessionToken;
方法or属性:sessionId: string;
旧版本信息:|类名:SessionToken;
方法or属性:sessionId: string;
新版本信息:string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVSessionDescriptor;
方法or属性:sessionId: string;
旧版本信息:|类名:AVSessionDescriptor;
方法or属性:sessionId: string;
新版本信息:string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:SessionToken;
方法or属性:pid?: number;
旧版本信息:|类名:SessionToken;
方法or属性:pid?: number;
新版本信息:?number|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:SessionToken;
方法or属性:uid?: number;
旧版本信息:|类名:SessionToken;
方法or属性:uid?: number;
新版本信息:?number|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMetadata;
方法or属性:assetId: string;
旧版本信息:|类名:AVMetadata;
方法or属性:assetId: string;
新版本信息:string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMetadata;
方法or属性:title?: string;
旧版本信息:|类名:AVMetadata;
方法or属性:title?: string;
新版本信息:?string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMediaDescription;
方法or属性:title?: string;
旧版本信息:|类名:AVMediaDescription;
方法or属性:title?: string;
新版本信息:?string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMetadata;
方法or属性:artist?: string;
旧版本信息:|类名:AVMetadata;
方法or属性:artist?: string;
新版本信息:?string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMetadata;
方法or属性:author?: string;
旧版本信息:|类名:AVMetadata;
方法or属性:author?: string;
新版本信息:?string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMetadata;
方法or属性:album?: string;
旧版本信息:|类名:AVMetadata;
方法or属性:album?: string;
新版本信息:?string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMetadata;
方法or属性:writer?: string;
旧版本信息:|类名:AVMetadata;
方法or属性:writer?: string;
新版本信息:?string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMetadata;
方法or属性:composer?: string;
旧版本信息:|类名:AVMetadata;
方法or属性:composer?: string;
新版本信息:?string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMetadata;
方法or属性:duration?: number;
旧版本信息:|类名:AVMetadata;
方法or属性:duration?: number;
新版本信息:?number|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMetadata;
方法or属性:publishDate?: Date;
旧版本信息:|类名:AVMetadata;
方法or属性:publishDate?: Date;
新版本信息:?Date|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMetadata;
方法or属性:subtitle?: string;
旧版本信息:|类名:AVMetadata;
方法or属性:subtitle?: string;
新版本信息:?string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMediaDescription;
方法or属性:subtitle?: string;
旧版本信息:|类名:AVMediaDescription;
方法or属性:subtitle?: string;
新版本信息:?string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMetadata;
方法or属性:description?: string;
旧版本信息:|类名:AVMetadata;
方法or属性:description?: string;
新版本信息:?string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMediaDescription;
方法or属性:description?: string;
旧版本信息:|类名:AVMediaDescription;
方法or属性:description?: string;
新版本信息:?string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMetadata;
方法or属性:lyric?: string;
旧版本信息:|类名:AVMetadata;
方法or属性:lyric?: string;
新版本信息:?string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMetadata;
方法or属性:previousAssetId?: string;
旧版本信息:|类名:AVMetadata;
方法or属性:previousAssetId?: string;
新版本信息:?string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMetadata;
方法or属性:nextAssetId?: string;
旧版本信息:|类名:AVMetadata;
方法or属性:nextAssetId?: string;
新版本信息:?string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMediaDescription;
方法or属性:mediaId: string;
旧版本信息:|类名:AVMediaDescription;
方法or属性:mediaId: string;
新版本信息:string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMediaDescription;
方法or属性:iconUri?: string;
旧版本信息:|类名:AVMediaDescription;
方法or属性:iconUri?: string;
新版本信息:?string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVMediaDescription;
方法or属性:mediaUri?: string;
旧版本信息:|类名:AVMediaDescription;
方法or属性:mediaUri?: string;
新版本信息:?string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVQueueItem;
方法or属性:itemId: number;
旧版本信息:|类名:AVQueueItem;
方法or属性:itemId: number;
新版本信息:number|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVPlaybackState;
方法or属性:speed?: number;
旧版本信息:|类名:AVPlaybackState;
方法or属性:speed?: number;
新版本信息:?number|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVPlaybackState;
方法or属性:bufferedTime?: number;
旧版本信息:|类名:AVPlaybackState;
方法or属性:bufferedTime?: number;
新版本信息:?number|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVPlaybackState;
方法or属性:isFavorite?: boolean;
旧版本信息:|类名:AVPlaybackState;
方法or属性:isFavorite?: boolean;
新版本信息:?boolean|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVPlaybackState;
方法or属性:activeItemId?: number;
旧版本信息:|类名:AVPlaybackState;
方法or属性:activeItemId?: number;
新版本信息:?number|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:PlaybackPosition;
方法or属性:elapsedTime: number;
旧版本信息:|类名:PlaybackPosition;
方法or属性:elapsedTime: number;
新版本信息:number|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:PlaybackPosition;
方法or属性:updateTime: number;
旧版本信息:|类名:PlaybackPosition;
方法or属性:updateTime: number;
新版本信息:number|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVSessionDescriptor;
方法or属性:sessionTag: string;
旧版本信息:|类名:AVSessionDescriptor;
方法or属性:sessionTag: string;
新版本信息:string|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVSessionDescriptor;
方法or属性:isActive: boolean;
旧版本信息:|类名:AVSessionDescriptor;
方法or属性:isActive: boolean;
新版本信息:boolean|@ohos.multimedia.avsession.d.ts| +|type有变化|类名:AVSessionDescriptor;
方法or属性:isTopSession: boolean;
旧版本信息:|类名:AVSessionDescriptor;
方法or属性:isTopSession: boolean;
新版本信息:boolean|@ohos.multimedia.avsession.d.ts| +|函数有变化|类名:AudioRendererInfo;
方法or属性:content: ContentType;|类名:AudioRendererInfo;
方法or属性:content?: ContentType;|@ohos.multimedia.audio.d.ts| +|函数有变化|类名:SessionToken;
方法or属性:pid: number;|类名:SessionToken;
方法or属性:pid?: number;|@ohos.multimedia.avsession.d.ts| +|函数有变化|类名:SessionToken;
方法or属性:uid: number;|类名:SessionToken;
方法or属性:uid?: number;|@ohos.multimedia.avsession.d.ts| +|函数有变化|类名:AVMediaDescription;
方法or属性:icon?: image.PixelMap \| string;|类名:AVMediaDescription;
方法or属性:icon?: image.PixelMap;|@ohos.multimedia.avsession.d.ts| +|函数有变化|类名:CameraInput;
方法or属性:on(type: 'error', camera: CameraDevice, callback: ErrorCallback\): void;|类名:CameraInput;
方法or属性:on(type: 'error', camera: CameraDevice, callback: ErrorCallback): void;|@ohos.multimedia.camera.d.ts| +|函数有变化|类名:CaptureSession;
方法or属性:on(type: 'error', callback: ErrorCallback\): void;|类名:CaptureSession;
方法or属性:on(type: 'error', callback: ErrorCallback): void;|@ohos.multimedia.camera.d.ts| +|函数有变化|类名:PreviewOutput;
方法or属性:on(type: 'error', callback: ErrorCallback\): void;|类名:PreviewOutput;
方法or属性:on(type: 'error', callback: ErrorCallback): void;|@ohos.multimedia.camera.d.ts| +|函数有变化|类名:PhotoOutput;
方法or属性:on(type: 'error', callback: ErrorCallback\): void;|类名:PhotoOutput;
方法or属性:on(type: 'error', callback: ErrorCallback): void;|@ohos.multimedia.camera.d.ts| +|函数有变化|类名:VideoOutput;
方法or属性:on(type: 'error', callback: ErrorCallback\): void;|类名:VideoOutput;
方法or属性:on(type: 'error', callback: ErrorCallback): void;|@ohos.multimedia.camera.d.ts| +|函数有变化|类名:MetadataOutput;
方法or属性:on(type: 'error', callback: ErrorCallback\): void;|类名:MetadataOutput;
方法or属性:on(type: 'error', callback: ErrorCallback): void;|@ohos.multimedia.camera.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-notification.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-notification.md new file mode 100644 index 0000000000..9f62e8a77e --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-notification.md @@ -0,0 +1,250 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:Support;
方法or属性:COMMON_EVENT_CHARGE_IDLE_MODE_CHANGED = 'usual.event.CHARGE_IDLE_MODE_CHANGED'|@ohos.commonEventManager.d.ts| +|新增|NA|类名:emitter;
方法or属性:function off(eventId: number, callback: Callback\): void;|@ohos.events.emitter.d.ts| +|新增|NA|类名:notificationSubscribe;
方法or属性:function remove(hashCodes: Array\, reason: RemoveReason, callback: AsyncCallback\): void;|@ohos.notificationSubscribe.d.ts| +|新增|NA|类名:notificationSubscribe;
方法or属性:function remove(hashCodes: Array\, reason: RemoveReason): Promise\;|@ohos.notificationSubscribe.d.ts| +|错误码有变化|类名:reminderAgentManager;
方法or属性:function publishReminder(reminderReq: ReminderRequest, callback: AsyncCallback\): void;
旧版本信息:401|类名:reminderAgentManager;
方法or属性:function publishReminder(reminderReq: ReminderRequest, callback: AsyncCallback\): void;
新版本信息:401,1700001,1700002|@ohos.reminderAgentManager.d.ts| +|错误码有变化|类名:reminderAgentManager;
方法or属性:function publishReminder(reminderReq: ReminderRequest): Promise\;
旧版本信息:401|类名:reminderAgentManager;
方法or属性:function publishReminder(reminderReq: ReminderRequest): Promise\;
新版本信息:401,1700001,1700002|@ohos.reminderAgentManager.d.ts| +|错误码有变化|类名:reminderAgentManager;
方法or属性:function cancelReminder(reminderId: number, callback: AsyncCallback\): void;
旧版本信息:401|类名:reminderAgentManager;
方法or属性:function cancelReminder(reminderId: number, callback: AsyncCallback\): void;
新版本信息:401,1700003,1700004|@ohos.reminderAgentManager.d.ts| +|错误码有变化|类名:reminderAgentManager;
方法or属性:function cancelReminder(reminderId: number): Promise\;
旧版本信息:401|类名:reminderAgentManager;
方法or属性:function cancelReminder(reminderId: number): Promise\;
新版本信息:401,1700003,1700004|@ohos.reminderAgentManager.d.ts| +|错误码有变化|类名:reminderAgentManager;
方法or属性:function getValidReminders(callback: AsyncCallback\>): void;
旧版本信息:401|类名:reminderAgentManager;
方法or属性:function getValidReminders(callback: AsyncCallback\>): void;
新版本信息:401,1700004|@ohos.reminderAgentManager.d.ts| +|错误码有变化|类名:reminderAgentManager;
方法or属性:function getValidReminders(): Promise\>;
旧版本信息:401|类名:reminderAgentManager;
方法or属性:function getValidReminders(): Promise\>;
新版本信息:401,1700004|@ohos.reminderAgentManager.d.ts| +|错误码有变化|类名:reminderAgentManager;
方法or属性:function cancelAllReminders(callback: AsyncCallback\): void;
旧版本信息:401|类名:reminderAgentManager;
方法or属性:function cancelAllReminders(callback: AsyncCallback\): void;
新版本信息:401,1700004|@ohos.reminderAgentManager.d.ts| +|错误码有变化|类名:reminderAgentManager;
方法or属性:function cancelAllReminders(): Promise\;
旧版本信息:401|类名:reminderAgentManager;
方法or属性:function cancelAllReminders(): Promise\;
新版本信息:401,1700004|@ohos.reminderAgentManager.d.ts| +|访问级别有变化|类名:notification;
方法or属性:function publish(request: NotificationRequest, userId: number): Promise\;
旧版本信息:|类名:notification;
方法or属性:function publish(request: NotificationRequest, userId: number): Promise\;
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:notification;
方法or属性:function isNotificationEnabled(userId: number): Promise\;
旧版本信息:|类名:notification;
方法or属性:function isNotificationEnabled(userId: number): Promise\;
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:notification;
方法or属性:function removeAll(userId: number): Promise\;
旧版本信息:|类名:notification;
方法or属性:function removeAll(userId: number): Promise\;
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:notification;
方法or属性:function removeGroupByBundle(bundle: BundleOption, groupName: string): Promise\;
旧版本信息:|类名:notification;
方法or属性:function removeGroupByBundle(bundle: BundleOption, groupName: string): Promise\;
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:notification;
方法or属性:function setDoNotDisturbDate(date: DoNotDisturbDate): Promise\;
旧版本信息:|类名:notification;
方法or属性:function setDoNotDisturbDate(date: DoNotDisturbDate): Promise\;
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:notification;
方法or属性:function setDoNotDisturbDate(date: DoNotDisturbDate, userId: number): Promise\;
旧版本信息:|类名:notification;
方法or属性:function setDoNotDisturbDate(date: DoNotDisturbDate, userId: number): Promise\;
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:notification;
方法or属性:function getDoNotDisturbDate(): Promise\;
旧版本信息:|类名:notification;
方法or属性:function getDoNotDisturbDate(): Promise\;
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:notification;
方法or属性:function getDoNotDisturbDate(userId: number): Promise\;
旧版本信息:|类名:notification;
方法or属性:function getDoNotDisturbDate(userId: number): Promise\;
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:notification;
方法or属性:function supportDoNotDisturbMode(): Promise\;
旧版本信息:|类名:notification;
方法or属性:function supportDoNotDisturbMode(): Promise\;
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:notification;
方法or属性:function enableDistributed(enable: boolean): Promise\;
旧版本信息:|类名:notification;
方法or属性:function enableDistributed(enable: boolean): Promise\;
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:notification;
方法or属性:function enableDistributedByBundle(bundle: BundleOption, enable: boolean): Promise\;
旧版本信息:|类名:notification;
方法or属性:function enableDistributedByBundle(bundle: BundleOption, enable: boolean): Promise\;
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:notification;
方法or属性:function isDistributedEnabledByBundle(bundle: BundleOption): Promise\;
旧版本信息:|类名:notification;
方法or属性:function isDistributedEnabledByBundle(bundle: BundleOption): Promise\;
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:notification;
方法or属性:function getDeviceRemindType(): Promise\;
旧版本信息:|类名:notification;
方法or属性:function getDeviceRemindType(): Promise\;
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:DoNotDisturbType;
方法or属性:TYPE_NONE = 0
旧版本信息:|类名:DoNotDisturbType;
方法or属性:TYPE_NONE = 0
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:DoNotDisturbType;
方法or属性:TYPE_ONCE = 1
旧版本信息:|类名:DoNotDisturbType;
方法or属性:TYPE_ONCE = 1
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:DoNotDisturbType;
方法or属性:TYPE_DAILY = 2
旧版本信息:|类名:DoNotDisturbType;
方法or属性:TYPE_DAILY = 2
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:DoNotDisturbType;
方法or属性:TYPE_CLEARLY = 3
旧版本信息:|类名:DoNotDisturbType;
方法or属性:TYPE_CLEARLY = 3
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:DoNotDisturbDate;
方法or属性:type: DoNotDisturbType;
旧版本信息:|类名:DoNotDisturbDate;
方法or属性:type: DoNotDisturbType;
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:DoNotDisturbDate;
方法or属性:begin: Date;
旧版本信息:|类名:DoNotDisturbDate;
方法or属性:begin: Date;
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:DoNotDisturbDate;
方法or属性:end: Date;
旧版本信息:|类名:DoNotDisturbDate;
方法or属性:end: Date;
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:DeviceRemindType;
方法or属性:IDLE_DONOT_REMIND = 0
旧版本信息:|类名:DeviceRemindType;
方法or属性:IDLE_DONOT_REMIND = 0
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:DeviceRemindType;
方法or属性:IDLE_REMIND = 1
旧版本信息:|类名:DeviceRemindType;
方法or属性:IDLE_REMIND = 1
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:DeviceRemindType;
方法or属性:ACTIVE_DONOT_REMIND = 2
旧版本信息:|类名:DeviceRemindType;
方法or属性:ACTIVE_DONOT_REMIND = 2
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:DeviceRemindType;
方法or属性:ACTIVE_REMIND = 3
旧版本信息:|类名:DeviceRemindType;
方法or属性:ACTIVE_REMIND = 3
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:SourceType;
方法or属性:TYPE_NORMAL = 0
旧版本信息:|类名:SourceType;
方法or属性:TYPE_NORMAL = 0
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:SourceType;
方法or属性:TYPE_CONTINUOUS = 1
旧版本信息:|类名:SourceType;
方法or属性:TYPE_CONTINUOUS = 1
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:SourceType;
方法or属性:TYPE_TIMER = 2
旧版本信息:|类名:SourceType;
方法or属性:TYPE_TIMER = 2
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:RemoveReason;
方法or属性:CLICK_REASON_REMOVE = 1
旧版本信息:|类名:RemoveReason;
方法or属性:CLICK_REASON_REMOVE = 1
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:RemoveReason;
方法or属性:CANCEL_REASON_REMOVE = 2
旧版本信息:|类名:RemoveReason;
方法or属性:CANCEL_REASON_REMOVE = 2
新版本信息:systemapi|@ohos.notification.d.ts| +|访问级别有变化|类名:NotificationCheckInfo;
方法or属性:bundleName: string;
旧版本信息:|类名:NotificationCheckInfo;
方法or属性:bundleName: string;
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:NotificationCheckInfo;
方法or属性:notificationId: number;
旧版本信息:|类名:NotificationCheckInfo;
方法or属性:notificationId: number;
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:NotificationCheckInfo;
方法or属性:contentType: ContentType;
旧版本信息:|类名:NotificationCheckInfo;
方法or属性:contentType: ContentType;
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:NotificationCheckResult;
方法or属性:code: number;
旧版本信息:|类名:NotificationCheckResult;
方法or属性:code: number;
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:NotificationCheckResult;
方法or属性:message: string;
旧版本信息:|类名:NotificationCheckResult;
方法or属性:message: string;
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:DoNotDisturbType;
方法or属性:TYPE_NONE = 0
旧版本信息:|类名:DoNotDisturbType;
方法or属性:TYPE_NONE = 0
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:DoNotDisturbType;
方法or属性:TYPE_ONCE = 1
旧版本信息:|类名:DoNotDisturbType;
方法or属性:TYPE_ONCE = 1
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:DoNotDisturbType;
方法or属性:TYPE_DAILY = 2
旧版本信息:|类名:DoNotDisturbType;
方法or属性:TYPE_DAILY = 2
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:DoNotDisturbType;
方法or属性:TYPE_CLEARLY = 3
旧版本信息:|类名:DoNotDisturbType;
方法or属性:TYPE_CLEARLY = 3
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:DoNotDisturbDate;
方法or属性:type: DoNotDisturbType;
旧版本信息:|类名:DoNotDisturbDate;
方法or属性:type: DoNotDisturbType;
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:DoNotDisturbDate;
方法or属性:begin: Date;
旧版本信息:|类名:DoNotDisturbDate;
方法or属性:begin: Date;
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:DoNotDisturbDate;
方法or属性:end: Date;
旧版本信息:|类名:DoNotDisturbDate;
方法or属性:end: Date;
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:DeviceRemindType;
方法or属性:IDLE_DONOT_REMIND = 0
旧版本信息:|类名:DeviceRemindType;
方法or属性:IDLE_DONOT_REMIND = 0
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:DeviceRemindType;
方法or属性:IDLE_REMIND = 1
旧版本信息:|类名:DeviceRemindType;
方法or属性:IDLE_REMIND = 1
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:DeviceRemindType;
方法or属性:ACTIVE_DONOT_REMIND = 2
旧版本信息:|类名:DeviceRemindType;
方法or属性:ACTIVE_DONOT_REMIND = 2
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:DeviceRemindType;
方法or属性:ACTIVE_REMIND = 3
旧版本信息:|类名:DeviceRemindType;
方法or属性:ACTIVE_REMIND = 3
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:SourceType;
方法or属性:TYPE_NORMAL = 0
旧版本信息:|类名:SourceType;
方法or属性:TYPE_NORMAL = 0
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:SourceType;
方法or属性:TYPE_CONTINUOUS = 1
旧版本信息:|类名:SourceType;
方法or属性:TYPE_CONTINUOUS = 1
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:SourceType;
方法or属性:TYPE_TIMER = 2
旧版本信息:|类名:SourceType;
方法or属性:TYPE_TIMER = 2
新版本信息:systemapi|@ohos.notificationManager.d.ts| +|访问级别有变化|类名:notificationSubscribe;
方法or属性:export type BundleOption = _BundleOption;
旧版本信息:|类名:notificationSubscribe;
方法or属性:export type BundleOption = _BundleOption;
新版本信息:systemapi|@ohos.notificationSubscribe.d.ts| +|访问级别有变化|类名:NotificationKey;
方法or属性:id: number;
旧版本信息:|类名:NotificationKey;
方法or属性:id: number;
新版本信息:systemapi|@ohos.notificationSubscribe.d.ts| +|访问级别有变化|类名:NotificationKey;
方法or属性:label?: string;
旧版本信息:|类名:NotificationKey;
方法or属性:label?: string;
新版本信息:systemapi|@ohos.notificationSubscribe.d.ts| +|访问级别有变化|类名:RemoveReason;
方法or属性:CLICK_REASON_REMOVE = 1
旧版本信息:|类名:RemoveReason;
方法or属性:CLICK_REASON_REMOVE = 1
新版本信息:systemapi|@ohos.notificationSubscribe.d.ts| +|访问级别有变化|类名:RemoveReason;
方法or属性:CANCEL_REASON_REMOVE = 2
旧版本信息:|类名:RemoveReason;
方法or属性:CANCEL_REASON_REMOVE = 2
新版本信息:systemapi|@ohos.notificationSubscribe.d.ts| +|访问级别有变化|类名:NotificationSorting;
方法or属性:readonly slot: NotificationSlot;
旧版本信息:|类名:NotificationSorting;
方法or属性:readonly slot: NotificationSlot;
新版本信息:systemapi|notificationSorting.d.ts| +|访问级别有变化|类名:NotificationSorting;
方法or属性:readonly hashCode: string;
旧版本信息:|类名:NotificationSorting;
方法or属性:readonly hashCode: string;
新版本信息:systemapi|notificationSorting.d.ts| +|访问级别有变化|类名:NotificationSorting;
方法or属性:readonly ranking: number;
旧版本信息:|类名:NotificationSorting;
方法or属性:readonly ranking: number;
新版本信息:systemapi|notificationSorting.d.ts| +|访问级别有变化|类名:NotificationSortingMap;
方法or属性:readonly sortings: { [key: string]: NotificationSorting };
旧版本信息:|类名:NotificationSortingMap;
方法or属性:readonly sortings: { [key: string]: NotificationSorting };
新版本信息:systemapi|notificationSortingMap.d.ts| +|访问级别有变化|类名:NotificationSortingMap;
方法or属性:readonly sortedHashCode: Array\;
旧版本信息:|类名:NotificationSortingMap;
方法or属性:readonly sortedHashCode: Array\;
新版本信息:systemapi|notificationSortingMap.d.ts| +|访问级别有变化|类名:NotificationSubscribeInfo;
方法or属性:bundleNames?: Array\;
旧版本信息:|类名:NotificationSubscribeInfo;
方法or属性:bundleNames?: Array\;
新版本信息:systemapi|notificationSubscribeInfo.d.ts| +|访问级别有变化|类名:NotificationSubscribeInfo;
方法or属性:userId?: number;
旧版本信息:|类名:NotificationSubscribeInfo;
方法or属性:userId?: number;
新版本信息:systemapi|notificationSubscribeInfo.d.ts| +|访问级别有变化|类名:NotificationSubscriber;
方法or属性:onConsume?: (data: SubscribeCallbackData) => void;
旧版本信息:|类名:NotificationSubscriber;
方法or属性:onConsume?: (data: SubscribeCallbackData) => void;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:NotificationSubscriber;
方法or属性:onCancel?: (data: SubscribeCallbackData) => void;
旧版本信息:|类名:NotificationSubscriber;
方法or属性:onCancel?: (data: SubscribeCallbackData) => void;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:NotificationSubscriber;
方法or属性:onUpdate?: (data: NotificationSortingMap) => void;
旧版本信息:|类名:NotificationSubscriber;
方法or属性:onUpdate?: (data: NotificationSortingMap) => void;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:NotificationSubscriber;
方法or属性:onConnect?: () => void;
旧版本信息:|类名:NotificationSubscriber;
方法or属性:onConnect?: () => void;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:NotificationSubscriber;
方法or属性:onDisconnect?: () => void;
旧版本信息:|类名:NotificationSubscriber;
方法or属性:onDisconnect?: () => void;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:NotificationSubscriber;
方法or属性:onDestroy?: () => void;
旧版本信息:|类名:NotificationSubscriber;
方法or属性:onDestroy?: () => void;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:NotificationSubscriber;
方法or属性:onDoNotDisturbDateChange?: (mode: notification.DoNotDisturbDate) => void;
旧版本信息:|类名:NotificationSubscriber;
方法or属性:onDoNotDisturbDateChange?: (mode: notification.DoNotDisturbDate) => void;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:NotificationSubscriber;
方法or属性:onEnabledNotificationChanged?: (callbackData: EnabledNotificationCallbackData) => void;
旧版本信息:|类名:NotificationSubscriber;
方法or属性:onEnabledNotificationChanged?: (callbackData: EnabledNotificationCallbackData) => void;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:NotificationSubscriber;
方法or属性:onBadgeChanged?: (data: BadgeNumberCallbackData) => void;
旧版本信息:|类名:NotificationSubscriber;
方法or属性:onBadgeChanged?: (data: BadgeNumberCallbackData) => void;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:SubscribeCallbackData;
方法or属性:readonly request: NotificationRequest;
旧版本信息:|类名:SubscribeCallbackData;
方法or属性:readonly request: NotificationRequest;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:SubscribeCallbackData;
方法or属性:readonly sortingMap?: NotificationSortingMap;
旧版本信息:|类名:SubscribeCallbackData;
方法or属性:readonly sortingMap?: NotificationSortingMap;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:SubscribeCallbackData;
方法or属性:readonly reason?: number;
旧版本信息:|类名:SubscribeCallbackData;
方法or属性:readonly reason?: number;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:SubscribeCallbackData;
方法or属性:readonly sound?: string;
旧版本信息:|类名:SubscribeCallbackData;
方法or属性:readonly sound?: string;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:SubscribeCallbackData;
方法or属性:readonly vibrationValues?: Array\;
旧版本信息:|类名:SubscribeCallbackData;
方法or属性:readonly vibrationValues?: Array\;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:EnabledNotificationCallbackData;
方法or属性:readonly bundle: string;
旧版本信息:|类名:EnabledNotificationCallbackData;
方法or属性:readonly bundle: string;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:BadgeNumberCallbackData;
方法or属性:readonly bundle: string;
旧版本信息:|类名:BadgeNumberCallbackData;
方法or属性:readonly bundle: string;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:EnabledNotificationCallbackData;
方法or属性:readonly uid: number;
旧版本信息:|类名:EnabledNotificationCallbackData;
方法or属性:readonly uid: number;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:BadgeNumberCallbackData;
方法or属性:readonly uid: number;
旧版本信息:|类名:BadgeNumberCallbackData;
方法or属性:readonly uid: number;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:EnabledNotificationCallbackData;
方法or属性:readonly enable: boolean;
旧版本信息:|类名:EnabledNotificationCallbackData;
方法or属性:readonly enable: boolean;
新版本信息:systemapi|notificationSubscriber.d.ts| +|访问级别有变化|类名:BadgeNumberCallbackData;
方法or属性:readonly badgeNumber: number;
旧版本信息:|类名:BadgeNumberCallbackData;
方法or属性:readonly badgeNumber: number;
新版本信息:systemapi|notificationSubscriber.d.ts| +|权限有变化|类名:notification;
方法or属性:function publish(request: NotificationRequest, userId: number): Promise\;
旧版本信息:|类名:notification;
方法or属性:function publish(request: NotificationRequest, userId: number): Promise\;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER|@ohos.notification.d.ts| +|权限有变化|类名:notification;
方法or属性:function isNotificationEnabled(userId: number): Promise\;
旧版本信息:|类名:notification;
方法or属性:function isNotificationEnabled(userId: number): Promise\;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER|@ohos.notification.d.ts| +|权限有变化|类名:notification;
方法or属性:function removeAll(userId: number): Promise\;
旧版本信息:|类名:notification;
方法or属性:function removeAll(userId: number): Promise\;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER|@ohos.notification.d.ts| +|权限有变化|类名:notification;
方法or属性:function removeGroupByBundle(bundle: BundleOption, groupName: string): Promise\;
旧版本信息:|类名:notification;
方法or属性:function removeGroupByBundle(bundle: BundleOption, groupName: string): Promise\;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER|@ohos.notification.d.ts| +|权限有变化|类名:notification;
方法or属性:function setDoNotDisturbDate(date: DoNotDisturbDate): Promise\;
旧版本信息:|类名:notification;
方法or属性:function setDoNotDisturbDate(date: DoNotDisturbDate): Promise\;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER|@ohos.notification.d.ts| +|权限有变化|类名:notification;
方法or属性:function setDoNotDisturbDate(date: DoNotDisturbDate, userId: number): Promise\;
旧版本信息:|类名:notification;
方法or属性:function setDoNotDisturbDate(date: DoNotDisturbDate, userId: number): Promise\;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER|@ohos.notification.d.ts| +|权限有变化|类名:notification;
方法or属性:function getDoNotDisturbDate(): Promise\;
旧版本信息:|类名:notification;
方法or属性:function getDoNotDisturbDate(): Promise\;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER|@ohos.notification.d.ts| +|权限有变化|类名:notification;
方法or属性:function getDoNotDisturbDate(userId: number): Promise\;
旧版本信息:|类名:notification;
方法or属性:function getDoNotDisturbDate(userId: number): Promise\;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER|@ohos.notification.d.ts| +|权限有变化|类名:notification;
方法or属性:function supportDoNotDisturbMode(): Promise\;
旧版本信息:|类名:notification;
方法or属性:function supportDoNotDisturbMode(): Promise\;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER|@ohos.notification.d.ts| +|权限有变化|类名:notification;
方法or属性:function enableDistributed(enable: boolean): Promise\;
旧版本信息:|类名:notification;
方法or属性:function enableDistributed(enable: boolean): Promise\;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER|@ohos.notification.d.ts| +|权限有变化|类名:notification;
方法or属性:function enableDistributedByBundle(bundle: BundleOption, enable: boolean): Promise\;
旧版本信息:|类名:notification;
方法or属性:function enableDistributedByBundle(bundle: BundleOption, enable: boolean): Promise\;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER|@ohos.notification.d.ts| +|权限有变化|类名:notification;
方法or属性:function isDistributedEnabledByBundle(bundle: BundleOption): Promise\;
旧版本信息:|类名:notification;
方法or属性:function isDistributedEnabledByBundle(bundle: BundleOption): Promise\;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER|@ohos.notification.d.ts| +|权限有变化|类名:notification;
方法or属性:function getDeviceRemindType(): Promise\;
旧版本信息:|类名:notification;
方法or属性:function getDeviceRemindType(): Promise\;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER|@ohos.notification.d.ts| +|权限有变化|类名:NotificationCheckInfo;
方法or属性:bundleName: string;
旧版本信息:|类名:NotificationCheckInfo;
方法or属性:bundleName: string;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER,ohos.permission.NOTIFICATION_AGENT_CONTROLLER|@ohos.notificationManager.d.ts| +|权限有变化|类名:NotificationCheckInfo;
方法or属性:notificationId: number;
旧版本信息:|类名:NotificationCheckInfo;
方法or属性:notificationId: number;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER,ohos.permission.NOTIFICATION_AGENT_CONTROLLER|@ohos.notificationManager.d.ts| +|权限有变化|类名:NotificationCheckInfo;
方法or属性:contentType: ContentType;
旧版本信息:|类名:NotificationCheckInfo;
方法or属性:contentType: ContentType;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER,ohos.permission.NOTIFICATION_AGENT_CONTROLLER|@ohos.notificationManager.d.ts| +|权限有变化|类名:NotificationCheckResult;
方法or属性:code: number;
旧版本信息:|类名:NotificationCheckResult;
方法or属性:code: number;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER,ohos.permission.NOTIFICATION_AGENT_CONTROLLER|@ohos.notificationManager.d.ts| +|权限有变化|类名:NotificationCheckResult;
方法or属性:message: string;
旧版本信息:|类名:NotificationCheckResult;
方法or属性:message: string;
新版本信息:ohos.permission.NOTIFICATION_CONTROLLER,ohos.permission.NOTIFICATION_AGENT_CONTROLLER|@ohos.notificationManager.d.ts| +|type有变化|类名:EventData;
方法or属性:data?: { [key: string]: any };
旧版本信息:|类名:EventData;
方法or属性:data?: { [key: string]: any };
新版本信息:?object|@ohos.events.emitter.d.ts| +|type有变化|类名:InnerEvent;
方法or属性:eventId: number;
旧版本信息:|类名:InnerEvent;
方法or属性:eventId: number;
新版本信息:number|@ohos.events.emitter.d.ts| +|type有变化|类名:InnerEvent;
方法or属性:priority?: EventPriority;
旧版本信息:|类名:InnerEvent;
方法or属性:priority?: EventPriority;
新版本信息:?EventPriority|@ohos.events.emitter.d.ts| +|type有变化|类名:BundleOption;
方法or属性:bundle: string;
旧版本信息:|类名:BundleOption;
方法or属性:bundle: string;
新版本信息:string|@ohos.notification.d.ts| +|type有变化|类名:BundleOption;
方法or属性:uid?: number;
旧版本信息:|类名:BundleOption;
方法or属性:uid?: number;
新版本信息:?number|@ohos.notification.d.ts| +|type有变化|类名:NotificationKey;
方法or属性:id: number;
旧版本信息:|类名:NotificationKey;
方法or属性:id: number;
新版本信息:number|@ohos.notification.d.ts| +|type有变化|类名:NotificationKey;
方法or属性:label?: string;
旧版本信息:|类名:NotificationKey;
方法or属性:label?: string;
新版本信息:?string|@ohos.notification.d.ts| +|type有变化|类名:NotificationCheckInfo;
方法or属性:bundleName: string;
旧版本信息:|类名:NotificationCheckInfo;
方法or属性:bundleName: string;
新版本信息:string|@ohos.notificationManager.d.ts| +|type有变化|类名:NotificationCheckInfo;
方法or属性:notificationId: number;
旧版本信息:|类名:NotificationCheckInfo;
方法or属性:notificationId: number;
新版本信息:number|@ohos.notificationManager.d.ts| +|type有变化|类名:NotificationCheckInfo;
方法or属性:contentType: ContentType;
旧版本信息:|类名:NotificationCheckInfo;
方法or属性:contentType: ContentType;
新版本信息:ContentType|@ohos.notificationManager.d.ts| +|type有变化|类名:NotificationCheckResult;
方法or属性:code: number;
旧版本信息:|类名:NotificationCheckResult;
方法or属性:code: number;
新版本信息:number|@ohos.notificationManager.d.ts| +|type有变化|类名:NotificationCheckResult;
方法or属性:message: string;
旧版本信息:|类名:NotificationCheckResult;
方法or属性:message: string;
新版本信息:string|@ohos.notificationManager.d.ts| +|type有变化|类名:DoNotDisturbDate;
方法or属性:type: DoNotDisturbType;
旧版本信息:|类名:DoNotDisturbDate;
方法or属性:type: DoNotDisturbType;
新版本信息:DoNotDisturbType|@ohos.notificationManager.d.ts| +|type有变化|类名:DoNotDisturbDate;
方法or属性:begin: Date;
旧版本信息:|类名:DoNotDisturbDate;
方法or属性:begin: Date;
新版本信息:Date|@ohos.notificationManager.d.ts| +|type有变化|类名:DoNotDisturbDate;
方法or属性:end: Date;
旧版本信息:|类名:DoNotDisturbDate;
方法or属性:end: Date;
新版本信息:Date|@ohos.notificationManager.d.ts| +|type有变化|类名:NotificationKey;
方法or属性:id: number;
旧版本信息:|类名:NotificationKey;
方法or属性:id: number;
新版本信息:number|@ohos.notificationSubscribe.d.ts| +|type有变化|类名:NotificationKey;
方法or属性:label?: string;
旧版本信息:|类名:NotificationKey;
方法or属性:label?: string;
新版本信息:?string|@ohos.notificationSubscribe.d.ts| +|type有变化|类名:ActionResult;
方法or属性:bundleName: string;
旧版本信息:|类名:ActionResult;
方法or属性:bundleName: string;
新版本信息:string|@system.notification.d.ts| +|type有变化|类名:ActionResult;
方法or属性:abilityName: string;
旧版本信息:|类名:ActionResult;
方法or属性:abilityName: string;
新版本信息:string|@system.notification.d.ts| +|type有变化|类名:ActionResult;
方法or属性:uri: string;
旧版本信息:|类名:ActionResult;
方法or属性:uri: string;
新版本信息:string|@system.notification.d.ts| +|type有变化|类名:ShowNotificationOptions;
方法or属性:contentTitle?: string;
旧版本信息:|类名:ShowNotificationOptions;
方法or属性:contentTitle?: string;
新版本信息:?string|@system.notification.d.ts| +|type有变化|类名:ShowNotificationOptions;
方法or属性:contentText?: string;
旧版本信息:|类名:ShowNotificationOptions;
方法or属性:contentText?: string;
新版本信息:?string|@system.notification.d.ts| +|type有变化|类名:ShowNotificationOptions;
方法or属性:clickAction?: ActionResult;
旧版本信息:|类名:ShowNotificationOptions;
方法or属性:clickAction?: ActionResult;
新版本信息:?ActionResult|@system.notification.d.ts| +|type有变化|类名:CommonEventData;
方法or属性:event: string;
旧版本信息:|类名:CommonEventData;
方法or属性:event: string;
新版本信息:string|commonEventData.d.ts| +|type有变化|类名:CommonEventData;
方法or属性:bundleName?: string;
旧版本信息:|类名:CommonEventData;
方法or属性:bundleName?: string;
新版本信息:?string|commonEventData.d.ts| +|type有变化|类名:CommonEventData;
方法or属性:code?: number;
旧版本信息:|类名:CommonEventData;
方法or属性:code?: number;
新版本信息:?number|commonEventData.d.ts| +|type有变化|类名:CommonEventData;
方法or属性:data?: string;
旧版本信息:|类名:CommonEventData;
方法or属性:data?: string;
新版本信息:?string|commonEventData.d.ts| +|type有变化|类名:CommonEventData;
方法or属性:parameters?: { [key: string]: any };
旧版本信息:|类名:CommonEventData;
方法or属性:parameters?: { [key: string]: any };
新版本信息:?object|commonEventData.d.ts| +|type有变化|类名:CommonEventPublishData;
方法or属性:bundleName?: string;
旧版本信息:|类名:CommonEventPublishData;
方法or属性:bundleName?: string;
新版本信息:?string|commonEventPublishData.d.ts| +|type有变化|类名:CommonEventPublishData;
方法or属性:code?: number;
旧版本信息:|类名:CommonEventPublishData;
方法or属性:code?: number;
新版本信息:?number|commonEventPublishData.d.ts| +|type有变化|类名:CommonEventPublishData;
方法or属性:data?: string;
旧版本信息:|类名:CommonEventPublishData;
方法or属性:data?: string;
新版本信息:?string|commonEventPublishData.d.ts| +|type有变化|类名:CommonEventPublishData;
方法or属性:subscriberPermissions?: Array\;
旧版本信息:|类名:CommonEventPublishData;
方法or属性:subscriberPermissions?: Array\;
新版本信息:?Array\|commonEventPublishData.d.ts| +|type有变化|类名:CommonEventPublishData;
方法or属性:isOrdered?: boolean;
旧版本信息:|类名:CommonEventPublishData;
方法or属性:isOrdered?: boolean;
新版本信息:?boolean|commonEventPublishData.d.ts| +|type有变化|类名:CommonEventPublishData;
方法or属性:isSticky?: boolean;
旧版本信息:|类名:CommonEventPublishData;
方法or属性:isSticky?: boolean;
新版本信息:?boolean|commonEventPublishData.d.ts| +|type有变化|类名:CommonEventPublishData;
方法or属性:parameters?: { [key: string]: any };
旧版本信息:|类名:CommonEventPublishData;
方法or属性:parameters?: { [key: string]: any };
新版本信息:?object|commonEventPublishData.d.ts| +|type有变化|类名:CommonEventSubscribeInfo;
方法or属性:events: Array\;
旧版本信息:|类名:CommonEventSubscribeInfo;
方法or属性:events: Array\;
新版本信息:Array\|commonEventSubscribeInfo.d.ts| +|type有变化|类名:CommonEventSubscribeInfo;
方法or属性:publisherPermission?: string;
旧版本信息:|类名:CommonEventSubscribeInfo;
方法or属性:publisherPermission?: string;
新版本信息:?string|commonEventSubscribeInfo.d.ts| +|type有变化|类名:CommonEventSubscribeInfo;
方法or属性:publisherDeviceId?: string;
旧版本信息:|类名:CommonEventSubscribeInfo;
方法or属性:publisherDeviceId?: string;
新版本信息:?string|commonEventSubscribeInfo.d.ts| +|type有变化|类名:CommonEventSubscribeInfo;
方法or属性:userId?: number;
旧版本信息:|类名:CommonEventSubscribeInfo;
方法or属性:userId?: number;
新版本信息:?number|commonEventSubscribeInfo.d.ts| +|type有变化|类名:CommonEventSubscribeInfo;
方法or属性:priority?: number;
旧版本信息:|类名:CommonEventSubscribeInfo;
方法or属性:priority?: number;
新版本信息:?number|commonEventSubscribeInfo.d.ts| +|type有变化|类名:NotificationActionButton;
方法or属性:title: string;
旧版本信息:|类名:NotificationActionButton;
方法or属性:title: string;
新版本信息:string|notificationActionButton.d.ts| +|type有变化|类名:NotificationActionButton;
方法or属性:wantAgent: WantAgent;
旧版本信息:|类名:NotificationActionButton;
方法or属性:wantAgent: WantAgent;
新版本信息:WantAgent|notificationActionButton.d.ts| +|type有变化|类名:NotificationActionButton;
方法or属性:extras?: { [key: string]: any };
旧版本信息:|类名:NotificationActionButton;
方法or属性:extras?: { [key: string]: any };
新版本信息:?object|notificationActionButton.d.ts| +|type有变化|类名:NotificationActionButton;
方法or属性:userInput?: NotificationUserInput;
旧版本信息:|类名:NotificationActionButton;
方法or属性:userInput?: NotificationUserInput;
新版本信息:?NotificationUserInput|notificationActionButton.d.ts| +|type有变化|类名:BundleOption;
方法or属性:bundle: string;
旧版本信息:|类名:BundleOption;
方法or属性:bundle: string;
新版本信息:string|NotificationCommonDef.d.ts| +|type有变化|类名:BundleOption;
方法or属性:uid?: number;
旧版本信息:|类名:BundleOption;
方法or属性:uid?: number;
新版本信息:?number|NotificationCommonDef.d.ts| +|type有变化|类名:NotificationBasicContent;
方法or属性:title: string;
旧版本信息:|类名:NotificationBasicContent;
方法or属性:title: string;
新版本信息:string|notificationContent.d.ts| +|type有变化|类名:NotificationBasicContent;
方法or属性:text: string;
旧版本信息:|类名:NotificationBasicContent;
方法or属性:text: string;
新版本信息:string|notificationContent.d.ts| +|type有变化|类名:NotificationBasicContent;
方法or属性:additionalText?: string;
旧版本信息:|类名:NotificationBasicContent;
方法or属性:additionalText?: string;
新版本信息:?string|notificationContent.d.ts| +|type有变化|类名:NotificationLongTextContent;
方法or属性:longText: string;
旧版本信息:|类名:NotificationLongTextContent;
方法or属性:longText: string;
新版本信息:string|notificationContent.d.ts| +|type有变化|类名:NotificationLongTextContent;
方法or属性:briefText: string;
旧版本信息:|类名:NotificationLongTextContent;
方法or属性:briefText: string;
新版本信息:string|notificationContent.d.ts| +|type有变化|类名:NotificationMultiLineContent;
方法or属性:briefText: string;
旧版本信息:|类名:NotificationMultiLineContent;
方法or属性:briefText: string;
新版本信息:string|notificationContent.d.ts| +|type有变化|类名:NotificationPictureContent;
方法or属性:briefText: string;
旧版本信息:|类名:NotificationPictureContent;
方法or属性:briefText: string;
新版本信息:string|notificationContent.d.ts| +|type有变化|类名:NotificationLongTextContent;
方法or属性:expandedTitle: string;
旧版本信息:|类名:NotificationLongTextContent;
方法or属性:expandedTitle: string;
新版本信息:string|notificationContent.d.ts| +|type有变化|类名:NotificationPictureContent;
方法or属性:expandedTitle: string;
旧版本信息:|类名:NotificationPictureContent;
方法or属性:expandedTitle: string;
新版本信息:string|notificationContent.d.ts| +|type有变化|类名:NotificationMultiLineContent;
方法or属性:longTitle: string;
旧版本信息:|类名:NotificationMultiLineContent;
方法or属性:longTitle: string;
新版本信息:string|notificationContent.d.ts| +|type有变化|类名:NotificationMultiLineContent;
方法or属性:lines: Array\;
旧版本信息:|类名:NotificationMultiLineContent;
方法or属性:lines: Array\;
新版本信息:Array\|notificationContent.d.ts| +|type有变化|类名:NotificationPictureContent;
方法or属性:picture: image.PixelMap;
旧版本信息:|类名:NotificationPictureContent;
方法or属性:picture: image.PixelMap;
新版本信息:image.PixelMap|notificationContent.d.ts| +|type有变化|类名:NotificationContent;
方法or属性:contentType: notification.ContentType;
旧版本信息:|类名:NotificationContent;
方法or属性:contentType: notification.ContentType;
新版本信息:notification.ContentType|notificationContent.d.ts| +|type有变化|类名:NotificationContent;
方法or属性:normal?: NotificationBasicContent;
旧版本信息:|类名:NotificationContent;
方法or属性:normal?: NotificationBasicContent;
新版本信息:?NotificationBasicContent|notificationContent.d.ts| +|type有变化|类名:NotificationContent;
方法or属性:longText?: NotificationLongTextContent;
旧版本信息:|类名:NotificationContent;
方法or属性:longText?: NotificationLongTextContent;
新版本信息:?NotificationLongTextContent|notificationContent.d.ts| +|type有变化|类名:NotificationContent;
方法or属性:multiLine?: NotificationMultiLineContent;
旧版本信息:|类名:NotificationContent;
方法or属性:multiLine?: NotificationMultiLineContent;
新版本信息:?NotificationMultiLineContent|notificationContent.d.ts| +|type有变化|类名:NotificationContent;
方法or属性:picture?: NotificationPictureContent;
旧版本信息:|类名:NotificationContent;
方法or属性:picture?: NotificationPictureContent;
新版本信息:?NotificationPictureContent|notificationContent.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:content: NotificationContent;
旧版本信息:|类名:NotificationRequest;
方法or属性:content: NotificationContent;
新版本信息:NotificationContent|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:id?: number;
旧版本信息:|类名:NotificationRequest;
方法or属性:id?: number;
新版本信息:?number|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:slotType?: notification.SlotType;
旧版本信息:|类名:NotificationRequest;
方法or属性:slotType?: notification.SlotType;
新版本信息:?notification.SlotType|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:isOngoing?: boolean;
旧版本信息:|类名:NotificationRequest;
方法or属性:isOngoing?: boolean;
新版本信息:?boolean|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:isUnremovable?: boolean;
旧版本信息:|类名:NotificationRequest;
方法or属性:isUnremovable?: boolean;
新版本信息:?boolean|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:deliveryTime?: number;
旧版本信息:|类名:NotificationRequest;
方法or属性:deliveryTime?: number;
新版本信息:?number|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:tapDismissed?: boolean;
旧版本信息:|类名:NotificationRequest;
方法or属性:tapDismissed?: boolean;
新版本信息:?boolean|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:autoDeletedTime?: number;
旧版本信息:|类名:NotificationRequest;
方法or属性:autoDeletedTime?: number;
新版本信息:?number|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:wantAgent?: WantAgent;
旧版本信息:|类名:NotificationRequest;
方法or属性:wantAgent?: WantAgent;
新版本信息:?WantAgent|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:extraInfo?: { [key: string]: any };
旧版本信息:|类名:NotificationRequest;
方法or属性:extraInfo?: { [key: string]: any };
新版本信息:?object|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:color?: number;
旧版本信息:|类名:NotificationRequest;
方法or属性:color?: number;
新版本信息:?number|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:colorEnabled?: boolean;
旧版本信息:|类名:NotificationRequest;
方法or属性:colorEnabled?: boolean;
新版本信息:?boolean|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:isAlertOnce?: boolean;
旧版本信息:|类名:NotificationRequest;
方法or属性:isAlertOnce?: boolean;
新版本信息:?boolean|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:isStopwatch?: boolean;
旧版本信息:|类名:NotificationRequest;
方法or属性:isStopwatch?: boolean;
新版本信息:?boolean|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:isCountDown?: boolean;
旧版本信息:|类名:NotificationRequest;
方法or属性:isCountDown?: boolean;
新版本信息:?boolean|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:isFloatingIcon?: boolean;
旧版本信息:|类名:NotificationRequest;
方法or属性:isFloatingIcon?: boolean;
新版本信息:?boolean|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:label?: string;
旧版本信息:|类名:NotificationRequest;
方法or属性:label?: string;
新版本信息:?string|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:badgeIconStyle?: number;
旧版本信息:|类名:NotificationRequest;
方法or属性:badgeIconStyle?: number;
新版本信息:?number|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:showDeliveryTime?: boolean;
旧版本信息:|类名:NotificationRequest;
方法or属性:showDeliveryTime?: boolean;
新版本信息:?boolean|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:actionButtons?: Array\;
旧版本信息:|类名:NotificationRequest;
方法or属性:actionButtons?: Array\;
新版本信息:?Array\|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:smallIcon?: image.PixelMap;
旧版本信息:|类名:NotificationRequest;
方法or属性:smallIcon?: image.PixelMap;
新版本信息:?image.PixelMap|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:largeIcon?: image.PixelMap;
旧版本信息:|类名:NotificationRequest;
方法or属性:largeIcon?: image.PixelMap;
新版本信息:?image.PixelMap|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:groupName?: string;
旧版本信息:|类名:NotificationRequest;
方法or属性:groupName?: string;
新版本信息:?string|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:readonly creatorBundleName?: string;
旧版本信息:|类名:NotificationRequest;
方法or属性:readonly creatorBundleName?: string;
新版本信息:?string|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:readonly creatorUid?: number;
旧版本信息:|类名:NotificationRequest;
方法or属性:readonly creatorUid?: number;
新版本信息:?number|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:readonly creatorPid?: number;
旧版本信息:|类名:NotificationRequest;
方法or属性:readonly creatorPid?: number;
新版本信息:?number|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:readonly creatorUserId?: number;
旧版本信息:|类名:NotificationRequest;
方法or属性:readonly creatorUserId?: number;
新版本信息:?number|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:classification?: string;
旧版本信息:|类名:NotificationRequest;
方法or属性:classification?: string;
新版本信息:?string|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:readonly hashCode?: string;
旧版本信息:|类名:NotificationRequest;
方法or属性:readonly hashCode?: string;
新版本信息:?string|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:isRemoveAllowed?: boolean;
旧版本信息:|类名:NotificationRequest;
方法or属性:isRemoveAllowed?: boolean;
新版本信息:?boolean|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:readonly source?: number;
旧版本信息:|类名:NotificationRequest;
方法or属性:readonly source?: number;
新版本信息:?number|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:template?: NotificationTemplate;
旧版本信息:|类名:NotificationRequest;
方法or属性:template?: NotificationTemplate;
新版本信息:?NotificationTemplate|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:distributedOption?: DistributedOptions;
旧版本信息:|类名:NotificationRequest;
方法or属性:distributedOption?: DistributedOptions;
新版本信息:?DistributedOptions|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:readonly deviceId?: string;
旧版本信息:|类名:NotificationRequest;
方法or属性:readonly deviceId?: string;
新版本信息:?string|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:readonly notificationFlags?: NotificationFlags;
旧版本信息:|类名:NotificationRequest;
方法or属性:readonly notificationFlags?: NotificationFlags;
新版本信息:?NotificationFlags|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:removalWantAgent?: WantAgent;
旧版本信息:|类名:NotificationRequest;
方法or属性:removalWantAgent?: WantAgent;
新版本信息:?WantAgent|notificationRequest.d.ts| +|type有变化|类名:NotificationRequest;
方法or属性:badgeNumber?: number;
旧版本信息:|类名:NotificationRequest;
方法or属性:badgeNumber?: number;
新版本信息:?number|notificationRequest.d.ts| +|type有变化|类名:DistributedOptions;
方法or属性:isDistributed?: boolean;
旧版本信息:|类名:DistributedOptions;
方法or属性:isDistributed?: boolean;
新版本信息:?boolean|notificationRequest.d.ts| +|type有变化|类名:DistributedOptions;
方法or属性:supportDisplayDevices?: Array\;
旧版本信息:|类名:DistributedOptions;
方法or属性:supportDisplayDevices?: Array\;
新版本信息:?Array\|notificationRequest.d.ts| +|type有变化|类名:DistributedOptions;
方法or属性:supportOperateDevices?: Array\;
旧版本信息:|类名:DistributedOptions;
方法or属性:supportOperateDevices?: Array\;
新版本信息:?Array\|notificationRequest.d.ts| +|type有变化|类名:DistributedOptions;
方法or属性:readonly remindType?: number;
旧版本信息:|类名:DistributedOptions;
方法or属性:readonly remindType?: number;
新版本信息:?number|notificationRequest.d.ts| +|type有变化|类名:NotificationSlot;
方法or属性:type: notification.SlotType;
旧版本信息:|类名:NotificationSlot;
方法or属性:type: notification.SlotType;
新版本信息:notification.SlotType|notificationSlot.d.ts| +|type有变化|类名:NotificationSlot;
方法or属性:level?: notification.SlotLevel;
旧版本信息:|类名:NotificationSlot;
方法or属性:level?: notification.SlotLevel;
新版本信息:?notification.SlotLevel|notificationSlot.d.ts| +|type有变化|类名:NotificationSlot;
方法or属性:desc?: string;
旧版本信息:|类名:NotificationSlot;
方法or属性:desc?: string;
新版本信息:?string|notificationSlot.d.ts| +|type有变化|类名:NotificationSlot;
方法or属性:badgeFlag?: boolean;
旧版本信息:|类名:NotificationSlot;
方法or属性:badgeFlag?: boolean;
新版本信息:?boolean|notificationSlot.d.ts| +|type有变化|类名:NotificationSlot;
方法or属性:bypassDnd?: boolean;
旧版本信息:|类名:NotificationSlot;
方法or属性:bypassDnd?: boolean;
新版本信息:?boolean|notificationSlot.d.ts| +|type有变化|类名:NotificationSlot;
方法or属性:lockscreenVisibility?: number;
旧版本信息:|类名:NotificationSlot;
方法or属性:lockscreenVisibility?: number;
新版本信息:?number|notificationSlot.d.ts| +|type有变化|类名:NotificationSlot;
方法or属性:vibrationEnabled?: boolean;
旧版本信息:|类名:NotificationSlot;
方法or属性:vibrationEnabled?: boolean;
新版本信息:?boolean|notificationSlot.d.ts| +|type有变化|类名:NotificationSlot;
方法or属性:sound?: string;
旧版本信息:|类名:NotificationSlot;
方法or属性:sound?: string;
新版本信息:?string|notificationSlot.d.ts| +|type有变化|类名:NotificationSlot;
方法or属性:lightEnabled?: boolean;
旧版本信息:|类名:NotificationSlot;
方法or属性:lightEnabled?: boolean;
新版本信息:?boolean|notificationSlot.d.ts| +|type有变化|类名:NotificationSlot;
方法or属性:lightColor?: number;
旧版本信息:|类名:NotificationSlot;
方法or属性:lightColor?: number;
新版本信息:?number|notificationSlot.d.ts| +|type有变化|类名:NotificationSlot;
方法or属性:vibrationValues?: Array\;
旧版本信息:|类名:NotificationSlot;
方法or属性:vibrationValues?: Array\;
新版本信息:?Array\|notificationSlot.d.ts| +|type有变化|类名:NotificationSlot;
方法or属性:readonly enabled?: boolean;
旧版本信息:|类名:NotificationSlot;
方法or属性:readonly enabled?: boolean;
新版本信息:?boolean|notificationSlot.d.ts| +|type有变化|类名:NotificationSorting;
方法or属性:readonly slot: NotificationSlot;
旧版本信息:|类名:NotificationSorting;
方法or属性:readonly slot: NotificationSlot;
新版本信息:NotificationSlot|notificationSorting.d.ts| +|type有变化|类名:NotificationSorting;
方法or属性:readonly hashCode: string;
旧版本信息:|类名:NotificationSorting;
方法or属性:readonly hashCode: string;
新版本信息:string|notificationSorting.d.ts| +|type有变化|类名:NotificationSorting;
方法or属性:readonly ranking: number;
旧版本信息:|类名:NotificationSorting;
方法or属性:readonly ranking: number;
新版本信息:number|notificationSorting.d.ts| +|type有变化|类名:NotificationSortingMap;
方法or属性:readonly sortings: { [key: string]: NotificationSorting };
旧版本信息:|类名:NotificationSortingMap;
方法or属性:readonly sortings: { [key: string]: NotificationSorting };
新版本信息:object|notificationSortingMap.d.ts| +|type有变化|类名:NotificationSortingMap;
方法or属性:readonly sortedHashCode: Array\;
旧版本信息:|类名:NotificationSortingMap;
方法or属性:readonly sortedHashCode: Array\;
新版本信息:Array\|notificationSortingMap.d.ts| +|type有变化|类名:NotificationSubscribeInfo;
方法or属性:bundleNames?: Array\;
旧版本信息:|类名:NotificationSubscribeInfo;
方法or属性:bundleNames?: Array\;
新版本信息:?Array\|notificationSubscribeInfo.d.ts| +|type有变化|类名:NotificationSubscribeInfo;
方法or属性:userId?: number;
旧版本信息:|类名:NotificationSubscribeInfo;
方法or属性:userId?: number;
新版本信息:?number|notificationSubscribeInfo.d.ts| +|type有变化|类名:SubscribeCallbackData;
方法or属性:readonly request: NotificationRequest;
旧版本信息:|类名:SubscribeCallbackData;
方法or属性:readonly request: NotificationRequest;
新版本信息:NotificationRequest|notificationSubscriber.d.ts| +|type有变化|类名:SubscribeCallbackData;
方法or属性:readonly sortingMap?: NotificationSortingMap;
旧版本信息:|类名:SubscribeCallbackData;
方法or属性:readonly sortingMap?: NotificationSortingMap;
新版本信息:?NotificationSortingMap|notificationSubscriber.d.ts| +|type有变化|类名:SubscribeCallbackData;
方法or属性:readonly reason?: number;
旧版本信息:|类名:SubscribeCallbackData;
方法or属性:readonly reason?: number;
新版本信息:?number|notificationSubscriber.d.ts| +|type有变化|类名:SubscribeCallbackData;
方法or属性:readonly sound?: string;
旧版本信息:|类名:SubscribeCallbackData;
方法or属性:readonly sound?: string;
新版本信息:?string|notificationSubscriber.d.ts| +|type有变化|类名:SubscribeCallbackData;
方法or属性:readonly vibrationValues?: Array\;
旧版本信息:|类名:SubscribeCallbackData;
方法or属性:readonly vibrationValues?: Array\;
新版本信息:?Array\|notificationSubscriber.d.ts| +|type有变化|类名:EnabledNotificationCallbackData;
方法or属性:readonly bundle: string;
旧版本信息:|类名:EnabledNotificationCallbackData;
方法or属性:readonly bundle: string;
新版本信息:string|notificationSubscriber.d.ts| +|type有变化|类名:BadgeNumberCallbackData;
方法or属性:readonly bundle: string;
旧版本信息:|类名:BadgeNumberCallbackData;
方法or属性:readonly bundle: string;
新版本信息:string|notificationSubscriber.d.ts| +|type有变化|类名:EnabledNotificationCallbackData;
方法or属性:readonly uid: number;
旧版本信息:|类名:EnabledNotificationCallbackData;
方法or属性:readonly uid: number;
新版本信息:number|notificationSubscriber.d.ts| +|type有变化|类名:BadgeNumberCallbackData;
方法or属性:readonly uid: number;
旧版本信息:|类名:BadgeNumberCallbackData;
方法or属性:readonly uid: number;
新版本信息:number|notificationSubscriber.d.ts| +|type有变化|类名:EnabledNotificationCallbackData;
方法or属性:readonly enable: boolean;
旧版本信息:|类名:EnabledNotificationCallbackData;
方法or属性:readonly enable: boolean;
新版本信息:boolean|notificationSubscriber.d.ts| +|type有变化|类名:BadgeNumberCallbackData;
方法or属性:readonly badgeNumber: number;
旧版本信息:|类名:BadgeNumberCallbackData;
方法or属性:readonly badgeNumber: number;
新版本信息:number|notificationSubscriber.d.ts| +|type有变化|类名:NotificationTemplate;
方法or属性:name: string;
旧版本信息:|类名:NotificationTemplate;
方法or属性:name: string;
新版本信息:string|notificationTemplate.d.ts| +|type有变化|类名:NotificationTemplate;
方法or属性:data: { [key: string]: Object };
旧版本信息:|类名:NotificationTemplate;
方法or属性:data: { [key: string]: Object };
新版本信息:object|notificationTemplate.d.ts| +|type有变化|类名:NotificationUserInput;
方法or属性:inputKey: string;
旧版本信息:|类名:NotificationUserInput;
方法or属性:inputKey: string;
新版本信息:string|notificationUserInput.d.ts| +|函数有变化|类名:NotificationRequest;
方法or属性:readonly isRemoveAllowed?: boolean;|类名:NotificationRequest;
方法or属性:isRemoveAllowed?: boolean;|notificationRequest.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-resource-scheduler.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-resource-scheduler.md new file mode 100644 index 0000000000..bef2fec33c --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-resource-scheduler.md @@ -0,0 +1,9 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:ResourceType;
方法or属性:RUNNING_LOCK = 1 \<\< 7|@ohos.resourceschedule.backgroundTaskManager.d.ts| +|新增|NA|类名:ResourceType;
方法or属性:SENSOR = 1 \<\< 8|@ohos.resourceschedule.backgroundTaskManager.d.ts| +|废弃版本有变化|类名:particleAbility;
方法or属性:function startBackgroundRunning(id: number, request: NotificationRequest): Promise\;
旧版本信息:|类名:particleAbility;
方法or属性:function startBackgroundRunning(id: number, request: NotificationRequest): Promise\;
新版本信息:9
代替接口: ohos.resourceschedule.backgroundTaskManager/backgroundTaskManager#startBackgroundRunning|@ohos.ability.particleAbility.d.ts| +|废弃版本有变化|类名:particleAbility;
方法or属性:function cancelBackgroundRunning(): Promise\;
旧版本信息:|类名:particleAbility;
方法or属性:function cancelBackgroundRunning(): Promise\;
新版本信息:9
代替接口: ohos.resourceschedule.backgroundTaskManager/backgroundTaskManager#stopBackgroundRunning|@ohos.ability.particleAbility.d.ts| +|权限有变化|类名:particleAbility;
方法or属性:function startBackgroundRunning(id: number, request: NotificationRequest): Promise\;
旧版本信息:|类名:particleAbility;
方法or属性:function startBackgroundRunning(id: number, request: NotificationRequest): Promise\;
新版本信息:ohos.permission.KEEP_BACKGROUND_RUNNING|@ohos.ability.particleAbility.d.ts| +|model有变化|类名:particleAbility;
方法or属性:function startBackgroundRunning(id: number, request: NotificationRequest): Promise\;
旧版本信息:|类名:particleAbility;
方法or属性:function startBackgroundRunning(id: number, request: NotificationRequest): Promise\;
新版本信息:FAModelOnly|@ohos.ability.particleAbility.d.ts| +|model有变化|类名:particleAbility;
方法or属性:function cancelBackgroundRunning(): Promise\;
旧版本信息:|类名:particleAbility;
方法or属性:function cancelBackgroundRunning(): Promise\;
新版本信息:FAModelOnly|@ohos.ability.particleAbility.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-security.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-security.md new file mode 100644 index 0000000000..1e9f692bc2 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-security.md @@ -0,0 +1,131 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:AsyKeyGeneratorBySpec;
方法or属性:generateKeyPair(callback: AsyncCallback\): void;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeyGeneratorBySpec;
方法or属性:generateKeyPair(): Promise\;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:cert;
方法or属性:function createCertExtension(inStream: EncodingBlob, callback: AsyncCallback\): void;|@ohos.security.cert.d.ts| +|新增|NA|类名:cert;
方法or属性:function createCertExtension(inStream: EncodingBlob): Promise\;|@ohos.security.cert.d.ts| +|新增|NA|类名:CertItemType;
方法or属性:CERT_ITEM_TYPE_TBS = 0|@ohos.security.cert.d.ts| +|新增|NA|类名:CertItemType;
方法or属性:CERT_ITEM_TYPE_PUBLIC_KEY = 1|@ohos.security.cert.d.ts| +|新增|NA|类名:CertItemType;
方法or属性:CERT_ITEM_TYPE_ISSUER_UNIQUE_ID = 2|@ohos.security.cert.d.ts| +|新增|NA|类名:CertItemType;
方法or属性:CERT_ITEM_TYPE_SUBJECT_UNIQUE_ID = 3|@ohos.security.cert.d.ts| +|新增|NA|类名:CertItemType;
方法or属性:CERT_ITEM_TYPE_EXTENSIONS = 4|@ohos.security.cert.d.ts| +|新增|NA|类名:ExtensionOidType;
方法or属性:EXTENSION_OID_TYPE_ALL = 0|@ohos.security.cert.d.ts| +|新增|NA|类名:ExtensionOidType;
方法or属性:EXTENSION_OID_TYPE_CRITICAL = 1|@ohos.security.cert.d.ts| +|新增|NA|类名:ExtensionOidType;
方法or属性:EXTENSION_OID_TYPE_UNCRITICAL = 2|@ohos.security.cert.d.ts| +|新增|NA|类名:ExtensionEntryType;
方法or属性:EXTENSION_ENTRY_TYPE_ENTRY = 0|@ohos.security.cert.d.ts| +|新增|NA|类名:ExtensionEntryType;
方法or属性:EXTENSION_ENTRY_TYPE_ENTRY_CRITICAL = 1|@ohos.security.cert.d.ts| +|新增|NA|类名:ExtensionEntryType;
方法or属性:EXTENSION_ENTRY_TYPE_ENTRY_VALUE = 2|@ohos.security.cert.d.ts| +|新增|NA|类名:X509Cert;
方法or属性:getCertSerialNumber(): bigint;|@ohos.security.cert.d.ts| +|新增|NA|类名:X509Cert;
方法or属性:getItem(itemType: CertItemType): DataBlob;|@ohos.security.cert.d.ts| +|新增|NA|类名:CertExtension;
方法or属性:getEncoded(): EncodingBlob;|@ohos.security.cert.d.ts| +|新增|NA|类名:CertExtension;
方法or属性:getOidList(valueType: ExtensionOidType): DataArray;|@ohos.security.cert.d.ts| +|新增|NA|类名:CertExtension;
方法or属性:getEntry(valueType: ExtensionEntryType, oid: DataBlob): DataBlob;|@ohos.security.cert.d.ts| +|新增|NA|类名:CertExtension;
方法or属性:checkCA(): number;|@ohos.security.cert.d.ts| +|新增|NA|类名:cryptoFramework;
方法or属性:function createAsyKeyGeneratorBySpec(asyKeySpec: AsyKeySpec): AsyKeyGeneratorBySpec;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:PriKey;
方法or属性:getAsyKeySpec(itemType: AsyKeySpecItem): bigint \| string \| number;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:PubKey;
方法or属性:getAsyKeySpec(itemType: AsyKeySpecItem): bigint \| string \| number;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:Random;
方法or属性:generateRandomSync(len: number): DataBlob;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:Random;
方法or属性:readonly algName: string;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeyGeneratorBySpec;
方法or属性:readonly algName: string;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:CipherSpecItem;
方法or属性:OAEP_MD_NAME_STR = 100|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:CipherSpecItem;
方法or属性:OAEP_MGF_NAME_STR = 101|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:CipherSpecItem;
方法or属性:OAEP_MGF1_MD_STR = 102|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:CipherSpecItem;
方法or属性:OAEP_MGF1_PSRC_UINT8ARR = 103|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:SignSpecItem;
方法or属性:PSS_MD_NAME_STR = 100|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:SignSpecItem;
方法or属性:PSS_MGF_NAME_STR = 101|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:SignSpecItem;
方法or属性:PSS_MGF1_MD_STR = 102|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:SignSpecItem;
方法or属性:PSS_SALT_LEN_NUM = 103|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:SignSpecItem;
方法or属性:PSS_TRAILER_FIELD_NUM = 104|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:Cipher;
方法or属性:setCipherSpec(itemType: CipherSpecItem, itemValue: Uint8Array): void;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:Cipher;
方法or属性:getCipherSpec(itemType: CipherSpecItem): string \| Uint8Array;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:Sign;
方法or属性:setSignSpec(itemType: SignSpecItem, itemValue: number): void;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:Sign;
方法or属性:getSignSpec(itemType: SignSpecItem): string \| number;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:Verify;
方法or属性:setVerifySpec(itemType: SignSpecItem, itemValue: number): void;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:Verify;
方法or属性:getVerifySpec(itemType: SignSpecItem): string \| number;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:DSA_P_BN = 101|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:DSA_Q_BN = 102|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:DSA_G_BN = 103|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:DSA_SK_BN = 104|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:DSA_PK_BN = 105|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:ECC_FP_P_BN = 201|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:ECC_A_BN = 202|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:ECC_B_BN = 203|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:ECC_G_X_BN = 204|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:ECC_G_Y_BN = 205|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:ECC_N_BN = 206|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:ECC_H_NUM = 207|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:ECC_SK_BN = 208|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:ECC_PK_X_BN = 209|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:ECC_PK_Y_BN = 210|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:ECC_FIELD_TYPE_STR = 211|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:ECC_FIELD_SIZE_NUM = 212|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:ECC_CURVE_NAME_STR = 213|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:RSA_N_BN = 301|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:RSA_SK_BN = 302|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecItem;
方法or属性:RSA_PK_BN = 303|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecType;
方法or属性:COMMON_PARAMS_SPEC = 0|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecType;
方法or属性:PRIVATE_KEY_SPEC = 1|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecType;
方法or属性:PUBLIC_KEY_SPEC = 2|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpecType;
方法or属性:KEY_PAIR_SPEC = 3|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpec;
方法or属性:algName: string;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeySpec;
方法or属性:specType: AsyKeySpecType;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:DSACommonParamsSpec;
方法or属性:p: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:ECFieldFp;
方法or属性:p: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:DSACommonParamsSpec;
方法or属性:q: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:DSACommonParamsSpec;
方法or属性:g: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:DSAPubKeySpec;
方法or属性:params: DSACommonParamsSpec;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:DSAKeyPairSpec;
方法or属性:params: DSACommonParamsSpec;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:DSAPubKeySpec;
方法or属性:pk: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:DSAKeyPairSpec;
方法or属性:pk: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:RSAPubKeySpec;
方法or属性:pk: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:RSAKeyPairSpec;
方法or属性:pk: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:DSAKeyPairSpec;
方法or属性:sk: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:ECCPriKeySpec;
方法or属性:sk: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:ECCKeyPairSpec;
方法or属性:sk: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:RSAKeyPairSpec;
方法or属性:sk: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:ECField;
方法or属性:fieldType: string;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:Point;
方法or属性:x: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:Point;
方法or属性:y: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:ECCCommonParamsSpec;
方法or属性:field: ECField;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:ECCCommonParamsSpec;
方法or属性:a: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:ECCCommonParamsSpec;
方法or属性:b: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:ECCCommonParamsSpec;
方法or属性:g: Point;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:ECCCommonParamsSpec;
方法or属性:n: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:RSACommonParamsSpec;
方法or属性:n: bigint;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:ECCCommonParamsSpec;
方法or属性:h: number;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:ECCPriKeySpec;
方法or属性:params: ECCCommonParamsSpec;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:ECCPubKeySpec;
方法or属性:params: ECCCommonParamsSpec;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:ECCKeyPairSpec;
方法or属性:params: ECCCommonParamsSpec;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:ECCPubKeySpec;
方法or属性:pk: Point;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:ECCKeyPairSpec;
方法or属性:pk: Point;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:RSAPubKeySpec;
方法or属性:params: RSACommonParamsSpec;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:RSAKeyPairSpec;
方法or属性:params: RSACommonParamsSpec;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeyGeneratorBySpec;
方法or属性:generatePriKey(callback: AsyncCallback\): void;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeyGeneratorBySpec;
方法or属性:generatePriKey(): Promise\;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeyGeneratorBySpec;
方法or属性:generatePubKey(callback: AsyncCallback\): void;|@ohos.security.cryptoFramework.d.ts| +|新增|NA|类名:AsyKeyGeneratorBySpec;
方法or属性:generatePubKey(): Promise\;|@ohos.security.cryptoFramework.d.ts| +|废弃版本有变化|类名:X509Cert;
方法or属性:getSerialNumber(): number;
旧版本信息:|类名:X509Cert;
方法or属性:getSerialNumber(): number;
新版本信息:10
代替接口: ohos.security.cert.X509Cert.getCertSerialNumber|@ohos.security.cert.d.ts| +|新增(错误码)|类名:Key;
方法or属性:getEncoded(): DataBlob;
旧版本信息:|类名:Key;
方法or属性:getEncoded(): DataBlob;
新版本信息:801,17620001,17630001|@ohos.security.cryptoFramework.d.ts| +|错误码有变化|类名:cryptoFramework;
方法or属性:function createAsyKeyGenerator(algName: string): AsyKeyGenerator;
旧版本信息:401|类名:cryptoFramework;
方法or属性:function createAsyKeyGenerator(algName: string): AsyKeyGenerator;
新版本信息:401,801,17620001|@ohos.security.cryptoFramework.d.ts| +|错误码有变化|类名:cryptoFramework;
方法or属性:function createCipher(transformation: string): Cipher;
旧版本信息:401,801|类名:cryptoFramework;
方法or属性:function createCipher(transformation: string): Cipher;
新版本信息:401,801,17620001|@ohos.security.cryptoFramework.d.ts| +|错误码有变化|类名:cryptoFramework;
方法or属性:function createSign(algName: string): Sign;
旧版本信息:401|类名:cryptoFramework;
方法or属性:function createSign(algName: string): Sign;
新版本信息:401,801,17620001|@ohos.security.cryptoFramework.d.ts| +|错误码有变化|类名:cryptoFramework;
方法or属性:function createVerify(algName: string): Verify;
旧版本信息:401|类名:cryptoFramework;
方法or属性:function createVerify(algName: string): Verify;
新版本信息:401,801,17620001|@ohos.security.cryptoFramework.d.ts| +|错误码有变化|类名:cryptoFramework;
方法or属性:function createKeyAgreement(algName: string): KeyAgreement;
旧版本信息:401|类名:cryptoFramework;
方法or属性:function createKeyAgreement(algName: string): KeyAgreement;
新版本信息:401,801,17620001|@ohos.security.cryptoFramework.d.ts| +|错误码有变化|类名:AsyKeyGenerator;
方法or属性:generateKeyPair(callback: AsyncCallback\): void;
旧版本信息:401,17620001|类名:AsyKeyGenerator;
方法or属性:generateKeyPair(callback: AsyncCallback\): void;
新版本信息:401,17620001,17630001|@ohos.security.cryptoFramework.d.ts| +|错误码有变化|类名:AsyKeyGenerator;
方法or属性:generateKeyPair(): Promise\;
旧版本信息:401,17620001|类名:AsyKeyGenerator;
方法or属性:generateKeyPair(): Promise\;
新版本信息:401,17620001,17630001|@ohos.security.cryptoFramework.d.ts| +|错误码有变化|类名:AsyKeyGenerator;
方法or属性:convertKey(pubKey: DataBlob, priKey: DataBlob, callback: AsyncCallback\): void;
旧版本信息:401,17620001|类名:AsyKeyGenerator;
方法or属性:convertKey(pubKey: DataBlob, priKey: DataBlob, callback: AsyncCallback\): void;
新版本信息:401,17620001,17630001|@ohos.security.cryptoFramework.d.ts| +|错误码有变化|类名:AsyKeyGenerator;
方法or属性:convertKey(pubKey: DataBlob, priKey: DataBlob): Promise\;
旧版本信息:401,17620001|类名:AsyKeyGenerator;
方法or属性:convertKey(pubKey: DataBlob, priKey: DataBlob): Promise\;
新版本信息:401,17620001,17630001|@ohos.security.cryptoFramework.d.ts| +|type有变化|类名:PermissionUsedRequest;
方法or属性:tokenId?: number;
旧版本信息:number|类名:PermissionUsedRequest;
方法or属性:tokenId?: number;
新版本信息:?number|@ohos.privacyManager.d.ts| +|type有变化|类名:PermissionUsedRequest;
方法or属性:isRemote?: boolean;
旧版本信息:boolean|类名:PermissionUsedRequest;
方法or属性:isRemote?: boolean;
新版本信息:?boolean|@ohos.privacyManager.d.ts| +|type有变化|类名:PermissionUsedRequest;
方法or属性:deviceId?: string;
旧版本信息:string|类名:PermissionUsedRequest;
方法or属性:deviceId?: string;
新版本信息:?string|@ohos.privacyManager.d.ts| +|type有变化|类名:PermissionUsedRequest;
方法or属性:bundleName?: string;
旧版本信息:string|类名:PermissionUsedRequest;
方法or属性:bundleName?: string;
新版本信息:?string|@ohos.privacyManager.d.ts| +|type有变化|类名:PermissionUsedRequest;
方法or属性:permissionNames?: Array\;
旧版本信息:Array\|类名:PermissionUsedRequest;
方法or属性:permissionNames?: Array\;
新版本信息:?Array\|@ohos.privacyManager.d.ts| +|type有变化|类名:PermissionUsedRequest;
方法or属性:beginTime?: number;
旧版本信息:number|类名:PermissionUsedRequest;
方法or属性:beginTime?: number;
新版本信息:?number|@ohos.privacyManager.d.ts| +|type有变化|类名:PermissionUsedRequest;
方法or属性:endTime?: number;
旧版本信息:number|类名:PermissionUsedRequest;
方法or属性:endTime?: number;
新版本信息:?number|@ohos.privacyManager.d.ts| +|函数有变化|类名:PermissionUsedRequest;
方法or属性:tokenId: number;|类名:PermissionUsedRequest;
方法or属性:tokenId?: number;|@ohos.privacyManager.d.ts| +|函数有变化|类名:PermissionUsedRequest;
方法or属性:isRemote: boolean;|类名:PermissionUsedRequest;
方法or属性:isRemote?: boolean;|@ohos.privacyManager.d.ts| +|函数有变化|类名:PermissionUsedRequest;
方法or属性:deviceId: string;|类名:PermissionUsedRequest;
方法or属性:deviceId?: string;|@ohos.privacyManager.d.ts| +|函数有变化|类名:PermissionUsedRequest;
方法or属性:bundleName: string;|类名:PermissionUsedRequest;
方法or属性:bundleName?: string;|@ohos.privacyManager.d.ts| +|函数有变化|类名:PermissionUsedRequest;
方法or属性:permissionNames: Array\;|类名:PermissionUsedRequest;
方法or属性:permissionNames?: Array\;|@ohos.privacyManager.d.ts| +|函数有变化|类名:PermissionUsedRequest;
方法or属性:beginTime: number;|类名:PermissionUsedRequest;
方法or属性:beginTime?: number;|@ohos.privacyManager.d.ts| +|函数有变化|类名:PermissionUsedRequest;
方法or属性:endTime: number;|类名:PermissionUsedRequest;
方法or属性:endTime?: number;|@ohos.privacyManager.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-sensor.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-sensor.md new file mode 100644 index 0000000000..cb59e75c76 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-sensor.md @@ -0,0 +1,30 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:sensor;
方法or属性:function on(type: SensorId.COLOR, callback: Callback\, options?: Options): void;|@ohos.sensor.d.ts| +|新增|NA|类名:sensor;
方法or属性:function on(type: SensorId.SAR, callback: Callback\, options?: Options): void;|@ohos.sensor.d.ts| +|新增|NA|类名:sensor;
方法or属性:function off(type: SensorId.COLOR, callback?: Callback\): void;|@ohos.sensor.d.ts| +|新增|NA|类名:sensor;
方法or属性:function off(type: SensorId.SAR, callback?: Callback\): void;|@ohos.sensor.d.ts| +|新增|NA|类名:SensorId;
方法or属性:COLOR = 14|@ohos.sensor.d.ts| +|新增|NA|类名:SensorId;
方法or属性:SAR = 15|@ohos.sensor.d.ts| +|新增|NA|类名:ColorResponse;
方法or属性:lightIntensity: number;|@ohos.sensor.d.ts| +|新增|NA|类名:ColorResponse;
方法or属性:colorTemperature: number;|@ohos.sensor.d.ts| +|新增|NA|类名:SarResponse;
方法or属性:absorptionRatio: number;|@ohos.sensor.d.ts| +|新增|NA|类名:VibrateFromFile;
方法or属性:type: 'file';|@ohos.vibrator.d.ts| +|新增|NA|类名:VibrateFromFile;
方法or属性:hapticFd: HapticFileDescriptor;|@ohos.vibrator.d.ts| +|新增|NA|类名:HapticFileDescriptor;
方法or属性:fd: number;|@ohos.vibrator.d.ts| +|新增|NA|类名:HapticFileDescriptor;
方法or属性:offset?: number;|@ohos.vibrator.d.ts| +|新增|NA|类名:HapticFileDescriptor;
方法or属性:length?: number;|@ohos.vibrator.d.ts| +|废弃版本有变化|类名:vibrator;
方法or属性:function vibrate(duration: number): Promise\;
旧版本信息:|类名:vibrator;
方法or属性:function vibrate(duration: number): Promise\;
新版本信息:9
代替接口: vibrator#startVibration|@ohos.vibrator.d.ts| +|废弃版本有变化|类名:vibrator;
方法or属性:function vibrate(effectId: EffectId, callback?: AsyncCallback\): void;
旧版本信息:|类名:vibrator;
方法or属性:function vibrate(effectId: EffectId, callback?: AsyncCallback\): void;
新版本信息:9
代替接口: vibrator#startVibration|@ohos.vibrator.d.ts| +|废弃版本有变化|类名:vibrator;
方法or属性:function stop(stopMode: VibratorStopMode, callback?: AsyncCallback\): void;
旧版本信息:|类名:vibrator;
方法or属性:function stop(stopMode: VibratorStopMode, callback?: AsyncCallback\): void;
新版本信息:9
代替接口: vibrator#stopVibration|@ohos.vibrator.d.ts| +|错误码有变化|类名:vibrator;
方法or属性:function startVibration(effect: VibrateEffect, attribute: VibrateAttribute, callback: AsyncCallback\): void;
旧版本信息:201,401,14600101|类名:vibrator;
方法or属性:function startVibration(effect: VibrateEffect, attribute: VibrateAttribute, callback: AsyncCallback\): void;
新版本信息:201,401,801,14600101|@ohos.vibrator.d.ts| +|错误码有变化|类名:vibrator;
方法or属性:function startVibration(effect: VibrateEffect, attribute: VibrateAttribute): Promise\;
旧版本信息:201,401,14600101|类名:vibrator;
方法or属性:function startVibration(effect: VibrateEffect, attribute: VibrateAttribute): Promise\;
新版本信息:201,401,801,14600101|@ohos.vibrator.d.ts| +|权限有变化|类名:vibrator;
方法or属性:function vibrate(duration: number): Promise\;
旧版本信息:|类名:vibrator;
方法or属性:function vibrate(duration: number): Promise\;
新版本信息:ohos.permission.VIBRATE|@ohos.vibrator.d.ts| +|权限有变化|类名:vibrator;
方法or属性:function vibrate(effectId: EffectId, callback?: AsyncCallback\): void;
旧版本信息:|类名:vibrator;
方法or属性:function vibrate(effectId: EffectId, callback?: AsyncCallback\): void;
新版本信息:ohos.permission.VIBRATE|@ohos.vibrator.d.ts| +|权限有变化|类名:vibrator;
方法or属性:function stop(stopMode: VibratorStopMode, callback?: AsyncCallback\): void;
旧版本信息:|类名:vibrator;
方法or属性:function stop(stopMode: VibratorStopMode, callback?: AsyncCallback\): void;
新版本信息:ohos.permission.VIBRATE|@ohos.vibrator.d.ts| +|权限有变化|类名:VibrateOptions;
方法or属性:mode?: 'long' \| 'short';
旧版本信息:|类名:VibrateOptions;
方法or属性:mode?: 'long' \| 'short';
新版本信息:ohos.permission.VIBRATE|@system.vibrator.d.ts| +|权限有变化|类名:VibrateOptions;
方法or属性:success: () => void;
旧版本信息:|类名:VibrateOptions;
方法or属性:success: () => void;
新版本信息:ohos.permission.VIBRATE|@system.vibrator.d.ts| +|权限有变化|类名:VibrateOptions;
方法or属性:fail?: (data: string, code: number) => void;
旧版本信息:|类名:VibrateOptions;
方法or属性:fail?: (data: string, code: number) => void;
新版本信息:ohos.permission.VIBRATE|@system.vibrator.d.ts| +|权限有变化|类名:VibrateOptions;
方法or属性:complete?: () => void;
旧版本信息:|类名:VibrateOptions;
方法or属性:complete?: () => void;
新版本信息:ohos.permission.VIBRATE|@system.vibrator.d.ts| +|type有变化|类名:vibrator;
方法or属性:type VibrateEffect = VibrateTime \| VibratePreset \| VibrateFromFile;
旧版本信息:|类名:vibrator;
方法or属性:type VibrateEffect = VibrateTime \| VibratePreset \| VibrateFromFile;
新版本信息:VibrateTime \| VibratePreset \| VibrateFromFile|@ohos.vibrator.d.ts| +|函数有变化|类名:vibrator;
方法or属性:type VibrateEffect = VibrateTime \| VibratePreset;|类名:vibrator;
方法or属性:type VibrateEffect = VibrateTime \| VibratePreset \| VibrateFromFile;|@ohos.vibrator.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-start-up.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-start-up.md new file mode 100644 index 0000000000..8e2a85d0c6 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-start-up.md @@ -0,0 +1,34 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|废弃版本有变化|类名:systemParameter;
方法or属性:function getSync(key: string, def?: string): string;
旧版本信息:|类名:systemParameter;
方法or属性:function getSync(key: string, def?: string): string;
新版本信息:9
代替接口:|@ohos.systemparameter.d.ts| +|废弃版本有变化|类名:systemParameter;
方法or属性:function get(key: string, callback: AsyncCallback\): void;
旧版本信息:|类名:systemParameter;
方法or属性:function get(key: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口:|@ohos.systemparameter.d.ts| +|废弃版本有变化|类名:systemParameter;
方法or属性:function get(key: string, def: string, callback: AsyncCallback\): void;
旧版本信息:|类名:systemParameter;
方法or属性:function get(key: string, def: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口:|@ohos.systemparameter.d.ts| +|废弃版本有变化|类名:systemParameter;
方法or属性:function get(key: string, def?: string): Promise\;
旧版本信息:|类名:systemParameter;
方法or属性:function get(key: string, def?: string): Promise\;
新版本信息:9
代替接口:|@ohos.systemparameter.d.ts| +|废弃版本有变化|类名:systemParameter;
方法or属性:function set(key: string, value: string, callback: AsyncCallback\): void;
旧版本信息:|类名:systemParameter;
方法or属性:function set(key: string, value: string, callback: AsyncCallback\): void;
新版本信息:9
代替接口:|@ohos.systemparameter.d.ts| +|废弃版本有变化|类名:systemParameter;
方法or属性:function set(key: string, value: string): Promise\;
旧版本信息:|类名:systemParameter;
方法or属性:function set(key: string, value: string): Promise\;
新版本信息:9
代替接口:|@ohos.systemparameter.d.ts| +|访问级别有变化|类名:systemParameter;
方法or属性:function getSync(key: string, def?: string): string;
旧版本信息:|类名:systemParameter;
方法or属性:function getSync(key: string, def?: string): string;
新版本信息:systemapi|@ohos.systemparameter.d.ts| +|访问级别有变化|类名:systemParameter;
方法or属性:function get(key: string, callback: AsyncCallback\): void;
旧版本信息:|类名:systemParameter;
方法or属性:function get(key: string, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.systemparameter.d.ts| +|访问级别有变化|类名:systemParameter;
方法or属性:function get(key: string, def: string, callback: AsyncCallback\): void;
旧版本信息:|类名:systemParameter;
方法or属性:function get(key: string, def: string, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.systemparameter.d.ts| +|访问级别有变化|类名:systemParameter;
方法or属性:function get(key: string, def?: string): Promise\;
旧版本信息:|类名:systemParameter;
方法or属性:function get(key: string, def?: string): Promise\;
新版本信息:systemapi|@ohos.systemparameter.d.ts| +|访问级别有变化|类名:systemParameter;
方法or属性:function setSync(key: string, value: string): void;
旧版本信息:|类名:systemParameter;
方法or属性:function setSync(key: string, value: string): void;
新版本信息:systemapi|@ohos.systemparameter.d.ts| +|访问级别有变化|类名:systemParameter;
方法or属性:function set(key: string, value: string, callback: AsyncCallback\): void;
旧版本信息:|类名:systemParameter;
方法or属性:function set(key: string, value: string, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.systemparameter.d.ts| +|访问级别有变化|类名:systemParameter;
方法or属性:function set(key: string, value: string): Promise\;
旧版本信息:|类名:systemParameter;
方法or属性:function set(key: string, value: string): Promise\;
新版本信息:systemapi|@ohos.systemparameter.d.ts| +|访问级别有变化|类名:systemParameterEnhance;
方法or属性:function getSync(key: string, def?: string): string;
旧版本信息:|类名:systemParameterEnhance;
方法or属性:function getSync(key: string, def?: string): string;
新版本信息:systemapi|@ohos.systemParameterEnhance.d.ts| +|访问级别有变化|类名:systemParameterEnhance;
方法or属性:function get(key: string, callback: AsyncCallback\): void;
旧版本信息:|类名:systemParameterEnhance;
方法or属性:function get(key: string, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.systemParameterEnhance.d.ts| +|访问级别有变化|类名:systemParameterEnhance;
方法or属性:function get(key: string, def: string, callback: AsyncCallback\): void;
旧版本信息:|类名:systemParameterEnhance;
方法or属性:function get(key: string, def: string, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.systemParameterEnhance.d.ts| +|访问级别有变化|类名:systemParameterEnhance;
方法or属性:function get(key: string, def?: string): Promise\;
旧版本信息:|类名:systemParameterEnhance;
方法or属性:function get(key: string, def?: string): Promise\;
新版本信息:systemapi|@ohos.systemParameterEnhance.d.ts| +|访问级别有变化|类名:systemParameterEnhance;
方法or属性:function setSync(key: string, value: string): void;
旧版本信息:|类名:systemParameterEnhance;
方法or属性:function setSync(key: string, value: string): void;
新版本信息:systemapi|@ohos.systemParameterEnhance.d.ts| +|访问级别有变化|类名:systemParameterEnhance;
方法or属性:function set(key: string, value: string, callback: AsyncCallback\): void;
旧版本信息:|类名:systemParameterEnhance;
方法or属性:function set(key: string, value: string, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.systemParameterEnhance.d.ts| +|访问级别有变化|类名:systemParameterEnhance;
方法or属性:function set(key: string, value: string): Promise\;
旧版本信息:|类名:systemParameterEnhance;
方法or属性:function set(key: string, value: string): Promise\;
新版本信息:systemapi|@ohos.systemParameterEnhance.d.ts| +|type有变化|类名:DeviceResponse;
方法or属性:brand: string;
旧版本信息:|类名:DeviceResponse;
方法or属性:brand: string;
新版本信息:string|@system.device.d.ts| +|type有变化|类名:DeviceResponse;
方法or属性:manufacturer: string;
旧版本信息:|类名:DeviceResponse;
方法or属性:manufacturer: string;
新版本信息:string|@system.device.d.ts| +|type有变化|类名:DeviceResponse;
方法or属性:model: string;
旧版本信息:|类名:DeviceResponse;
方法or属性:model: string;
新版本信息:string|@system.device.d.ts| +|type有变化|类名:DeviceResponse;
方法or属性:product: string;
旧版本信息:|类名:DeviceResponse;
方法or属性:product: string;
新版本信息:string|@system.device.d.ts| +|type有变化|类名:DeviceResponse;
方法or属性:language: string;
旧版本信息:|类名:DeviceResponse;
方法or属性:language: string;
新版本信息:string|@system.device.d.ts| +|type有变化|类名:DeviceResponse;
方法or属性:region: string;
旧版本信息:|类名:DeviceResponse;
方法or属性:region: string;
新版本信息:string|@system.device.d.ts| +|type有变化|类名:DeviceResponse;
方法or属性:windowWidth: number;
旧版本信息:|类名:DeviceResponse;
方法or属性:windowWidth: number;
新版本信息:number|@system.device.d.ts| +|type有变化|类名:DeviceResponse;
方法or属性:windowHeight: number;
旧版本信息:|类名:DeviceResponse;
方法or属性:windowHeight: number;
新版本信息:number|@system.device.d.ts| +|type有变化|类名:DeviceResponse;
方法or属性:screenDensity: number;
旧版本信息:|类名:DeviceResponse;
方法or属性:screenDensity: number;
新版本信息:number|@system.device.d.ts| +|type有变化|类名:DeviceResponse;
方法or属性:screenShape: 'rect' \| 'circle';
旧版本信息:|类名:DeviceResponse;
方法or属性:screenShape: 'rect' \| 'circle';
新版本信息:'rect' \| 'circle'|@system.device.d.ts| +|type有变化|类名:DeviceResponse;
方法or属性:apiVersion: number;
旧版本信息:|类名:DeviceResponse;
方法or属性:apiVersion: number;
新版本信息:number|@system.device.d.ts| +|type有变化|类名:DeviceResponse;
方法or属性:deviceType: string;
旧版本信息:|类名:DeviceResponse;
方法or属性:deviceType: string;
新版本信息:string|@system.device.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-telephony.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-telephony.md new file mode 100644 index 0000000000..b01ab5e1a6 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-telephony.md @@ -0,0 +1,1254 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|删除|类名:AudioDevice;
方法or属性:DEVICE_EARPIECE|NA|@ohos.telephony.call.d.ts| +|删除|类名:AudioDevice;
方法or属性:DEVICE_SPEAKER|NA|@ohos.telephony.call.d.ts| +|删除|类名:AudioDevice;
方法or属性:DEVICE_WIRED_HEADSET|NA|@ohos.telephony.call.d.ts| +|删除|类名:AudioDevice;
方法or属性:DEVICE_BLUETOOTH_SCO|NA|@ohos.telephony.call.d.ts| +|删除|类名:AudioDevice;
方法or属性:DEVICE_MIC|NA|@ohos.telephony.call.d.ts| +|删除|类名:AudioDeviceOptions;
方法or属性:bluetoothAddress?: string;|NA|@ohos.telephony.call.d.ts| +|新增|NA|类名:NROptionMode;
方法or属性:NR_OPTION_UNKNOWN|@ohos.telephony.radio.d.ts| +|新增|NA|类名:NROptionMode;
方法or属性:NR_OPTION_NSA_ONLY|@ohos.telephony.radio.d.ts| +|新增|NA|类名:NROptionMode;
方法or属性:NR_OPTION_SA_ONLY|@ohos.telephony.radio.d.ts| +|新增|NA|类名:NROptionMode;
方法or属性:NR_OPTION_NSA_AND_SA|@ohos.telephony.radio.d.ts| +|新增|NA|类名:call;
方法or属性:function setCallRestrictionPassword(slotId: number, oldPassword: string, newPassword: string, callback: AsyncCallback\): void;|@ohos.telephony.call.d.ts| +|新增|NA|类名:call;
方法or属性:function setCallRestrictionPassword(slotId: number, oldPassword: string, newPassword: string): Promise\;|@ohos.telephony.call.d.ts| +|新增|NA|类名:call;
方法or属性:function kickOutFromConference(callId: number, callback: AsyncCallback\): void;|@ohos.telephony.call.d.ts| +|新增|NA|类名:call;
方法or属性:function kickOutFromConference(callId: number): Promise\;|@ohos.telephony.call.d.ts| +|新增|NA|类名:call;
方法or属性:function removeMissedIncomingCallNotification(callback: AsyncCallback\): void;|@ohos.telephony.call.d.ts| +|新增|NA|类名:call;
方法or属性:function removeMissedIncomingCallNotification(): Promise\;|@ohos.telephony.call.d.ts| +|新增|NA|类名:VoNRState;
方法or属性:VONR_STATE_OFF = 0|@ohos.telephony.call.d.ts| +|新增|NA|类名:AudioDevice;
方法or属性:deviceType: AudioDeviceType;|@ohos.telephony.call.d.ts| +|新增|NA|类名:AudioDevice;
方法or属性:address?: string;|@ohos.telephony.call.d.ts| +|新增|NA|类名:data;
方法or属性:function getDefaultCellularDataSimId(): number;|@ohos.telephony.data.d.ts| +|新增|NA|类名:observer;
方法or属性:function on(type: 'iccAccountInfoChange', callback: Callback\): void;|@ohos.telephony.observer.d.ts| +|新增|NA|类名:observer;
方法or属性:function off(type: 'iccAccountInfoChange', callback?: Callback\): void;|@ohos.telephony.observer.d.ts| +|新增|NA|类名:radio;
方法or属性:function setNROptionMode(slotId: number, mode: NROptionMode, callback: AsyncCallback\): void;|@ohos.telephony.radio.d.ts| +|新增|NA|类名:radio;
方法or属性:function setNROptionMode(slotId: number, mode: NROptionMode): Promise\;|@ohos.telephony.radio.d.ts| +|新增|NA|类名:radio;
方法or属性:function getNROptionMode(slotId: number, callback: AsyncCallback\): void;|@ohos.telephony.radio.d.ts| +|新增|NA|类名:radio;
方法or属性:function getNROptionMode(slotId: number): Promise\;|@ohos.telephony.radio.d.ts| +|新增|NA|类名:radio;
方法or属性:function setNetworkCapability(slotId: number, type: NetworkCapabilityType, state: NetworkCapabilityState,
callback: AsyncCallback\): void;|@ohos.telephony.radio.d.ts| +|新增|NA|类名:radio;
方法or属性:function setNetworkCapability(slotId: number, type: NetworkCapabilityType, state: NetworkCapabilityState): Promise\;|@ohos.telephony.radio.d.ts| +|新增|NA|类名:radio;
方法or属性:function getNetworkCapability(slotId: number, type: NetworkCapabilityType,
callback: AsyncCallback\): void;|@ohos.telephony.radio.d.ts| +|新增|NA|类名:radio;
方法or属性:function getNetworkCapability(slotId: number, type: NetworkCapabilityType): Promise\;|@ohos.telephony.radio.d.ts| +|新增|NA|类名:NetworkCapabilityType;
方法or属性:SERVICE_TYPE_LTE|@ohos.telephony.radio.d.ts| +|新增|NA|类名:NetworkCapabilityType;
方法or属性:SERVICE_TYPE_NR|@ohos.telephony.radio.d.ts| +|新增|NA|类名:NetworkCapabilityState;
方法or属性:SERVICE_CAPABILITY_OFF|@ohos.telephony.radio.d.ts| +|新增|NA|类名:NetworkCapabilityState;
方法or属性:SERVICE_CAPABILITY_ON|@ohos.telephony.radio.d.ts| +|新增|NA|类名:sim;
方法or属性:function getDefaultVoiceSimId(callback: AsyncCallback\): void;|@ohos.telephony.sim.d.ts| +|新增|NA|类名:sim;
方法or属性:function getDefaultVoiceSimId(): Promise\;|@ohos.telephony.sim.d.ts| +|新增|NA|类名:sms;
方法or属性:function sendShortMessage(options: SendMessageOptions, callback: AsyncCallback\): void;|@ohos.telephony.sms.d.ts| +|新增|NA|类名:sms;
方法or属性:function sendShortMessage(options: SendMessageOptions): Promise\;|@ohos.telephony.sms.d.ts| +|新增|NA|类名:sms;
方法or属性:function getDefaultSmsSimId(callback: AsyncCallback\): void;|@ohos.telephony.sms.d.ts| +|新增|NA|类名:sms;
方法or属性:function getDefaultSmsSimId(): Promise\;|@ohos.telephony.sms.d.ts| +|废弃版本有变化|类名:call;
方法or属性:function dial(phoneNumber: string, options: DialOptions, callback: AsyncCallback\): void;
旧版本信息:|类名:call;
方法or属性:function dial(phoneNumber: string, options: DialOptions, callback: AsyncCallback\): void;
新版本信息:9
代替接口: telephony.call#dialCall|@ohos.telephony.call.d.ts| +|废弃版本有变化|类名:call;
方法or属性:function dial(phoneNumber: string, options?: DialOptions): Promise\;
旧版本信息:|类名:call;
方法or属性:function dial(phoneNumber: string, options?: DialOptions): Promise\;
新版本信息:9
代替接口: telephony.call#dialCall|@ohos.telephony.call.d.ts| +|废弃版本有变化|类名:radio;
方法or属性:function getNrOptionMode(callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function getNrOptionMode(callback: AsyncCallback\): void;
新版本信息:10
代替接口: telephony.radio#getNROptionMode|@ohos.telephony.radio.d.ts| +|废弃版本有变化|类名:radio;
方法or属性:function getNrOptionMode(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function getNrOptionMode(slotId: number, callback: AsyncCallback\): void;
新版本信息:10
代替接口: telephony.radio#getNROptionMode|@ohos.telephony.radio.d.ts| +|废弃版本有变化|类名:radio;
方法or属性:function getNrOptionMode(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getNrOptionMode(slotId?: number): Promise\;
新版本信息:10
代替接口: telephony.radio#getNROptionMode|@ohos.telephony.radio.d.ts| +|废弃版本有变化|类名:NrOptionMode;
方法or属性:export enum NrOptionMode
旧版本信息:|类名:NrOptionMode;
方法or属性:export enum NrOptionMode
新版本信息:10
代替接口: telephony.radio#NROptionMode|@ohos.telephony.radio.d.ts| +|废弃版本有变化|类名:NrOptionMode;
方法or属性:NR_OPTION_UNKNOWN
旧版本信息:|类名:NrOptionMode;
方法or属性:NR_OPTION_UNKNOWN
新版本信息:10
代替接口: telephony.radio#NROptionMode|@ohos.telephony.radio.d.ts| +|废弃版本有变化|类名:NrOptionMode;
方法or属性:NR_OPTION_NSA_ONLY
旧版本信息:|类名:NrOptionMode;
方法or属性:NR_OPTION_NSA_ONLY
新版本信息:10
代替接口: telephony.radio#NROptionMode|@ohos.telephony.radio.d.ts| +|废弃版本有变化|类名:NrOptionMode;
方法or属性:NR_OPTION_SA_ONLY
旧版本信息:|类名:NrOptionMode;
方法or属性:NR_OPTION_SA_ONLY
新版本信息:10
代替接口: telephony.radio#NROptionMode|@ohos.telephony.radio.d.ts| +|废弃版本有变化|类名:NrOptionMode;
方法or属性:NR_OPTION_NSA_AND_SA
旧版本信息:|类名:NrOptionMode;
方法or属性:NR_OPTION_NSA_AND_SA
新版本信息:10
代替接口: telephony.radio#NROptionMode|@ohos.telephony.radio.d.ts| +|废弃版本有变化|类名:sms;
方法or属性:function sendMessage(options: SendMessageOptions): void;
旧版本信息:|类名:sms;
方法or属性:function sendMessage(options: SendMessageOptions): void;
新版本信息:10
代替接口: telephony.sms#sendShortMessage|@ohos.telephony.sms.d.ts| +|新增(错误码)|类名:call;
方法or属性:function muteRinger(): Promise\;
旧版本信息:|类名:call;
方法or属性:function muteRinger(): Promise\;
新版本信息:201,202,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function isEmergencyPhoneNumber(phoneNumber: string, options: EmergencyNumberOptions, callback: AsyncCallback\): void;
旧版本信息:|类名:call;
方法or属性:function isEmergencyPhoneNumber(phoneNumber: string, options: EmergencyNumberOptions, callback: AsyncCallback\): void;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function isEmergencyPhoneNumber(phoneNumber: string, options?: EmergencyNumberOptions): Promise\;
旧版本信息:|类名:call;
方法or属性:function isEmergencyPhoneNumber(phoneNumber: string, options?: EmergencyNumberOptions): Promise\;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function formatPhoneNumber(phoneNumber: string, options: NumberFormatOptions, callback: AsyncCallback\): void;
旧版本信息:|类名:call;
方法or属性:function formatPhoneNumber(phoneNumber: string, options: NumberFormatOptions, callback: AsyncCallback\): void;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function formatPhoneNumber(phoneNumber: string, options?: NumberFormatOptions): Promise\;
旧版本信息:|类名:call;
方法or属性:function formatPhoneNumber(phoneNumber: string, options?: NumberFormatOptions): Promise\;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function formatPhoneNumberToE164(phoneNumber: string, countryCode: string): Promise\;
旧版本信息:|类名:call;
方法or属性:function formatPhoneNumberToE164(phoneNumber: string, countryCode: string): Promise\;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function holdCall(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function holdCall(callId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function unHoldCall(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function unHoldCall(callId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function switchCall(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function switchCall(callId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function combineConference(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function combineConference(callId: number): Promise\;
新版本信息:202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function getMainCallId(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function getMainCallId(callId: number): Promise\;
新版本信息:202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function getSubCallIdList(callId: number): Promise\>;
旧版本信息:|类名:call;
方法or属性:function getSubCallIdList(callId: number): Promise\>;
新版本信息:202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function getCallIdListForConference(callId: number): Promise\>;
旧版本信息:|类名:call;
方法or属性:function getCallIdListForConference(callId: number): Promise\>;
新版本信息:202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function getCallWaitingStatus(slotId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function getCallWaitingStatus(slotId: number): Promise\;
新版本信息:201,202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function setCallWaiting(slotId: number, activate: boolean): Promise\;
旧版本信息:|类名:call;
方法or属性:function setCallWaiting(slotId: number, activate: boolean): Promise\;
新版本信息:201,202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function startDTMF(callId: number, character: string): Promise\;
旧版本信息:|类名:call;
方法or属性:function startDTMF(callId: number, character: string): Promise\;
新版本信息:202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function stopDTMF(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function stopDTMF(callId: number): Promise\;
新版本信息:202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function isInEmergencyCall(): Promise\;
旧版本信息:|类名:call;
方法or属性:function isInEmergencyCall(): Promise\;
新版本信息:201,202,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function isNewCallAllowed(): Promise\;
旧版本信息:|类名:call;
方法or属性:function isNewCallAllowed(): Promise\;
新版本信息:202,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function separateConference(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function separateConference(callId: number): Promise\;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function getCallRestrictionStatus(slotId: number, type: CallRestrictionType): Promise\;
旧版本信息:|类名:call;
方法or属性:function getCallRestrictionStatus(slotId: number, type: CallRestrictionType): Promise\;
新版本信息:201,202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function setCallRestriction(slotId: number, info: CallRestrictionInfo): Promise\;
旧版本信息:|类名:call;
方法or属性:function setCallRestriction(slotId: number, info: CallRestrictionInfo): Promise\;
新版本信息:201,202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function getCallTransferInfo(slotId: number, type: CallTransferType): Promise\;
旧版本信息:|类名:call;
方法or属性:function getCallTransferInfo(slotId: number, type: CallTransferType): Promise\;
新版本信息:201,202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function setCallTransfer(slotId: number, info: CallTransferInfo): Promise\;
旧版本信息:|类名:call;
方法or属性:function setCallTransfer(slotId: number, info: CallTransferInfo): Promise\;
新版本信息:201,202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function isRinging(): Promise\;
旧版本信息:|类名:call;
方法or属性:function isRinging(): Promise\;
新版本信息:201,202,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function setMuted(): Promise\;
旧版本信息:|类名:call;
方法or属性:function setMuted(): Promise\;
新版本信息:202,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function cancelMuted(): Promise\;
旧版本信息:|类名:call;
方法or属性:function cancelMuted(): Promise\;
新版本信息:202,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function joinConference(mainCallId: number, callNumberList: Array\): Promise\;
旧版本信息:|类名:call;
方法or属性:function joinConference(mainCallId: number, callNumberList: Array\): Promise\;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function updateImsCallMode(callId: number, mode: ImsCallMode): Promise\;
旧版本信息:|类名:call;
方法or属性:function updateImsCallMode(callId: number, mode: ImsCallMode): Promise\;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function enableImsSwitch(slotId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function enableImsSwitch(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function disableImsSwitch(slotId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function disableImsSwitch(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:call;
方法or属性:function isImsSwitchEnabled(slotId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function isImsSwitchEnabled(slotId: number): Promise\;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|新增(错误码)|类名:data;
方法or属性:function setDefaultCellularDataSlotId(slotId: number): Promise\;
旧版本信息:|类名:data;
方法or属性:function setDefaultCellularDataSlotId(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301001|@ohos.telephony.data.d.ts| +|新增(错误码)|类名:data;
方法or属性:function isCellularDataEnabled(): Promise\;
旧版本信息:|类名:data;
方法or属性:function isCellularDataEnabled(): Promise\;
新版本信息:201,8300002,8300003,8300999|@ohos.telephony.data.d.ts| +|新增(错误码)|类名:data;
方法or属性:function enableCellularData(): Promise\;
旧版本信息:|类名:data;
方法or属性:function enableCellularData(): Promise\;
新版本信息:201,202,8300002,8300003,8300999|@ohos.telephony.data.d.ts| +|新增(错误码)|类名:data;
方法or属性:function disableCellularData(): Promise\;
旧版本信息:|类名:data;
方法or属性:function disableCellularData(): Promise\;
新版本信息:201,202,8300002,8300003,8300999|@ohos.telephony.data.d.ts| +|新增(错误码)|类名:data;
方法or属性:function isCellularDataRoamingEnabled(slotId: number): Promise\;
旧版本信息:|类名:data;
方法or属性:function isCellularDataRoamingEnabled(slotId: number): Promise\;
新版本信息:201,401,8300001,8300002,8300003,8300999|@ohos.telephony.data.d.ts| +|新增(错误码)|类名:data;
方法or属性:function enableCellularDataRoaming(slotId: number): Promise\;
旧版本信息:|类名:data;
方法or属性:function enableCellularDataRoaming(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.data.d.ts| +|新增(错误码)|类名:data;
方法or属性:function disableCellularDataRoaming(slotId: number): Promise\;
旧版本信息:|类名:data;
方法or属性:function disableCellularDataRoaming(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.data.d.ts| +|新增(错误码)|类名:observer;
方法or属性:function on(type: 'networkStateChange', options: { slotId: number }, callback: Callback\): void;
旧版本信息:|类名:observer;
方法or属性:function on(type: 'networkStateChange', options: { slotId: number }, callback: Callback\): void;
新版本信息:201,401,8300001,8300002,8300003,8300999|@ohos.telephony.observer.d.ts| +|新增(错误码)|类名:observer;
方法or属性:function on(type: 'signalInfoChange', options: { slotId: number }, callback: Callback\>): void;
旧版本信息:|类名:observer;
方法or属性:function on(type: 'signalInfoChange', options: { slotId: number }, callback: Callback\>): void;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.observer.d.ts| +|新增(错误码)|类名:observer;
方法or属性:function on(type: 'cellInfoChange', options: { slotId: number }, callback: Callback\>): void;
旧版本信息:|类名:observer;
方法or属性:function on(type: 'cellInfoChange', options: { slotId: number }, callback: Callback\>): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.observer.d.ts| +|新增(错误码)|类名:observer;
方法or属性:function on(type: 'cellularDataConnectionStateChange', options: { slotId: number },
callback: Callback\<{ state: DataConnectState, network: RatType }>): void;
旧版本信息:|类名:observer;
方法or属性:function on(type: 'cellularDataConnectionStateChange', options: { slotId: number },
callback: Callback\<{ state: DataConnectState, network: RatType }>): void;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.observer.d.ts| +|新增(错误码)|类名:observer;
方法or属性:function on(type: 'cellularDataFlowChange', options: { slotId: number }, callback: Callback\): void;
旧版本信息:|类名:observer;
方法or属性:function on(type: 'cellularDataFlowChange', options: { slotId: number }, callback: Callback\): void;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.observer.d.ts| +|新增(错误码)|类名:observer;
方法or属性:function on(type: 'callStateChange', options: { slotId: number }, callback: Callback\<{ state: CallState, number: string }>): void;
旧版本信息:|类名:observer;
方法or属性:function on(type: 'callStateChange', options: { slotId: number }, callback: Callback\<{ state: CallState, number: string }>): void;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.observer.d.ts| +|新增(错误码)|类名:observer;
方法or属性:function on(type: 'simStateChange', options: { slotId: number }, callback: Callback\): void;
旧版本信息:|类名:observer;
方法or属性:function on(type: 'simStateChange', options: { slotId: number }, callback: Callback\): void;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.observer.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getRadioTech(slotId: number): Promise\<{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology}>;
旧版本信息:|类名:radio;
方法or属性:function getRadioTech(slotId: number): Promise\<{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology}>;
新版本信息:201,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getNetworkState(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function getNetworkState(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getNetworkState(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getNetworkState(slotId?: number): Promise\;
新版本信息:201,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function sendUpdateCellLocationRequest(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function sendUpdateCellLocationRequest(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getCellInformation(slotId: number, callback: AsyncCallback\>): void;
旧版本信息:|类名:radio;
方法or属性:function getCellInformation(slotId: number, callback: AsyncCallback\>): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getCellInformation(slotId?: number): Promise\>;
旧版本信息:|类名:radio;
方法or属性:function getCellInformation(slotId?: number): Promise\>;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getNetworkSelectionMode(slotId: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getNetworkSelectionMode(slotId: number): Promise\;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function setNetworkSelectionMode(options: NetworkSelectionModeOptions): Promise\;
旧版本信息:|类名:radio;
方法or属性:function setNetworkSelectionMode(options: NetworkSelectionModeOptions): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getNetworkSearchInformation(slotId: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getNetworkSearchInformation(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getISOCountryCodeForNetwork(slotId: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getISOCountryCodeForNetwork(slotId: number): Promise\;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getNrOptionMode(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function getNrOptionMode(slotId: number, callback: AsyncCallback\): void;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getNrOptionMode(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getNrOptionMode(slotId?: number): Promise\;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getIMEI(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function getIMEI(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getIMEI(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getIMEI(slotId?: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getMEID(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function getMEID(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getMEID(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getMEID(slotId?: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getUniqueDeviceId(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function getUniqueDeviceId(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getUniqueDeviceId(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getUniqueDeviceId(slotId?: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getPrimarySlotId(): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getPrimarySlotId(): Promise\;
新版本信息:8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function setPrimarySlotId(slotId: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function setPrimarySlotId(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getSignalInformation(slotId: number): Promise\>;
旧版本信息:|类名:radio;
方法or属性:function getSignalInformation(slotId: number): Promise\>;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function isRadioOn(slotId: number, callback: AsyncCallback\): void
旧版本信息:|类名:radio;
方法or属性:function isRadioOn(slotId: number, callback: AsyncCallback\): void
新版本信息:201,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function isRadioOn(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function isRadioOn(slotId?: number): Promise\;
新版本信息:201,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function turnOnRadio(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function turnOnRadio(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function turnOnRadio(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function turnOnRadio(slotId?: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function turnOffRadio(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function turnOffRadio(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function turnOffRadio(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function turnOffRadio(slotId?: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getOperatorName(slotId: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getOperatorName(slotId: number): Promise\;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function setPreferredNetwork(slotId: number, networkMode: PreferredNetworkMode): Promise\;
旧版本信息:|类名:radio;
方法or属性:function setPreferredNetwork(slotId: number, networkMode: PreferredNetworkMode): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getPreferredNetwork(slotId: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getPreferredNetwork(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:radio;
方法or属性:function getImsRegInfo(slotId: number, imsType: ImsServiceType): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getImsRegInfo(slotId: number, imsType: ImsServiceType): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function hasOperatorPrivileges(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function hasOperatorPrivileges(slotId: number): Promise\;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getISOCountryCodeForSim(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getISOCountryCodeForSim(slotId: number): Promise\;
新版本信息:401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getSimOperatorNumeric(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getSimOperatorNumeric(slotId: number): Promise\;
新版本信息:401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getSimSpn(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getSimSpn(slotId: number): Promise\;
新版本信息:401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getSimState(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getSimState(slotId: number): Promise\;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getCardType(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getCardType(slotId: number): Promise\;
新版本信息:401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getSimIccId(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getSimIccId(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getVoiceMailIdentifier(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getVoiceMailIdentifier(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getVoiceMailNumber(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getVoiceMailNumber(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function setVoiceMailInfo(slotId: number, mailName: string, mailNumber: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function setVoiceMailInfo(slotId: number, mailName: string, mailNumber: string): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getSimTelephoneNumber(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getSimTelephoneNumber(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getSimGid1(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getSimGid1(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getIMSI(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getIMSI(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function hasSimCard(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function hasSimCard(slotId: number): Promise\;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getSimAccountInfo(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getSimAccountInfo(slotId: number): Promise\;
新版本信息:401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getActiveSimAccountInfoList(): Promise\>;
旧版本信息:|类名:sim;
方法or属性:function getActiveSimAccountInfoList(): Promise\>;
新版本信息:8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function setDefaultVoiceSlotId(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function setDefaultVoiceSlotId(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301001|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function activateSim(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function activateSim(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function deactivateSim(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function deactivateSim(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function setShowName(slotId: number, name: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function setShowName(slotId: number, name: string): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getShowName(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getShowName(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function setShowNumber(slotId: number, number: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function setShowNumber(slotId: number, number: string): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getShowNumber(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getShowNumber(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getOperatorConfigs(slotId: number): Promise\>;
旧版本信息:|类名:sim;
方法or属性:function getOperatorConfigs(slotId: number): Promise\>;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function unlockPin(slotId: number, pin: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function unlockPin(slotId: number, pin: string): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function unlockPuk(slotId: number, newPin: string, puk: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function unlockPuk(slotId: number, newPin: string, puk: string): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function alterPin(slotId: number, newPin: string, oldPin: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function alterPin(slotId: number, newPin: string, oldPin: string): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function setLockState(slotId: number, options: LockInfo): Promise\;
旧版本信息:|类名:sim;
方法or属性:function setLockState(slotId: number, options: LockInfo): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function unlockPin2(slotId: number, pin2: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function unlockPin2(slotId: number, pin2: string): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function unlockPuk2(slotId: number, newPin2: string, puk2: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function unlockPuk2(slotId: number, newPin2: string, puk2: string): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function alterPin2(slotId: number, newPin2: string, oldPin2: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function alterPin2(slotId: number, newPin2: string, oldPin2: string): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function queryIccDiallingNumbers(slotId: number, type: ContactType): Promise\>;
旧版本信息:|类名:sim;
方法or属性:function queryIccDiallingNumbers(slotId: number, type: ContactType): Promise\>;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function addIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
旧版本信息:|类名:sim;
方法or属性:function addIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function delIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
旧版本信息:|类名:sim;
方法or属性:function delIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function updateIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
旧版本信息:|类名:sim;
方法or属性:function updateIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getLockState(slotId: number, lockType: LockType): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getLockState(slotId: number, lockType: LockType): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function sendEnvelopeCmd(slotId: number, cmd: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function sendEnvelopeCmd(slotId: number, cmd: string): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function sendTerminalResponseCmd(slotId: number, cmd: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function sendTerminalResponseCmd(slotId: number, cmd: string): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function unlockSimLock(slotId: number, lockInfo: PersoLockInfo): Promise\;
旧版本信息:|类名:sim;
方法or属性:function unlockSimLock(slotId: number, lockInfo: PersoLockInfo): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getOpKey(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getOpKey(slotId: number): Promise\;
新版本信息:401,801,8300001,8300002,8300003,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sim;
方法or属性:function getOpName(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getOpName(slotId: number): Promise\;
新版本信息:401,801,8300001,8300002,8300003,8300999|@ohos.telephony.sim.d.ts| +|新增(错误码)|类名:sms;
方法or属性:function splitMessage(content: string): Promise\>;
旧版本信息:|类名:sms;
方法or属性:function splitMessage(content: string): Promise\>;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|新增(错误码)|类名:sms;
方法or属性:function createMessage(pdu: Array\, specification: string): Promise\;
旧版本信息:|类名:sms;
方法or属性:function createMessage(pdu: Array\, specification: string): Promise\;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|新增(错误码)|类名:sms;
方法or属性:function setDefaultSmsSlotId(slotId: number): Promise\;
旧版本信息:|类名:sms;
方法or属性:function setDefaultSmsSlotId(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sms.d.ts| +|新增(错误码)|类名:sms;
方法or属性:function setSmscAddr(slotId: number, smscAddr: string): Promise\;
旧版本信息:|类名:sms;
方法or属性:function setSmscAddr(slotId: number, smscAddr: string): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|新增(错误码)|类名:sms;
方法or属性:function getSmscAddr(slotId: number): Promise\;
旧版本信息:|类名:sms;
方法or属性:function getSmscAddr(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|新增(错误码)|类名:sms;
方法or属性:function addSimMessage(options: SimMessageOptions): Promise\;
旧版本信息:|类名:sms;
方法or属性:function addSimMessage(options: SimMessageOptions): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|新增(错误码)|类名:sms;
方法or属性:function delSimMessage(slotId: number, msgIndex: number): Promise\;
旧版本信息:|类名:sms;
方法or属性:function delSimMessage(slotId: number, msgIndex: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|新增(错误码)|类名:sms;
方法or属性:function updateSimMessage(options: UpdateSimMessageOptions): Promise\;
旧版本信息:|类名:sms;
方法or属性:function updateSimMessage(options: UpdateSimMessageOptions): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|新增(错误码)|类名:sms;
方法or属性:function getAllSimMessages(slotId: number): Promise\>;
旧版本信息:|类名:sms;
方法or属性:function getAllSimMessages(slotId: number): Promise\>;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|新增(错误码)|类名:sms;
方法or属性:function setCBConfig(options: CBConfigOptions): Promise\;
旧版本信息:|类名:sms;
方法or属性:function setCBConfig(options: CBConfigOptions): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|新增(错误码)|类名:sms;
方法or属性:function getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean): Promise\;
旧版本信息:|类名:sms;
方法or属性:function getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean): Promise\;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|新增(错误码)|类名:sms;
方法or属性:function isImsSmsSupported(slotId: number): Promise\;
旧版本信息:|类名:sms;
方法or属性:function isImsSmsSupported(slotId: number): Promise\;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|新增(错误码)|类名:sms;
方法or属性:function getImsShortMessageFormat(): Promise\;
旧版本信息:|类名:sms;
方法or属性:function getImsShortMessageFormat(): Promise\;
新版本信息:202,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|新增(错误码)|类名:sms;
方法or属性:function decodeMms(mmsFilePathName: string \| Array\): Promise\;
旧版本信息:|类名:sms;
方法or属性:function decodeMms(mmsFilePathName: string \| Array\): Promise\;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|新增(错误码)|类名:sms;
方法or属性:function encodeMms(mms: MmsInformation): Promise\>;
旧版本信息:|类名:sms;
方法or属性:function encodeMms(mms: MmsInformation): Promise\>;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|错误码有变化|类名:call;
方法or属性:function dialCall(phoneNumber: string, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function dialCall(phoneNumber: string, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300005,8300006,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function dialCall(phoneNumber: string, options: DialCallOptions, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function dialCall(phoneNumber: string, options: DialCallOptions, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300005,8300006,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function dialCall(phoneNumber: string, options?: DialCallOptions): Promise\;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function dialCall(phoneNumber: string, options?: DialCallOptions): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300005,8300006,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function muteRinger(callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function muteRinger(callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function answerCall(callId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function answerCall(callId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function answerCall(callId?: number): Promise\;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function answerCall(callId?: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function answerCall(callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function answerCall(callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function hangUpCall(callId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function hangUpCall(callId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function hangUpCall(callId?: number): Promise\;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function hangUpCall(callId?: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function hangUpCall(callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function hangUpCall(callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function rejectCall(callId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function rejectCall(callId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function rejectCall(callId: number, options: RejectMessageOptions, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function rejectCall(callId: number, options: RejectMessageOptions, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function rejectCall(callId?: number, options?: RejectMessageOptions): Promise\;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function rejectCall(callId?: number, options?: RejectMessageOptions): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function rejectCall(callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function rejectCall(callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function rejectCall(options: RejectMessageOptions, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function rejectCall(options: RejectMessageOptions, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function holdCall(callId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function holdCall(callId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function unHoldCall(callId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function unHoldCall(callId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function switchCall(callId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function switchCall(callId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function combineConference(callId: number, callback: AsyncCallback\): void;
旧版本信息:401,801,8300001,8300002,8300003|类名:call;
方法or属性:function combineConference(callId: number, callback: AsyncCallback\): void;
新版本信息:202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function getMainCallId(callId: number, callback: AsyncCallback\): void;
旧版本信息:401,801,8300001,8300002,8300003|类名:call;
方法or属性:function getMainCallId(callId: number, callback: AsyncCallback\): void;
新版本信息:202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function getSubCallIdList(callId: number, callback: AsyncCallback\>): void;
旧版本信息:401,801,8300001,8300002,8300003|类名:call;
方法or属性:function getSubCallIdList(callId: number, callback: AsyncCallback\>): void;
新版本信息:202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function getCallIdListForConference(callId: number, callback: AsyncCallback\>): void;
旧版本信息:401,801,8300001,8300002,8300003|类名:call;
方法or属性:function getCallIdListForConference(callId: number, callback: AsyncCallback\>): void;
新版本信息:202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function getCallWaitingStatus(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,801,8300001,8300002,8300003|类名:call;
方法or属性:function getCallWaitingStatus(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function setCallWaiting(slotId: number, activate: boolean, callback: AsyncCallback\): void;
旧版本信息:201,401,801,8300001,8300002,8300003|类名:call;
方法or属性:function setCallWaiting(slotId: number, activate: boolean, callback: AsyncCallback\): void;
新版本信息:201,202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function startDTMF(callId: number, character: string, callback: AsyncCallback\): void;
旧版本信息:401,801,8300001,8300002,8300003|类名:call;
方法or属性:function startDTMF(callId: number, character: string, callback: AsyncCallback\): void;
新版本信息:202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function stopDTMF(callId: number, callback: AsyncCallback\): void;
旧版本信息:401,801,8300001,8300002,8300003|类名:call;
方法or属性:function stopDTMF(callId: number, callback: AsyncCallback\): void;
新版本信息:202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function isInEmergencyCall(callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function isInEmergencyCall(callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function on(type: 'callDetailsChange', callback: Callback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function on(type: 'callDetailsChange', callback: Callback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function on(type: 'callEventChange', callback: Callback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function on(type: 'callEventChange', callback: Callback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function on(type: 'callDisconnectedCause', callback: Callback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function on(type: 'callDisconnectedCause', callback: Callback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function on(type: 'mmiCodeResult', callback: Callback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function on(type: 'mmiCodeResult', callback: Callback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function off(type: 'callDetailsChange', callback?: Callback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function off(type: 'callDetailsChange', callback?: Callback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function off(type: 'callEventChange', callback?: Callback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function off(type: 'callEventChange', callback?: Callback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function off(type: 'callDisconnectedCause', callback?: Callback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function off(type: 'callDisconnectedCause', callback?: Callback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function off(type: 'mmiCodeResult', callback?: Callback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function off(type: 'mmiCodeResult', callback?: Callback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function isNewCallAllowed(callback: AsyncCallback\): void;
旧版本信息:401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function isNewCallAllowed(callback: AsyncCallback\): void;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function separateConference(callId: number, callback: AsyncCallback\): void;
旧版本信息:401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function separateConference(callId: number, callback: AsyncCallback\): void;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function getCallRestrictionStatus(slotId: number, type: CallRestrictionType, callback: AsyncCallback\): void;
旧版本信息:201,401,801,8300001,8300002,8300003|类名:call;
方法or属性:function getCallRestrictionStatus(slotId: number, type: CallRestrictionType, callback: AsyncCallback\): void;
新版本信息:201,202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function setCallRestriction(slotId: number, info: CallRestrictionInfo, callback: AsyncCallback\): void;
旧版本信息:201,401,801,8300001,8300002,8300003|类名:call;
方法or属性:function setCallRestriction(slotId: number, info: CallRestrictionInfo, callback: AsyncCallback\): void;
新版本信息:201,202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function getCallTransferInfo(slotId: number, type: CallTransferType, callback: AsyncCallback\): void;
旧版本信息:201,401,801,8300001,8300002,8300003|类名:call;
方法or属性:function getCallTransferInfo(slotId: number, type: CallTransferType, callback: AsyncCallback\): void;
新版本信息:201,202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function setCallTransfer(slotId: number, info: CallTransferInfo, callback: AsyncCallback\): void;
旧版本信息:201,401,801,8300001,8300002,8300003|类名:call;
方法or属性:function setCallTransfer(slotId: number, info: CallTransferInfo, callback: AsyncCallback\): void;
新版本信息:201,202,401,801,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function isRinging(callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function isRinging(callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function setMuted(callback: AsyncCallback\): void;
旧版本信息:401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function setMuted(callback: AsyncCallback\): void;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function cancelMuted(callback: AsyncCallback\): void;
旧版本信息:401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function cancelMuted(callback: AsyncCallback\): void;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function setAudioDevice(device: AudioDevice, callback: AsyncCallback\): void;
旧版本信息:401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function setAudioDevice(device: AudioDevice, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function joinConference(mainCallId: number, callNumberList: Array\, callback: AsyncCallback\): void;
旧版本信息:401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function joinConference(mainCallId: number, callNumberList: Array\, callback: AsyncCallback\): void;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function updateImsCallMode(callId: number, mode: ImsCallMode, callback: AsyncCallback\): void;
旧版本信息:401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function updateImsCallMode(callId: number, mode: ImsCallMode, callback: AsyncCallback\): void;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function enableImsSwitch(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function enableImsSwitch(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function disableImsSwitch(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function disableImsSwitch(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function isImsSwitchEnabled(slotId: number, callback: AsyncCallback\): void;
旧版本信息:401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function isImsSwitchEnabled(slotId: number, callback: AsyncCallback\): void;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function inputDialerSpecialCode(inputCode: string, callback: AsyncCallback\): void;
旧版本信息:201,202,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function inputDialerSpecialCode(inputCode: string, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|错误码有变化|类名:call;
方法or属性:function inputDialerSpecialCode(inputCode: string): Promise\;
旧版本信息:201,202,401,8300001,8300002,8300003,8300999|类名:call;
方法or属性:function inputDialerSpecialCode(inputCode: string): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003|@ohos.telephony.call.d.ts| +|错误码有变化|类名:data;
方法or属性:function setDefaultCellularDataSlotId(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301001|类名:data;
方法or属性:function setDefaultCellularDataSlotId(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301001|@ohos.telephony.data.d.ts| +|错误码有变化|类名:data;
方法or属性:function enableCellularData(callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:data;
方法or属性:function enableCellularData(callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.data.d.ts| +|错误码有变化|类名:data;
方法or属性:function disableCellularData(callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:data;
方法or属性:function disableCellularData(callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.data.d.ts| +|错误码有变化|类名:data;
方法or属性:function enableCellularDataRoaming(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:data;
方法or属性:function enableCellularDataRoaming(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.data.d.ts| +|错误码有变化|类名:data;
方法or属性:function disableCellularDataRoaming(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:data;
方法or属性:function disableCellularDataRoaming(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.data.d.ts| +|错误码有变化|类名:observer;
方法or属性:function on(type: 'cellInfoChange', callback: Callback\>): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:observer;
方法or属性:function on(type: 'cellInfoChange', callback: Callback\>): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.observer.d.ts| +|错误码有变化|类名:observer;
方法or属性:function off(type: 'cellInfoChange', callback?: Callback\>): void;
旧版本信息:401,8300001,8300002,8300003,8300999|类名:observer;
方法or属性:function off(type: 'cellInfoChange', callback?: Callback\>): void;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.observer.d.ts| +|错误码有变化|类名:radio;
方法or属性:function sendUpdateCellLocationRequest(callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function sendUpdateCellLocationRequest(callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function sendUpdateCellLocationRequest(slotId?: number): Promise\;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function sendUpdateCellLocationRequest(slotId?: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function getCellInformation(callback: AsyncCallback\>): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function getCellInformation(callback: AsyncCallback\>): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function setNetworkSelectionMode(options: NetworkSelectionModeOptions, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function setNetworkSelectionMode(options: NetworkSelectionModeOptions, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function getNetworkSearchInformation(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function getNetworkSearchInformation(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function getNrOptionMode(callback: AsyncCallback\): void;
旧版本信息:401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function getNrOptionMode(callback: AsyncCallback\): void;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function getIMEI(callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function getIMEI(callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function getMEID(callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function getMEID(callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function getUniqueDeviceId(callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function getUniqueDeviceId(callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function getPrimarySlotId(callback: AsyncCallback\): void;
旧版本信息:8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function getPrimarySlotId(callback: AsyncCallback\): void;
新版本信息:401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function setPrimarySlotId(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:radio;
方法or属性:function setPrimarySlotId(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function turnOnRadio(callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function turnOnRadio(callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function turnOffRadio(callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function turnOffRadio(callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function setPreferredNetwork(slotId: number, networkMode: PreferredNetworkMode, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function setPreferredNetwork(slotId: number, networkMode: PreferredNetworkMode, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function getPreferredNetwork(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function getPreferredNetwork(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function getImsRegInfo(slotId: number, imsType: ImsServiceType, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function getImsRegInfo(slotId: number, imsType: ImsServiceType, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function on(type: 'imsRegStateChange', slotId: number, imsType: ImsServiceType, callback: Callback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function on(type: 'imsRegStateChange', slotId: number, imsType: ImsServiceType, callback: Callback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function off(type: 'imsRegStateChange', slotId: number, imsType: ImsServiceType, callback?: Callback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function off(type: 'imsRegStateChange', slotId: number, imsType: ImsServiceType, callback?: Callback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function getBasebandVersion(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function getBasebandVersion(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:radio;
方法or属性:function getBasebandVersion(slotId: number): Promise\;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:radio;
方法or属性:function getBasebandVersion(slotId: number): Promise\;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.radio.d.ts| +|错误码有变化|类名:sim;
方法or属性:function getSimIccId(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:sim;
方法or属性:function getSimIccId(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function getVoiceMailIdentifier(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:sim;
方法or属性:function getVoiceMailIdentifier(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function getVoiceMailNumber(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:sim;
方法or属性:function getVoiceMailNumber(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function setVoiceMailInfo(slotId: number, mailName: string, mailNumber: string, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301002|类名:sim;
方法or属性:function setVoiceMailInfo(slotId: number, mailName: string, mailNumber: string, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function getSimTelephoneNumber(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:sim;
方法or属性:function getSimTelephoneNumber(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function getSimGid1(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:sim;
方法or属性:function getSimGid1(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function getIMSI(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:sim;
方法or属性:function getIMSI(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function getSimAccountInfo(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301002|类名:sim;
方法or属性:function getSimAccountInfo(slotId: number, callback: AsyncCallback\): void;
新版本信息:401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function getActiveSimAccountInfoList(callback: AsyncCallback\>): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:sim;
方法or属性:function getActiveSimAccountInfoList(callback: AsyncCallback\>): void;
新版本信息:401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function setDefaultVoiceSlotId(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301001|类名:sim;
方法or属性:function setDefaultVoiceSlotId(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301001|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function activateSim(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:sim;
方法or属性:function activateSim(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function deactivateSim(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:sim;
方法or属性:function deactivateSim(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function setShowName(slotId: number, name: string, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:sim;
方法or属性:function setShowName(slotId: number, name: string, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function getShowName(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:sim;
方法or属性:function getShowName(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function setShowNumber(slotId: number, number: string, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:sim;
方法or属性:function setShowNumber(slotId: number, number: string, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function getShowNumber(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:sim;
方法or属性:function getShowNumber(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function getOperatorConfigs(slotId: number, callback: AsyncCallback\>): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:sim;
方法or属性:function getOperatorConfigs(slotId: number, callback: AsyncCallback\>): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function unlockPin(slotId: number, pin: string, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301002|类名:sim;
方法or属性:function unlockPin(slotId: number, pin: string, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function unlockPuk(slotId: number, newPin: string, puk: string, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301002|类名:sim;
方法or属性:function unlockPuk(slotId: number, newPin: string, puk: string, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function alterPin(slotId: number, newPin: string, oldPin: string, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301002|类名:sim;
方法or属性:function alterPin(slotId: number, newPin: string, oldPin: string, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function setLockState(slotId: number, options: LockInfo, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301002|类名:sim;
方法or属性:function setLockState(slotId: number, options: LockInfo, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function unlockPin2(slotId: number, pin2: string, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301002|类名:sim;
方法or属性:function unlockPin2(slotId: number, pin2: string, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function unlockPuk2(slotId: number, newPin2: string, puk2: string, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301002|类名:sim;
方法or属性:function unlockPuk2(slotId: number, newPin2: string, puk2: string, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function alterPin2(slotId: number, newPin2: string, oldPin2: string, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301002|类名:sim;
方法or属性:function alterPin2(slotId: number, newPin2: string, oldPin2: string, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function queryIccDiallingNumbers(slotId: number, type: ContactType, callback: AsyncCallback\>): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301002|类名:sim;
方法or属性:function queryIccDiallingNumbers(slotId: number, type: ContactType, callback: AsyncCallback\>): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function addIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301002|类名:sim;
方法or属性:function addIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function delIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301002|类名:sim;
方法or属性:function delIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function updateIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301002|类名:sim;
方法or属性:function updateIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function getLockState(slotId: number, lockType: LockType, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301002|类名:sim;
方法or属性:function getLockState(slotId: number, lockType: LockType, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function sendEnvelopeCmd(slotId: number, cmd: string, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:sim;
方法or属性:function sendEnvelopeCmd(slotId: number, cmd: string, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function sendTerminalResponseCmd(slotId: number, cmd: string, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:sim;
方法or属性:function sendTerminalResponseCmd(slotId: number, cmd: string, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sim;
方法or属性:function unlockSimLock(slotId: number, lockInfo: PersoLockInfo, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999,8301002|类名:sim;
方法or属性:function unlockSimLock(slotId: number, lockInfo: PersoLockInfo, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999,8301002|@ohos.telephony.sim.d.ts| +|错误码有变化|类名:sms;
方法or属性:function splitMessage(content: string, callback: AsyncCallback\>): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:sms;
方法or属性:function splitMessage(content: string, callback: AsyncCallback\>): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|错误码有变化|类名:sms;
方法or属性:function setDefaultSmsSlotId(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300004,8300999|类名:sms;
方法or属性:function setDefaultSmsSlotId(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300004,8300999|@ohos.telephony.sms.d.ts| +|错误码有变化|类名:sms;
方法or属性:function setSmscAddr(slotId: number, smscAddr: string, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:sms;
方法or属性:function setSmscAddr(slotId: number, smscAddr: string, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|错误码有变化|类名:sms;
方法or属性:function getSmscAddr(slotId: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:sms;
方法or属性:function getSmscAddr(slotId: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|错误码有变化|类名:sms;
方法or属性:function addSimMessage(options: SimMessageOptions, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:sms;
方法or属性:function addSimMessage(options: SimMessageOptions, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|错误码有变化|类名:sms;
方法or属性:function delSimMessage(slotId: number, msgIndex: number, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:sms;
方法or属性:function delSimMessage(slotId: number, msgIndex: number, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|错误码有变化|类名:sms;
方法or属性:function updateSimMessage(options: UpdateSimMessageOptions, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:sms;
方法or属性:function updateSimMessage(options: UpdateSimMessageOptions, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|错误码有变化|类名:sms;
方法or属性:function getAllSimMessages(slotId: number, callback: AsyncCallback\>): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:sms;
方法or属性:function getAllSimMessages(slotId: number, callback: AsyncCallback\>): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|错误码有变化|类名:sms;
方法or属性:function setCBConfig(options: CBConfigOptions, callback: AsyncCallback\): void;
旧版本信息:201,401,8300001,8300002,8300003,8300999|类名:sms;
方法or属性:function setCBConfig(options: CBConfigOptions, callback: AsyncCallback\): void;
新版本信息:201,202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|错误码有变化|类名:sms;
方法or属性:function getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean, callback: AsyncCallback\): void;
旧版本信息:401,8300001,8300002,8300003,8300999|类名:sms;
方法or属性:function getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean, callback: AsyncCallback\): void;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|错误码有变化|类名:sms;
方法or属性:function isImsSmsSupported(slotId: number, callback: AsyncCallback\): void;
旧版本信息:401,8300001,8300002,8300003,8300999|类名:sms;
方法or属性:function isImsSmsSupported(slotId: number, callback: AsyncCallback\): void;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|错误码有变化|类名:sms;
方法or属性:function getImsShortMessageFormat(callback: AsyncCallback\): void;
旧版本信息:401,8300001,8300002,8300003,8300999|类名:sms;
方法or属性:function getImsShortMessageFormat(callback: AsyncCallback\): void;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|错误码有变化|类名:sms;
方法or属性:function decodeMms(mmsFilePathName: string \| Array\, callback: AsyncCallback\): void;
旧版本信息:401,8300001,8300002,8300003,8300999|类名:sms;
方法or属性:function decodeMms(mmsFilePathName: string \| Array\, callback: AsyncCallback\): void;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|错误码有变化|类名:sms;
方法or属性:function encodeMms(mms: MmsInformation, callback: AsyncCallback\>): void;
旧版本信息:401,8300001,8300002,8300003,8300999|类名:sms;
方法or属性:function encodeMms(mms: MmsInformation, callback: AsyncCallback\>): void;
新版本信息:202,401,8300001,8300002,8300003,8300999|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:call;
方法or属性:function muteRinger(): Promise\;
旧版本信息:|类名:call;
方法or属性:function muteRinger(): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function holdCall(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function holdCall(callId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function unHoldCall(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function unHoldCall(callId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function switchCall(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function switchCall(callId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function combineConference(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function combineConference(callId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function getMainCallId(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function getMainCallId(callId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function getSubCallIdList(callId: number): Promise\>;
旧版本信息:|类名:call;
方法or属性:function getSubCallIdList(callId: number): Promise\>;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function getCallIdListForConference(callId: number): Promise\>;
旧版本信息:|类名:call;
方法or属性:function getCallIdListForConference(callId: number): Promise\>;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function getCallWaitingStatus(slotId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function getCallWaitingStatus(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function setCallWaiting(slotId: number, activate: boolean): Promise\;
旧版本信息:|类名:call;
方法or属性:function setCallWaiting(slotId: number, activate: boolean): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function startDTMF(callId: number, character: string): Promise\;
旧版本信息:|类名:call;
方法or属性:function startDTMF(callId: number, character: string): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function stopDTMF(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function stopDTMF(callId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function isInEmergencyCall(): Promise\;
旧版本信息:|类名:call;
方法or属性:function isInEmergencyCall(): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function isNewCallAllowed(): Promise\;
旧版本信息:|类名:call;
方法or属性:function isNewCallAllowed(): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function separateConference(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function separateConference(callId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function getCallRestrictionStatus(slotId: number, type: CallRestrictionType): Promise\;
旧版本信息:|类名:call;
方法or属性:function getCallRestrictionStatus(slotId: number, type: CallRestrictionType): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function setCallRestriction(slotId: number, info: CallRestrictionInfo): Promise\;
旧版本信息:|类名:call;
方法or属性:function setCallRestriction(slotId: number, info: CallRestrictionInfo): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function getCallTransferInfo(slotId: number, type: CallTransferType): Promise\;
旧版本信息:|类名:call;
方法or属性:function getCallTransferInfo(slotId: number, type: CallTransferType): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function setCallTransfer(slotId: number, info: CallTransferInfo): Promise\;
旧版本信息:|类名:call;
方法or属性:function setCallTransfer(slotId: number, info: CallTransferInfo): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function isRinging(): Promise\;
旧版本信息:|类名:call;
方法or属性:function isRinging(): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function setMuted(): Promise\;
旧版本信息:|类名:call;
方法or属性:function setMuted(): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function cancelMuted(): Promise\;
旧版本信息:|类名:call;
方法or属性:function cancelMuted(): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function joinConference(mainCallId: number, callNumberList: Array\): Promise\;
旧版本信息:|类名:call;
方法or属性:function joinConference(mainCallId: number, callNumberList: Array\): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function updateImsCallMode(callId: number, mode: ImsCallMode): Promise\;
旧版本信息:|类名:call;
方法or属性:function updateImsCallMode(callId: number, mode: ImsCallMode): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function enableImsSwitch(slotId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function enableImsSwitch(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function disableImsSwitch(slotId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function disableImsSwitch(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:call;
方法or属性:function isImsSwitchEnabled(slotId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function isImsSwitchEnabled(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:ImsCallMode;
方法or属性:CALL_MODE_AUDIO_ONLY = 0
旧版本信息:|类名:ImsCallMode;
方法or属性:CALL_MODE_AUDIO_ONLY = 0
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:ImsCallMode;
方法or属性:CALL_MODE_SEND_ONLY
旧版本信息:|类名:ImsCallMode;
方法or属性:CALL_MODE_SEND_ONLY
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:ImsCallMode;
方法or属性:CALL_MODE_RECEIVE_ONLY
旧版本信息:|类名:ImsCallMode;
方法or属性:CALL_MODE_RECEIVE_ONLY
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:ImsCallMode;
方法or属性:CALL_MODE_SEND_RECEIVE
旧版本信息:|类名:ImsCallMode;
方法or属性:CALL_MODE_SEND_RECEIVE
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:ImsCallMode;
方法or属性:CALL_MODE_VIDEO_PAUSED
旧版本信息:|类名:ImsCallMode;
方法or属性:CALL_MODE_VIDEO_PAUSED
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:VoNRState;
方法or属性:VONR_STATE_ON = 1
旧版本信息:|类名:VoNRState;
方法or属性:VONR_STATE_ON = 1
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:AudioDeviceType;
方法or属性:DEVICE_EARPIECE
旧版本信息:|类名:AudioDeviceType;
方法or属性:DEVICE_EARPIECE
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:AudioDeviceType;
方法or属性:DEVICE_SPEAKER
旧版本信息:|类名:AudioDeviceType;
方法or属性:DEVICE_SPEAKER
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:AudioDeviceType;
方法or属性:DEVICE_WIRED_HEADSET
旧版本信息:|类名:AudioDeviceType;
方法or属性:DEVICE_WIRED_HEADSET
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:AudioDeviceType;
方法or属性:DEVICE_BLUETOOTH_SCO
旧版本信息:|类名:AudioDeviceType;
方法or属性:DEVICE_BLUETOOTH_SCO
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:AudioDeviceInfo;
方法or属性:audioDeviceList: Array\;
旧版本信息:|类名:AudioDeviceInfo;
方法or属性:audioDeviceList: Array\;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:AudioDeviceInfo;
方法or属性:currentAudioDevice: AudioDevice;
旧版本信息:|类名:AudioDeviceInfo;
方法or属性:currentAudioDevice: AudioDevice;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:AudioDeviceInfo;
方法or属性:isMuted: boolean;
旧版本信息:|类名:AudioDeviceInfo;
方法or属性:isMuted: boolean;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallRestrictionType;
方法or属性:RESTRICTION_TYPE_ALL_INCOMING = 0
旧版本信息:|类名:CallRestrictionType;
方法or属性:RESTRICTION_TYPE_ALL_INCOMING = 0
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallRestrictionType;
方法or属性:RESTRICTION_TYPE_ALL_OUTGOING
旧版本信息:|类名:CallRestrictionType;
方法or属性:RESTRICTION_TYPE_ALL_OUTGOING
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallRestrictionType;
方法or属性:RESTRICTION_TYPE_INTERNATIONAL
旧版本信息:|类名:CallRestrictionType;
方法or属性:RESTRICTION_TYPE_INTERNATIONAL
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallRestrictionType;
方法or属性:RESTRICTION_TYPE_INTERNATIONAL_EXCLUDING_HOME
旧版本信息:|类名:CallRestrictionType;
方法or属性:RESTRICTION_TYPE_INTERNATIONAL_EXCLUDING_HOME
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallRestrictionType;
方法or属性:RESTRICTION_TYPE_ROAMING_INCOMING
旧版本信息:|类名:CallRestrictionType;
方法or属性:RESTRICTION_TYPE_ROAMING_INCOMING
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallRestrictionType;
方法or属性:RESTRICTION_TYPE_ALL_CALLS
旧版本信息:|类名:CallRestrictionType;
方法or属性:RESTRICTION_TYPE_ALL_CALLS
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallRestrictionType;
方法or属性:RESTRICTION_TYPE_OUTGOING_SERVICES
旧版本信息:|类名:CallRestrictionType;
方法or属性:RESTRICTION_TYPE_OUTGOING_SERVICES
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallRestrictionType;
方法or属性:RESTRICTION_TYPE_INCOMING_SERVICES
旧版本信息:|类名:CallRestrictionType;
方法or属性:RESTRICTION_TYPE_INCOMING_SERVICES
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferInfo;
方法or属性:transferNum: string;
旧版本信息:|类名:CallTransferInfo;
方法or属性:transferNum: string;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferInfo;
方法or属性:type: CallTransferType;
旧版本信息:|类名:CallTransferInfo;
方法or属性:type: CallTransferType;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferInfo;
方法or属性:settingType: CallTransferSettingType;
旧版本信息:|类名:CallTransferInfo;
方法or属性:settingType: CallTransferSettingType;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferInfo;
方法or属性:startHour?: number;
旧版本信息:|类名:CallTransferInfo;
方法or属性:startHour?: number;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferInfo;
方法or属性:startMinute?: number;
旧版本信息:|类名:CallTransferInfo;
方法or属性:startMinute?: number;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferInfo;
方法or属性:endHour?: number;
旧版本信息:|类名:CallTransferInfo;
方法or属性:endHour?: number;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferInfo;
方法or属性:endMinute?: number;
旧版本信息:|类名:CallTransferInfo;
方法or属性:endMinute?: number;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferType;
方法or属性:TRANSFER_TYPE_UNCONDITIONAL = 0
旧版本信息:|类名:CallTransferType;
方法or属性:TRANSFER_TYPE_UNCONDITIONAL = 0
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferType;
方法or属性:TRANSFER_TYPE_BUSY
旧版本信息:|类名:CallTransferType;
方法or属性:TRANSFER_TYPE_BUSY
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferType;
方法or属性:TRANSFER_TYPE_NO_REPLY
旧版本信息:|类名:CallTransferType;
方法or属性:TRANSFER_TYPE_NO_REPLY
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferType;
方法or属性:TRANSFER_TYPE_NOT_REACHABLE
旧版本信息:|类名:CallTransferType;
方法or属性:TRANSFER_TYPE_NOT_REACHABLE
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferSettingType;
方法or属性:CALL_TRANSFER_DISABLE = 0
旧版本信息:|类名:CallTransferSettingType;
方法or属性:CALL_TRANSFER_DISABLE = 0
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferSettingType;
方法or属性:CALL_TRANSFER_ENABLE = 1
旧版本信息:|类名:CallTransferSettingType;
方法or属性:CALL_TRANSFER_ENABLE = 1
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferSettingType;
方法or属性:CALL_TRANSFER_REGISTRATION = 3
旧版本信息:|类名:CallTransferSettingType;
方法or属性:CALL_TRANSFER_REGISTRATION = 3
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferSettingType;
方法or属性:CALL_TRANSFER_ERASURE = 4
旧版本信息:|类名:CallTransferSettingType;
方法or属性:CALL_TRANSFER_ERASURE = 4
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallAttributeOptions;
方法or属性:accountNumber: string;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:accountNumber: string;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallAttributeOptions;
方法or属性:speakerphoneOn: boolean;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:speakerphoneOn: boolean;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallAttributeOptions;
方法or属性:accountId: number;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:accountId: number;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallAttributeOptions;
方法or属性:videoState: VideoStateType;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:videoState: VideoStateType;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallAttributeOptions;
方法or属性:startTime: number;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:startTime: number;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallAttributeOptions;
方法or属性:isEcc: boolean;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:isEcc: boolean;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallAttributeOptions;
方法or属性:callType: CallType;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:callType: CallType;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallAttributeOptions;
方法or属性:callId: number;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:callId: number;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallAttributeOptions;
方法or属性:callState: DetailedCallState;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:callState: DetailedCallState;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallAttributeOptions;
方法or属性:conferenceState: ConferenceState;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:conferenceState: ConferenceState;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:ConferenceState;
方法or属性:TEL_CONFERENCE_IDLE = 0
旧版本信息:|类名:ConferenceState;
方法or属性:TEL_CONFERENCE_IDLE = 0
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:ConferenceState;
方法or属性:TEL_CONFERENCE_ACTIVE
旧版本信息:|类名:ConferenceState;
方法or属性:TEL_CONFERENCE_ACTIVE
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:ConferenceState;
方法or属性:TEL_CONFERENCE_DISCONNECTING
旧版本信息:|类名:ConferenceState;
方法or属性:TEL_CONFERENCE_DISCONNECTING
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:ConferenceState;
方法or属性:TEL_CONFERENCE_DISCONNECTED
旧版本信息:|类名:ConferenceState;
方法or属性:TEL_CONFERENCE_DISCONNECTED
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallType;
方法or属性:TYPE_CS = 0
旧版本信息:|类名:CallType;
方法or属性:TYPE_CS = 0
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallType;
方法or属性:TYPE_IMS = 1
旧版本信息:|类名:CallType;
方法or属性:TYPE_IMS = 1
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallType;
方法or属性:TYPE_OTT = 2
旧版本信息:|类名:CallType;
方法or属性:TYPE_OTT = 2
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallType;
方法or属性:TYPE_ERR_CALL = 3
旧版本信息:|类名:CallType;
方法or属性:TYPE_ERR_CALL = 3
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:VideoStateType;
方法or属性:TYPE_VOICE = 0
旧版本信息:|类名:VideoStateType;
方法or属性:TYPE_VOICE = 0
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:VideoStateType;
方法or属性:TYPE_VIDEO
旧版本信息:|类名:VideoStateType;
方法or属性:TYPE_VIDEO
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DetailedCallState;
方法or属性:CALL_STATUS_ACTIVE = 0
旧版本信息:|类名:DetailedCallState;
方法or属性:CALL_STATUS_ACTIVE = 0
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DetailedCallState;
方法or属性:CALL_STATUS_HOLDING
旧版本信息:|类名:DetailedCallState;
方法or属性:CALL_STATUS_HOLDING
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DetailedCallState;
方法or属性:CALL_STATUS_DIALING
旧版本信息:|类名:DetailedCallState;
方法or属性:CALL_STATUS_DIALING
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DetailedCallState;
方法or属性:CALL_STATUS_ALERTING
旧版本信息:|类名:DetailedCallState;
方法or属性:CALL_STATUS_ALERTING
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DetailedCallState;
方法or属性:CALL_STATUS_INCOMING
旧版本信息:|类名:DetailedCallState;
方法or属性:CALL_STATUS_INCOMING
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DetailedCallState;
方法or属性:CALL_STATUS_WAITING
旧版本信息:|类名:DetailedCallState;
方法or属性:CALL_STATUS_WAITING
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DetailedCallState;
方法or属性:CALL_STATUS_DISCONNECTED
旧版本信息:|类名:DetailedCallState;
方法or属性:CALL_STATUS_DISCONNECTED
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DetailedCallState;
方法or属性:CALL_STATUS_DISCONNECTING
旧版本信息:|类名:DetailedCallState;
方法or属性:CALL_STATUS_DISCONNECTING
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DetailedCallState;
方法or属性:CALL_STATUS_IDLE
旧版本信息:|类名:DetailedCallState;
方法or属性:CALL_STATUS_IDLE
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallRestrictionInfo;
方法or属性:type: CallRestrictionType;
旧版本信息:|类名:CallRestrictionInfo;
方法or属性:type: CallRestrictionType;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallRestrictionInfo;
方法or属性:password: string;
旧版本信息:|类名:CallRestrictionInfo;
方法or属性:password: string;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallRestrictionInfo;
方法or属性:mode: CallRestrictionMode;
旧版本信息:|类名:CallRestrictionInfo;
方法or属性:mode: CallRestrictionMode;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallRestrictionMode;
方法or属性:RESTRICTION_MODE_DEACTIVATION = 0
旧版本信息:|类名:CallRestrictionMode;
方法or属性:RESTRICTION_MODE_DEACTIVATION = 0
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallRestrictionMode;
方法or属性:RESTRICTION_MODE_ACTIVATION
旧版本信息:|类名:CallRestrictionMode;
方法or属性:RESTRICTION_MODE_ACTIVATION
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallEventOptions;
方法or属性:eventId: CallAbilityEventId,
旧版本信息:|类名:CallEventOptions;
方法or属性:eventId: CallAbilityEventId,
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallAbilityEventId;
方法or属性:EVENT_DIAL_NO_CARRIER = 1
旧版本信息:|类名:CallAbilityEventId;
方法or属性:EVENT_DIAL_NO_CARRIER = 1
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallAbilityEventId;
方法or属性:EVENT_INVALID_FDN_NUMBER
旧版本信息:|类名:CallAbilityEventId;
方法or属性:EVENT_INVALID_FDN_NUMBER
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DialScene;
方法or属性:CALL_NORMAL = 0
旧版本信息:|类名:DialScene;
方法or属性:CALL_NORMAL = 0
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DialScene;
方法or属性:CALL_PRIVILEGED = 1
旧版本信息:|类名:DialScene;
方法or属性:CALL_PRIVILEGED = 1
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DialScene;
方法or属性:CALL_EMERGENCY = 2
旧版本信息:|类名:DialScene;
方法or属性:CALL_EMERGENCY = 2
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DialType;
方法or属性:DIAL_CARRIER_TYPE = 0
旧版本信息:|类名:DialType;
方法or属性:DIAL_CARRIER_TYPE = 0
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DialType;
方法or属性:DIAL_VOICE_MAIL_TYPE = 1
旧版本信息:|类名:DialType;
方法or属性:DIAL_VOICE_MAIL_TYPE = 1
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DialType;
方法or属性:DIAL_OTT_TYPE = 2
旧版本信息:|类名:DialType;
方法or属性:DIAL_OTT_TYPE = 2
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:RejectMessageOptions;
方法or属性:messageContent: string;
旧版本信息:|类名:RejectMessageOptions;
方法or属性:messageContent: string;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferResult;
方法or属性:status: TransferStatus;
旧版本信息:|类名:CallTransferResult;
方法or属性:status: TransferStatus;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferResult;
方法or属性:number: string;
旧版本信息:|类名:CallTransferResult;
方法or属性:number: string;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferResult;
方法or属性:startHour: number;
旧版本信息:|类名:CallTransferResult;
方法or属性:startHour: number;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferResult;
方法or属性:startMinute: number;
旧版本信息:|类名:CallTransferResult;
方法or属性:startMinute: number;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferResult;
方法or属性:endHour: number;
旧版本信息:|类名:CallTransferResult;
方法or属性:endHour: number;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallTransferResult;
方法or属性:endMinute: number;
旧版本信息:|类名:CallTransferResult;
方法or属性:endMinute: number;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallWaitingStatus;
方法or属性:CALL_WAITING_DISABLE = 0
旧版本信息:|类名:CallWaitingStatus;
方法or属性:CALL_WAITING_DISABLE = 0
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:CallWaitingStatus;
方法or属性:CALL_WAITING_ENABLE = 1
旧版本信息:|类名:CallWaitingStatus;
方法or属性:CALL_WAITING_ENABLE = 1
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:RestrictionStatus;
方法or属性:RESTRICTION_DISABLE = 0
旧版本信息:|类名:RestrictionStatus;
方法or属性:RESTRICTION_DISABLE = 0
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:RestrictionStatus;
方法or属性:RESTRICTION_ENABLE = 1
旧版本信息:|类名:RestrictionStatus;
方法or属性:RESTRICTION_ENABLE = 1
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:TransferStatus;
方法or属性:TRANSFER_DISABLE = 0
旧版本信息:|类名:TransferStatus;
方法or属性:TRANSFER_DISABLE = 0
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:TransferStatus;
方法or属性:TRANSFER_ENABLE = 1
旧版本信息:|类名:TransferStatus;
方法or属性:TRANSFER_ENABLE = 1
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:MmiCodeResults;
方法or属性:result: MmiCodeResult;
旧版本信息:|类名:MmiCodeResults;
方法or属性:result: MmiCodeResult;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:MmiCodeResults;
方法or属性:message: string;
旧版本信息:|类名:MmiCodeResults;
方法or属性:message: string;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedDetails;
方法or属性:message: string;
旧版本信息:|类名:DisconnectedDetails;
方法or属性:message: string;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:MmiCodeResult;
方法or属性:MMI_CODE_SUCCESS = 0
旧版本信息:|类名:MmiCodeResult;
方法or属性:MMI_CODE_SUCCESS = 0
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:MmiCodeResult;
方法or属性:MMI_CODE_FAILED = 1
旧版本信息:|类名:MmiCodeResult;
方法or属性:MMI_CODE_FAILED = 1
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:UNASSIGNED_NUMBER = 1
旧版本信息:|类名:DisconnectedReason;
方法or属性:UNASSIGNED_NUMBER = 1
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:NO_ROUTE_TO_DESTINATION = 3
旧版本信息:|类名:DisconnectedReason;
方法or属性:NO_ROUTE_TO_DESTINATION = 3
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:CHANNEL_UNACCEPTABLE = 6
旧版本信息:|类名:DisconnectedReason;
方法or属性:CHANNEL_UNACCEPTABLE = 6
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:OPERATOR_DETERMINED_BARRING = 8
旧版本信息:|类名:DisconnectedReason;
方法or属性:OPERATOR_DETERMINED_BARRING = 8
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:CALL_COMPLETED_ELSEWHERE = 13
旧版本信息:|类名:DisconnectedReason;
方法or属性:CALL_COMPLETED_ELSEWHERE = 13
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:NORMAL_CALL_CLEARING = 16
旧版本信息:|类名:DisconnectedReason;
方法or属性:NORMAL_CALL_CLEARING = 16
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:USER_BUSY = 17
旧版本信息:|类名:DisconnectedReason;
方法or属性:USER_BUSY = 17
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:NO_USER_RESPONDING = 18
旧版本信息:|类名:DisconnectedReason;
方法or属性:NO_USER_RESPONDING = 18
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:USER_ALERTING_NO_ANSWER = 19
旧版本信息:|类名:DisconnectedReason;
方法or属性:USER_ALERTING_NO_ANSWER = 19
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:CALL_REJECTED = 21
旧版本信息:|类名:DisconnectedReason;
方法or属性:CALL_REJECTED = 21
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:NUMBER_CHANGED = 22
旧版本信息:|类名:DisconnectedReason;
方法or属性:NUMBER_CHANGED = 22
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:CALL_REJECTED_DUE_TO_FEATURE_AT_THE_DESTINATION = 24
旧版本信息:|类名:DisconnectedReason;
方法or属性:CALL_REJECTED_DUE_TO_FEATURE_AT_THE_DESTINATION = 24
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:FAILED_PRE_EMPTION = 25
旧版本信息:|类名:DisconnectedReason;
方法or属性:FAILED_PRE_EMPTION = 25
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:NON_SELECTED_USER_CLEARING = 26
旧版本信息:|类名:DisconnectedReason;
方法or属性:NON_SELECTED_USER_CLEARING = 26
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:DESTINATION_OUT_OF_ORDER = 27
旧版本信息:|类名:DisconnectedReason;
方法or属性:DESTINATION_OUT_OF_ORDER = 27
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:INVALID_NUMBER_FORMAT = 28
旧版本信息:|类名:DisconnectedReason;
方法or属性:INVALID_NUMBER_FORMAT = 28
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:FACILITY_REJECTED = 29
旧版本信息:|类名:DisconnectedReason;
方法or属性:FACILITY_REJECTED = 29
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:RESPONSE_TO_STATUS_ENQUIRY = 30
旧版本信息:|类名:DisconnectedReason;
方法or属性:RESPONSE_TO_STATUS_ENQUIRY = 30
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:NORMAL_UNSPECIFIED = 31
旧版本信息:|类名:DisconnectedReason;
方法or属性:NORMAL_UNSPECIFIED = 31
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:NO_CIRCUIT_CHANNEL_AVAILABLE = 34
旧版本信息:|类名:DisconnectedReason;
方法or属性:NO_CIRCUIT_CHANNEL_AVAILABLE = 34
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:NETWORK_OUT_OF_ORDER = 38
旧版本信息:|类名:DisconnectedReason;
方法or属性:NETWORK_OUT_OF_ORDER = 38
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:TEMPORARY_FAILURE = 41
旧版本信息:|类名:DisconnectedReason;
方法or属性:TEMPORARY_FAILURE = 41
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:SWITCHING_EQUIPMENT_CONGESTION = 42
旧版本信息:|类名:DisconnectedReason;
方法or属性:SWITCHING_EQUIPMENT_CONGESTION = 42
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:ACCESS_INFORMATION_DISCARDED = 43
旧版本信息:|类名:DisconnectedReason;
方法or属性:ACCESS_INFORMATION_DISCARDED = 43
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:REQUEST_CIRCUIT_CHANNEL_NOT_AVAILABLE = 44
旧版本信息:|类名:DisconnectedReason;
方法or属性:REQUEST_CIRCUIT_CHANNEL_NOT_AVAILABLE = 44
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:RESOURCES_UNAVAILABLE_UNSPECIFIED = 47
旧版本信息:|类名:DisconnectedReason;
方法or属性:RESOURCES_UNAVAILABLE_UNSPECIFIED = 47
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:QUALITY_OF_SERVICE_UNAVAILABLE = 49
旧版本信息:|类名:DisconnectedReason;
方法or属性:QUALITY_OF_SERVICE_UNAVAILABLE = 49
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:REQUESTED_FACILITY_NOT_SUBSCRIBED = 50
旧版本信息:|类名:DisconnectedReason;
方法or属性:REQUESTED_FACILITY_NOT_SUBSCRIBED = 50
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:INCOMING_CALLS_BARRED_WITHIN_THE_CUG = 55
旧版本信息:|类名:DisconnectedReason;
方法or属性:INCOMING_CALLS_BARRED_WITHIN_THE_CUG = 55
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:BEARER_CAPABILITY_NOT_AUTHORIZED = 57
旧版本信息:|类名:DisconnectedReason;
方法or属性:BEARER_CAPABILITY_NOT_AUTHORIZED = 57
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:BEARER_CAPABILITY_NOT_PRESENTLY_AVAILABLE = 58
旧版本信息:|类名:DisconnectedReason;
方法or属性:BEARER_CAPABILITY_NOT_PRESENTLY_AVAILABLE = 58
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:SERVICE_OR_OPTION_NOT_AVAILABLE_UNSPECIFIED = 63
旧版本信息:|类名:DisconnectedReason;
方法or属性:SERVICE_OR_OPTION_NOT_AVAILABLE_UNSPECIFIED = 63
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:BEARER_SERVICE_NOT_IMPLEMENTED = 65
旧版本信息:|类名:DisconnectedReason;
方法or属性:BEARER_SERVICE_NOT_IMPLEMENTED = 65
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:ACM_EQUALTO_OR_GREATER_THAN_THE_MAXIMUM_VALUE = 68
旧版本信息:|类名:DisconnectedReason;
方法or属性:ACM_EQUALTO_OR_GREATER_THAN_THE_MAXIMUM_VALUE = 68
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:REQUESTED_FACILITY_NOT_IMPLEMENTED = 69
旧版本信息:|类名:DisconnectedReason;
方法or属性:REQUESTED_FACILITY_NOT_IMPLEMENTED = 69
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:ONLY_RESTRICTED_DIGITAL_INFO_BEARER_CAPABILITY_IS_AVAILABLE = 70
旧版本信息:|类名:DisconnectedReason;
方法or属性:ONLY_RESTRICTED_DIGITAL_INFO_BEARER_CAPABILITY_IS_AVAILABLE = 70
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:SERVICE_OR_OPTION_NOT_IMPLEMENTED_UNSPECIFIED = 79
旧版本信息:|类名:DisconnectedReason;
方法or属性:SERVICE_OR_OPTION_NOT_IMPLEMENTED_UNSPECIFIED = 79
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:INVALID_TRANSACTION_IDENTIFIER_VALUE = 81
旧版本信息:|类名:DisconnectedReason;
方法or属性:INVALID_TRANSACTION_IDENTIFIER_VALUE = 81
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:USER_NOT_MEMBER_OF_CUG = 87
旧版本信息:|类名:DisconnectedReason;
方法or属性:USER_NOT_MEMBER_OF_CUG = 87
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:INCOMPATIBLE_DESTINATION = 88
旧版本信息:|类名:DisconnectedReason;
方法or属性:INCOMPATIBLE_DESTINATION = 88
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:INVALID_TRANSIT_NETWORK_SELECTION = 91
旧版本信息:|类名:DisconnectedReason;
方法or属性:INVALID_TRANSIT_NETWORK_SELECTION = 91
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:SEMANTICALLY_INCORRECT_MESSAGE = 95
旧版本信息:|类名:DisconnectedReason;
方法or属性:SEMANTICALLY_INCORRECT_MESSAGE = 95
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:INVALID_MANDATORY_INFORMATION = 96
旧版本信息:|类名:DisconnectedReason;
方法or属性:INVALID_MANDATORY_INFORMATION = 96
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED = 97
旧版本信息:|类名:DisconnectedReason;
方法or属性:MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED = 97
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98
旧版本信息:|类名:DisconnectedReason;
方法or属性:MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED = 99
旧版本信息:|类名:DisconnectedReason;
方法or属性:INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED = 99
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:CONDITIONAL_IE_ERROR = 100
旧版本信息:|类名:DisconnectedReason;
方法or属性:CONDITIONAL_IE_ERROR = 100
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101
旧版本信息:|类名:DisconnectedReason;
方法or属性:MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:RECOVERY_ON_TIMER_EXPIRED = 102
旧版本信息:|类名:DisconnectedReason;
方法or属性:RECOVERY_ON_TIMER_EXPIRED = 102
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:PROTOCOL_ERROR_UNSPECIFIED = 111
旧版本信息:|类名:DisconnectedReason;
方法or属性:PROTOCOL_ERROR_UNSPECIFIED = 111
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:INTERWORKING_UNSPECIFIED = 127
旧版本信息:|类名:DisconnectedReason;
方法or属性:INTERWORKING_UNSPECIFIED = 127
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:CALL_BARRED = 240
旧版本信息:|类名:DisconnectedReason;
方法or属性:CALL_BARRED = 240
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:FDN_BLOCKED = 241
旧版本信息:|类名:DisconnectedReason;
方法or属性:FDN_BLOCKED = 241
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:IMSI_UNKNOWN_IN_VLR = 242
旧版本信息:|类名:DisconnectedReason;
方法or属性:IMSI_UNKNOWN_IN_VLR = 242
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:IMEI_NOT_ACCEPTED = 243
旧版本信息:|类名:DisconnectedReason;
方法or属性:IMEI_NOT_ACCEPTED = 243
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:DIAL_MODIFIED_TO_USSD = 244
旧版本信息:|类名:DisconnectedReason;
方法or属性:DIAL_MODIFIED_TO_USSD = 244
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:DIAL_MODIFIED_TO_SS = 245
旧版本信息:|类名:DisconnectedReason;
方法or属性:DIAL_MODIFIED_TO_SS = 245
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:DIAL_MODIFIED_TO_DIAL = 246
旧版本信息:|类名:DisconnectedReason;
方法or属性:DIAL_MODIFIED_TO_DIAL = 246
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:RADIO_OFF = 247
旧版本信息:|类名:DisconnectedReason;
方法or属性:RADIO_OFF = 247
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:OUT_OF_SERVICE = 248
旧版本信息:|类名:DisconnectedReason;
方法or属性:OUT_OF_SERVICE = 248
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:NO_VALID_SIM = 249
旧版本信息:|类名:DisconnectedReason;
方法or属性:NO_VALID_SIM = 249
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:RADIO_INTERNAL_ERROR = 250
旧版本信息:|类名:DisconnectedReason;
方法or属性:RADIO_INTERNAL_ERROR = 250
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:NETWORK_RESP_TIMEOUT = 251
旧版本信息:|类名:DisconnectedReason;
方法or属性:NETWORK_RESP_TIMEOUT = 251
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:NETWORK_REJECT = 252
旧版本信息:|类名:DisconnectedReason;
方法or属性:NETWORK_REJECT = 252
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:RADIO_ACCESS_FAILURE = 253
旧版本信息:|类名:DisconnectedReason;
方法or属性:RADIO_ACCESS_FAILURE = 253
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:RADIO_LINK_FAILURE = 254
旧版本信息:|类名:DisconnectedReason;
方法or属性:RADIO_LINK_FAILURE = 254
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:RADIO_LINK_LOST = 255
旧版本信息:|类名:DisconnectedReason;
方法or属性:RADIO_LINK_LOST = 255
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:RADIO_UPLINK_FAILURE = 256
旧版本信息:|类名:DisconnectedReason;
方法or属性:RADIO_UPLINK_FAILURE = 256
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:RADIO_SETUP_FAILURE = 257
旧版本信息:|类名:DisconnectedReason;
方法or属性:RADIO_SETUP_FAILURE = 257
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:RADIO_RELEASE_NORMAL = 258
旧版本信息:|类名:DisconnectedReason;
方法or属性:RADIO_RELEASE_NORMAL = 258
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:RADIO_RELEASE_ABNORMAL = 259
旧版本信息:|类名:DisconnectedReason;
方法or属性:RADIO_RELEASE_ABNORMAL = 259
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:ACCESS_CLASS_BLOCKED = 260
旧版本信息:|类名:DisconnectedReason;
方法or属性:ACCESS_CLASS_BLOCKED = 260
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:NETWORK_DETACH = 261
旧版本信息:|类名:DisconnectedReason;
方法or属性:NETWORK_DETACH = 261
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:INVALID_PARAMETER = 1025
旧版本信息:|类名:DisconnectedReason;
方法or属性:INVALID_PARAMETER = 1025
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:SIM_NOT_EXIT = 1026
旧版本信息:|类名:DisconnectedReason;
方法or属性:SIM_NOT_EXIT = 1026
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:SIM_PIN_NEED = 1027
旧版本信息:|类名:DisconnectedReason;
方法or属性:SIM_PIN_NEED = 1027
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:CALL_NOT_ALLOW = 1029
旧版本信息:|类名:DisconnectedReason;
方法or属性:CALL_NOT_ALLOW = 1029
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:SIM_INVALID = 1045
旧版本信息:|类名:DisconnectedReason;
方法or属性:SIM_INVALID = 1045
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedReason;
方法or属性:UNKNOWN = 1279
旧版本信息:|类名:DisconnectedReason;
方法or属性:UNKNOWN = 1279
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:DisconnectedDetails;
方法or属性:reason: DisconnectedReason;
旧版本信息:|类名:DisconnectedDetails;
方法or属性:reason: DisconnectedReason;
新版本信息:systemapi|@ohos.telephony.call.d.ts| +|访问级别有变化|类名:data;
方法or属性:function setDefaultCellularDataSlotId(slotId: number): Promise\;
旧版本信息:|类名:data;
方法or属性:function setDefaultCellularDataSlotId(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.data.d.ts| +|访问级别有变化|类名:data;
方法or属性:function enableCellularData(): Promise\;
旧版本信息:|类名:data;
方法or属性:function enableCellularData(): Promise\;
新版本信息:systemapi|@ohos.telephony.data.d.ts| +|访问级别有变化|类名:data;
方法or属性:function disableCellularData(): Promise\;
旧版本信息:|类名:data;
方法or属性:function disableCellularData(): Promise\;
新版本信息:systemapi|@ohos.telephony.data.d.ts| +|访问级别有变化|类名:data;
方法or属性:function enableCellularDataRoaming(slotId: number): Promise\;
旧版本信息:|类名:data;
方法or属性:function enableCellularDataRoaming(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.data.d.ts| +|访问级别有变化|类名:data;
方法or属性:function disableCellularDataRoaming(slotId: number): Promise\;
旧版本信息:|类名:data;
方法or属性:function disableCellularDataRoaming(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.data.d.ts| +|访问级别有变化|类名:observer;
方法or属性:function on(type: 'cellInfoChange', options: { slotId: number }, callback: Callback\>): void;
旧版本信息:|类名:observer;
方法or属性:function on(type: 'cellInfoChange', options: { slotId: number }, callback: Callback\>): void;
新版本信息:systemapi|@ohos.telephony.observer.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function sendUpdateCellLocationRequest(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function sendUpdateCellLocationRequest(slotId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function getCellInformation(slotId: number, callback: AsyncCallback\>): void;
旧版本信息:|类名:radio;
方法or属性:function getCellInformation(slotId: number, callback: AsyncCallback\>): void;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function getCellInformation(slotId?: number): Promise\>;
旧版本信息:|类名:radio;
方法or属性:function getCellInformation(slotId?: number): Promise\>;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function setNetworkSelectionMode(options: NetworkSelectionModeOptions): Promise\;
旧版本信息:|类名:radio;
方法or属性:function setNetworkSelectionMode(options: NetworkSelectionModeOptions): Promise\;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function getNetworkSearchInformation(slotId: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getNetworkSearchInformation(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function getNrOptionMode(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function getNrOptionMode(slotId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function getNrOptionMode(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getNrOptionMode(slotId?: number): Promise\;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function getIMEI(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function getIMEI(slotId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function getIMEI(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getIMEI(slotId?: number): Promise\;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function getMEID(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function getMEID(slotId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function getMEID(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getMEID(slotId?: number): Promise\;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function getUniqueDeviceId(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function getUniqueDeviceId(slotId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function getUniqueDeviceId(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getUniqueDeviceId(slotId?: number): Promise\;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function setPrimarySlotId(slotId: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function setPrimarySlotId(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function turnOnRadio(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function turnOnRadio(slotId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function turnOnRadio(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function turnOnRadio(slotId?: number): Promise\;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function turnOffRadio(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function turnOffRadio(slotId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function turnOffRadio(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function turnOffRadio(slotId?: number): Promise\;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function setPreferredNetwork(slotId: number, networkMode: PreferredNetworkMode): Promise\;
旧版本信息:|类名:radio;
方法or属性:function setPreferredNetwork(slotId: number, networkMode: PreferredNetworkMode): Promise\;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function getPreferredNetwork(slotId: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getPreferredNetwork(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:radio;
方法or属性:function getImsRegInfo(slotId: number, imsType: ImsServiceType): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getImsRegInfo(slotId: number, imsType: ImsServiceType): Promise\;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_GSM = 1
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_GSM = 1
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_WCDMA = 2
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_WCDMA = 2
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE = 3
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE = 3
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_WCDMA = 4
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_WCDMA = 4
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_WCDMA_GSM = 5
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_WCDMA_GSM = 5
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_WCDMA_GSM = 6
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_WCDMA_GSM = 6
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_CDMA = 7
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_CDMA = 7
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_EVDO = 8
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_EVDO = 8
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_EVDO_CDMA = 9
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_EVDO_CDMA = 9
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_WCDMA_GSM_EVDO_CDMA = 10
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_WCDMA_GSM_EVDO_CDMA = 10
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_EVDO_CDMA = 11
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_EVDO_CDMA = 11
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_WCDMA_GSM_EVDO_CDMA = 12
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_WCDMA_GSM_EVDO_CDMA = 12
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_TDSCDMA = 13
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_TDSCDMA = 13
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_TDSCDMA_GSM = 14
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_TDSCDMA_GSM = 14
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_TDSCDMA_WCDMA = 15
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_TDSCDMA_WCDMA = 15
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_TDSCDMA_WCDMA_GSM = 16
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_TDSCDMA_WCDMA_GSM = 16
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_TDSCDMA = 17
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_TDSCDMA = 17
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_TDSCDMA_GSM = 18
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_TDSCDMA_GSM = 18
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_TDSCDMA_WCDMA = 19
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_TDSCDMA_WCDMA = 19
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_TDSCDMA_WCDMA_GSM = 20
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_TDSCDMA_WCDMA_GSM = 20
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_TDSCDMA_WCDMA_GSM_EVDO_CDMA = 21
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_TDSCDMA_WCDMA_GSM_EVDO_CDMA = 21
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_TDSCDMA_WCDMA_GSM_EVDO_CDMA = 22
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_LTE_TDSCDMA_WCDMA_GSM_EVDO_CDMA = 22
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR = 31
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR = 31
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE = 32
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE = 32
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_WCDMA = 33
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_WCDMA = 33
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_WCDMA_GSM = 34
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_WCDMA_GSM = 34
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_EVDO_CDMA = 35
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_EVDO_CDMA = 35
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_WCDMA_GSM_EVDO_CDMA = 36
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_WCDMA_GSM_EVDO_CDMA = 36
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA = 37
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA = 37
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_GSM = 38
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_GSM = 38
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA = 39
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA = 39
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA_GSM = 40
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA_GSM = 40
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA_GSM_EVDO_CDMA = 41
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA_GSM_EVDO_CDMA = 41
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_MAX_VALUE = 99
旧版本信息:|类名:PreferredNetworkMode;
方法or属性:PREFERRED_NETWORK_MODE_MAX_VALUE = 99
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:CellInformation;
方法or属性:export interface CellInformation
旧版本信息:systemapi|类名:CellInformation;
方法or属性:export interface CellInformation
新版本信息:|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:CellInformation;
方法or属性:isCamped: boolean;
旧版本信息:|类名:CellInformation;
方法or属性:isCamped: boolean;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:CellInformation;
方法or属性:timeStamp: number;
旧版本信息:|类名:CellInformation;
方法or属性:timeStamp: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:CellInformation;
方法or属性:data: CdmaCellInformation \| GsmCellInformation \| LteCellInformation \| NrCellInformation \| TdscdmaCellInformation
\| WcdmaCellInformation;
旧版本信息:|类名:CellInformation;
方法or属性:data: CdmaCellInformation \| GsmCellInformation \| LteCellInformation \| NrCellInformation \| TdscdmaCellInformation
\| WcdmaCellInformation;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:CdmaCellInformation;
方法or属性:baseId: number;
旧版本信息:|类名:CdmaCellInformation;
方法or属性:baseId: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:CdmaCellInformation;
方法or属性:latitude: number;
旧版本信息:|类名:CdmaCellInformation;
方法or属性:latitude: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:CdmaCellInformation;
方法or属性:longitude: number;
旧版本信息:|类名:CdmaCellInformation;
方法or属性:longitude: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:CdmaCellInformation;
方法or属性:nid: number;
旧版本信息:|类名:CdmaCellInformation;
方法or属性:nid: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:CdmaCellInformation;
方法or属性:sid: number;
旧版本信息:|类名:CdmaCellInformation;
方法or属性:sid: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:GsmCellInformation;
方法or属性:lac: number;
旧版本信息:|类名:GsmCellInformation;
方法or属性:lac: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:TdscdmaCellInformation;
方法or属性:lac: number;
旧版本信息:|类名:TdscdmaCellInformation;
方法or属性:lac: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:WcdmaCellInformation;
方法or属性:lac: number;
旧版本信息:|类名:WcdmaCellInformation;
方法or属性:lac: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:GsmCellInformation;
方法or属性:cellId: number;
旧版本信息:|类名:GsmCellInformation;
方法or属性:cellId: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:TdscdmaCellInformation;
方法or属性:cellId: number;
旧版本信息:|类名:TdscdmaCellInformation;
方法or属性:cellId: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:WcdmaCellInformation;
方法or属性:cellId: number;
旧版本信息:|类名:WcdmaCellInformation;
方法or属性:cellId: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:GsmCellInformation;
方法or属性:arfcn: number;
旧版本信息:|类名:GsmCellInformation;
方法or属性:arfcn: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:GsmCellInformation;
方法or属性:bsic: number;
旧版本信息:|类名:GsmCellInformation;
方法or属性:bsic: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:GsmCellInformation;
方法or属性:mcc: string;
旧版本信息:|类名:GsmCellInformation;
方法or属性:mcc: string;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:LteCellInformation;
方法or属性:mcc: string;
旧版本信息:|类名:LteCellInformation;
方法or属性:mcc: string;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NrCellInformation;
方法or属性:mcc: string;
旧版本信息:|类名:NrCellInformation;
方法or属性:mcc: string;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:TdscdmaCellInformation;
方法or属性:mcc: string;
旧版本信息:|类名:TdscdmaCellInformation;
方法or属性:mcc: string;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:WcdmaCellInformation;
方法or属性:mcc: string;
旧版本信息:|类名:WcdmaCellInformation;
方法or属性:mcc: string;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:GsmCellInformation;
方法or属性:mnc: string;
旧版本信息:|类名:GsmCellInformation;
方法or属性:mnc: string;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:LteCellInformation;
方法or属性:mnc: string;
旧版本信息:|类名:LteCellInformation;
方法or属性:mnc: string;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NrCellInformation;
方法or属性:mnc: string;
旧版本信息:|类名:NrCellInformation;
方法or属性:mnc: string;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:TdscdmaCellInformation;
方法or属性:mnc: string;
旧版本信息:|类名:TdscdmaCellInformation;
方法or属性:mnc: string;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:WcdmaCellInformation;
方法or属性:mnc: string;
旧版本信息:|类名:WcdmaCellInformation;
方法or属性:mnc: string;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:LteCellInformation;
方法or属性:cgi: number;
旧版本信息:|类名:LteCellInformation;
方法or属性:cgi: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:LteCellInformation;
方法or属性:pci: number;
旧版本信息:|类名:LteCellInformation;
方法or属性:pci: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NrCellInformation;
方法or属性:pci: number;
旧版本信息:|类名:NrCellInformation;
方法or属性:pci: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:LteCellInformation;
方法or属性:tac: number;
旧版本信息:|类名:LteCellInformation;
方法or属性:tac: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NrCellInformation;
方法or属性:tac: number;
旧版本信息:|类名:NrCellInformation;
方法or属性:tac: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:LteCellInformation;
方法or属性:earfcn: number;
旧版本信息:|类名:LteCellInformation;
方法or属性:earfcn: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:LteCellInformation;
方法or属性:bandwidth: number;
旧版本信息:|类名:LteCellInformation;
方法or属性:bandwidth: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:LteCellInformation;
方法or属性:isSupportEndc: boolean;
旧版本信息:|类名:LteCellInformation;
方法or属性:isSupportEndc: boolean;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NrCellInformation;
方法or属性:nrArfcn: number;
旧版本信息:|类名:NrCellInformation;
方法or属性:nrArfcn: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NrCellInformation;
方法or属性:nci: number;
旧版本信息:|类名:NrCellInformation;
方法or属性:nci: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:TdscdmaCellInformation;
方法or属性:cpid: number;
旧版本信息:|类名:TdscdmaCellInformation;
方法or属性:cpid: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:TdscdmaCellInformation;
方法or属性:uarfcn: number;
旧版本信息:|类名:TdscdmaCellInformation;
方法or属性:uarfcn: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:WcdmaCellInformation;
方法or属性:uarfcn: number;
旧版本信息:|类名:WcdmaCellInformation;
方法or属性:uarfcn: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:WcdmaCellInformation;
方法or属性:psc: number;
旧版本信息:|类名:WcdmaCellInformation;
方法or属性:psc: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NrOptionMode;
方法or属性:NR_OPTION_UNKNOWN
旧版本信息:|类名:NrOptionMode;
方法or属性:NR_OPTION_UNKNOWN
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NrOptionMode;
方法or属性:NR_OPTION_NSA_ONLY
旧版本信息:|类名:NrOptionMode;
方法or属性:NR_OPTION_NSA_ONLY
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NrOptionMode;
方法or属性:NR_OPTION_SA_ONLY
旧版本信息:|类名:NrOptionMode;
方法or属性:NR_OPTION_SA_ONLY
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NrOptionMode;
方法or属性:NR_OPTION_NSA_AND_SA
旧版本信息:|类名:NrOptionMode;
方法or属性:NR_OPTION_NSA_AND_SA
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NetworkSearchResult;
方法or属性:isNetworkSearchSuccess: boolean;
旧版本信息:|类名:NetworkSearchResult;
方法or属性:isNetworkSearchSuccess: boolean;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NetworkSearchResult;
方法or属性:networkSearchResult: Array\;
旧版本信息:|类名:NetworkSearchResult;
方法or属性:networkSearchResult: Array\;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NetworkInformation;
方法or属性:operatorName: string;
旧版本信息:|类名:NetworkInformation;
方法or属性:operatorName: string;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NetworkInformation;
方法or属性:operatorNumeric: string;
旧版本信息:|类名:NetworkInformation;
方法or属性:operatorNumeric: string;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NetworkInformation;
方法or属性:state: NetworkInformationState;
旧版本信息:|类名:NetworkInformation;
方法or属性:state: NetworkInformationState;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NetworkInformation;
方法or属性:radioTech: string;
旧版本信息:|类名:NetworkInformation;
方法or属性:radioTech: string;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NetworkInformationState;
方法or属性:NETWORK_UNKNOWN
旧版本信息:|类名:NetworkInformationState;
方法or属性:NETWORK_UNKNOWN
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NetworkInformationState;
方法or属性:NETWORK_AVAILABLE
旧版本信息:|类名:NetworkInformationState;
方法or属性:NETWORK_AVAILABLE
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NetworkInformationState;
方法or属性:NETWORK_CURRENT
旧版本信息:|类名:NetworkInformationState;
方法or属性:NETWORK_CURRENT
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NetworkInformationState;
方法or属性:NETWORK_FORBIDDEN
旧版本信息:|类名:NetworkInformationState;
方法or属性:NETWORK_FORBIDDEN
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NetworkSelectionModeOptions;
方法or属性:slotId: number;
旧版本信息:|类名:NetworkSelectionModeOptions;
方法or属性:slotId: number;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NetworkSelectionModeOptions;
方法or属性:selectMode: NetworkSelectionMode;
旧版本信息:|类名:NetworkSelectionModeOptions;
方法or属性:selectMode: NetworkSelectionMode;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NetworkSelectionModeOptions;
方法or属性:networkInformation: NetworkInformation;
旧版本信息:|类名:NetworkSelectionModeOptions;
方法or属性:networkInformation: NetworkInformation;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:NetworkSelectionModeOptions;
方法or属性:resumeSelection: boolean;
旧版本信息:|类名:NetworkSelectionModeOptions;
方法or属性:resumeSelection: boolean;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:ImsRegState;
方法or属性:IMS_UNREGISTERED
旧版本信息:|类名:ImsRegState;
方法or属性:IMS_UNREGISTERED
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:ImsRegState;
方法or属性:IMS_REGISTERED
旧版本信息:|类名:ImsRegState;
方法or属性:IMS_REGISTERED
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:ImsRegTech;
方法or属性:REGISTRATION_TECH_NONE
旧版本信息:|类名:ImsRegTech;
方法or属性:REGISTRATION_TECH_NONE
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:ImsRegTech;
方法or属性:REGISTRATION_TECH_LTE
旧版本信息:|类名:ImsRegTech;
方法or属性:REGISTRATION_TECH_LTE
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:ImsRegTech;
方法or属性:REGISTRATION_TECH_IWLAN
旧版本信息:|类名:ImsRegTech;
方法or属性:REGISTRATION_TECH_IWLAN
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:ImsRegTech;
方法or属性:REGISTRATION_TECH_NR
旧版本信息:|类名:ImsRegTech;
方法or属性:REGISTRATION_TECH_NR
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:ImsRegInfo;
方法or属性:imsRegState: ImsRegState;
旧版本信息:|类名:ImsRegInfo;
方法or属性:imsRegState: ImsRegState;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:ImsRegInfo;
方法or属性:imsRegTech: ImsRegTech;
旧版本信息:|类名:ImsRegInfo;
方法or属性:imsRegTech: ImsRegTech;
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:ImsServiceType;
方法or属性:TYPE_VOICE
旧版本信息:|类名:ImsServiceType;
方法or属性:TYPE_VOICE
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:ImsServiceType;
方法or属性:TYPE_VIDEO
旧版本信息:|类名:ImsServiceType;
方法or属性:TYPE_VIDEO
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:ImsServiceType;
方法or属性:TYPE_UT
旧版本信息:|类名:ImsServiceType;
方法or属性:TYPE_UT
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:ImsServiceType;
方法or属性:TYPE_SMS
旧版本信息:|类名:ImsServiceType;
方法or属性:TYPE_SMS
新版本信息:systemapi|@ohos.telephony.radio.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function getSimIccId(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getSimIccId(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function getVoiceMailIdentifier(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getVoiceMailIdentifier(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function getVoiceMailNumber(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getVoiceMailNumber(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function setVoiceMailInfo(slotId: number, mailName: string, mailNumber: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function setVoiceMailInfo(slotId: number, mailName: string, mailNumber: string): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function getSimTelephoneNumber(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getSimTelephoneNumber(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function getSimGid1(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getSimGid1(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function getIMSI(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getIMSI(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function getSimAccountInfo(slotId: number, callback: AsyncCallback\): void;
旧版本信息:systemapi|类名:sim;
方法or属性:function getSimAccountInfo(slotId: number, callback: AsyncCallback\): void;
新版本信息:|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function getActiveSimAccountInfoList(callback: AsyncCallback\>): void;
旧版本信息:systemapi|类名:sim;
方法or属性:function getActiveSimAccountInfoList(callback: AsyncCallback\>): void;
新版本信息:|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function setDefaultVoiceSlotId(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function setDefaultVoiceSlotId(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function activateSim(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function activateSim(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function deactivateSim(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function deactivateSim(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function setShowName(slotId: number, name: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function setShowName(slotId: number, name: string): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function getShowName(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getShowName(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function setShowNumber(slotId: number, number: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function setShowNumber(slotId: number, number: string): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function getShowNumber(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getShowNumber(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function getOperatorConfigs(slotId: number): Promise\>;
旧版本信息:|类名:sim;
方法or属性:function getOperatorConfigs(slotId: number): Promise\>;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function unlockPin(slotId: number, pin: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function unlockPin(slotId: number, pin: string): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function unlockPuk(slotId: number, newPin: string, puk: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function unlockPuk(slotId: number, newPin: string, puk: string): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function alterPin(slotId: number, newPin: string, oldPin: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function alterPin(slotId: number, newPin: string, oldPin: string): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function setLockState(slotId: number, options: LockInfo): Promise\;
旧版本信息:|类名:sim;
方法or属性:function setLockState(slotId: number, options: LockInfo): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function unlockPin2(slotId: number, pin2: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function unlockPin2(slotId: number, pin2: string): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function unlockPuk2(slotId: number, newPin2: string, puk2: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function unlockPuk2(slotId: number, newPin2: string, puk2: string): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function alterPin2(slotId: number, newPin2: string, oldPin2: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function alterPin2(slotId: number, newPin2: string, oldPin2: string): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function queryIccDiallingNumbers(slotId: number, type: ContactType): Promise\>;
旧版本信息:|类名:sim;
方法or属性:function queryIccDiallingNumbers(slotId: number, type: ContactType): Promise\>;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function addIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
旧版本信息:|类名:sim;
方法or属性:function addIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function delIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
旧版本信息:|类名:sim;
方法or属性:function delIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function updateIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
旧版本信息:|类名:sim;
方法or属性:function updateIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function getLockState(slotId: number, lockType: LockType): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getLockState(slotId: number, lockType: LockType): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function sendEnvelopeCmd(slotId: number, cmd: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function sendEnvelopeCmd(slotId: number, cmd: string): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function sendTerminalResponseCmd(slotId: number, cmd: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function sendTerminalResponseCmd(slotId: number, cmd: string): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sim;
方法or属性:function unlockSimLock(slotId: number, lockInfo: PersoLockInfo): Promise\;
旧版本信息:|类名:sim;
方法or属性:function unlockSimLock(slotId: number, lockInfo: PersoLockInfo): Promise\;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfig;
方法or属性:field: string;
旧版本信息:|类名:OperatorConfig;
方法or属性:field: string;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfig;
方法or属性:value: string;
旧版本信息:|类名:OperatorConfig;
方法or属性:value: string;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:IccAccountInfo;
方法or属性:simId: number;
旧版本信息:|类名:IccAccountInfo;
方法or属性:simId: number;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:IccAccountInfo;
方法or属性:slotIndex: number;
旧版本信息:|类名:IccAccountInfo;
方法or属性:slotIndex: number;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:IccAccountInfo;
方法or属性:isEsim: boolean;
旧版本信息:|类名:IccAccountInfo;
方法or属性:isEsim: boolean;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:IccAccountInfo;
方法or属性:isActive: boolean;
旧版本信息:|类名:IccAccountInfo;
方法or属性:isActive: boolean;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:IccAccountInfo;
方法or属性:iccId: string;
旧版本信息:|类名:IccAccountInfo;
方法or属性:iccId: string;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:IccAccountInfo;
方法or属性:showName: string;
旧版本信息:|类名:IccAccountInfo;
方法or属性:showName: string;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:IccAccountInfo;
方法or属性:showNumber: string;
旧版本信息:|类名:IccAccountInfo;
方法or属性:showNumber: string;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:LockStatusResponse;
方法or属性:result: number;
旧版本信息:|类名:LockStatusResponse;
方法or属性:result: number;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:LockStatusResponse;
方法or属性:remain?: number;
旧版本信息:|类名:LockStatusResponse;
方法or属性:remain?: number;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:DiallingNumbersInfo;
方法or属性:alphaTag: string;
旧版本信息:|类名:DiallingNumbersInfo;
方法or属性:alphaTag: string;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:DiallingNumbersInfo;
方法or属性:number: string;
旧版本信息:|类名:DiallingNumbersInfo;
方法or属性:number: string;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:DiallingNumbersInfo;
方法or属性:recordNumber?: number;
旧版本信息:|类名:DiallingNumbersInfo;
方法or属性:recordNumber?: number;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:DiallingNumbersInfo;
方法or属性:pin2?: string;
旧版本信息:|类名:DiallingNumbersInfo;
方法or属性:pin2?: string;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:LockInfo;
方法or属性:lockType: LockType;
旧版本信息:|类名:LockInfo;
方法or属性:lockType: LockType;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:LockInfo;
方法or属性:password: string;
旧版本信息:|类名:LockInfo;
方法or属性:password: string;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:PersoLockInfo;
方法or属性:password: string;
旧版本信息:|类名:PersoLockInfo;
方法or属性:password: string;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:LockInfo;
方法or属性:state: LockState;
旧版本信息:|类名:LockInfo;
方法or属性:state: LockState;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:PersoLockInfo;
方法or属性:lockType: PersoLockType;
旧版本信息:|类名:PersoLockInfo;
方法or属性:lockType: PersoLockType;
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:LockType;
方法or属性:PIN_LOCK = 1
旧版本信息:|类名:LockType;
方法or属性:PIN_LOCK = 1
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:LockType;
方法or属性:FDN_LOCK = 2
旧版本信息:|类名:LockType;
方法or属性:FDN_LOCK = 2
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:LockState;
方法or属性:LOCK_OFF = 0
旧版本信息:|类名:LockState;
方法or属性:LOCK_OFF = 0
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:LockState;
方法or属性:LOCK_ON = 1
旧版本信息:|类名:LockState;
方法or属性:LOCK_ON = 1
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:ContactType;
方法or属性:GENERAL_CONTACT = 1
旧版本信息:|类名:ContactType;
方法or属性:GENERAL_CONTACT = 1
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:ContactType;
方法or属性:FIXED_DIALING = 2
旧版本信息:|类名:ContactType;
方法or属性:FIXED_DIALING = 2
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:PersoLockType;
方法or属性:PN_PIN_LOCK
旧版本信息:|类名:PersoLockType;
方法or属性:PN_PIN_LOCK
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:PersoLockType;
方法or属性:PN_PUK_LOCK
旧版本信息:|类名:PersoLockType;
方法or属性:PN_PUK_LOCK
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:PersoLockType;
方法or属性:PU_PIN_LOCK
旧版本信息:|类名:PersoLockType;
方法or属性:PU_PIN_LOCK
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:PersoLockType;
方法or属性:PU_PUK_LOCK
旧版本信息:|类名:PersoLockType;
方法or属性:PU_PUK_LOCK
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:PersoLockType;
方法or属性:PP_PIN_LOCK
旧版本信息:|类名:PersoLockType;
方法or属性:PP_PIN_LOCK
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:PersoLockType;
方法or属性:PP_PUK_LOCK
旧版本信息:|类名:PersoLockType;
方法or属性:PP_PUK_LOCK
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:PersoLockType;
方法or属性:PC_PIN_LOCK
旧版本信息:|类名:PersoLockType;
方法or属性:PC_PIN_LOCK
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:PersoLockType;
方法or属性:PC_PUK_LOCK
旧版本信息:|类名:PersoLockType;
方法or属性:PC_PUK_LOCK
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:PersoLockType;
方法or属性:SIM_PIN_LOCK
旧版本信息:|类名:PersoLockType;
方法or属性:SIM_PIN_LOCK
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:PersoLockType;
方法or属性:SIM_PUK_LOCK
旧版本信息:|类名:PersoLockType;
方法or属性:SIM_PUK_LOCK
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_VOICE_MAIL_NUMBER_STRING = "voice_mail_number_string"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_VOICE_MAIL_NUMBER_STRING = "voice_mail_number_string"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_IMS_SWITCH_ON_BY_DEFAULT_BOOL = "ims_switch_on_by_default_bool"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_IMS_SWITCH_ON_BY_DEFAULT_BOOL = "ims_switch_on_by_default_bool"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_HIDE_IMS_SWITCH_BOOL = "hide_ims_switch_bool"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_HIDE_IMS_SWITCH_BOOL = "hide_ims_switch_bool"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_VOLTE_SUPPORTED_BOOL = "volte_supported_bool"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_VOLTE_SUPPORTED_BOOL = "volte_supported_bool"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_NR_MODE_SUPPORTED_LIST_INT_ARRAY = "nr_mode_supported_list_int_array"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_NR_MODE_SUPPORTED_LIST_INT_ARRAY = "nr_mode_supported_list_int_array"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_VOLTE_PROVISIONING_SUPPORTED_BOOL = "volte_provisioning_supported_bool"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_VOLTE_PROVISIONING_SUPPORTED_BOOL = "volte_provisioning_supported_bool"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_SS_OVER_UT_SUPPORTED_BOOL = "ss_over_ut_supported_bool"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_SS_OVER_UT_SUPPORTED_BOOL = "ss_over_ut_supported_bool"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_IMS_GBA_REQUIRED_BOOL = "ims_gba_required_bool"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_IMS_GBA_REQUIRED_BOOL = "ims_gba_required_bool"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_UT_PROVISIONING_SUPPORTED_BOOL = "ut_provisioning_supported_bool"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_UT_PROVISIONING_SUPPORTED_BOOL = "ut_provisioning_supported_bool"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_IMS_PREFER_FOR_EMERGENCY_BOOL = "ims_prefer_for_emergency_bool"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_IMS_PREFER_FOR_EMERGENCY_BOOL = "ims_prefer_for_emergency_bool"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_CALL_WAITING_SERVICE_CLASS_INT = "call_waiting_service_class_int"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_CALL_WAITING_SERVICE_CLASS_INT = "call_waiting_service_class_int"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_CALL_TRANSFER_VISIBILITY_BOOL = "call_transfer_visibility_bool"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_CALL_TRANSFER_VISIBILITY_BOOL = "call_transfer_visibility_bool"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_IMS_CALL_DISCONNECT_REASON_INFO_MAPPING_STRING_ARRAY =
"ims_call_disconnect_reason_info_mapping_string_array"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_IMS_CALL_DISCONNECT_REASON_INFO_MAPPING_STRING_ARRAY =
"ims_call_disconnect_reason_info_mapping_string_array"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_FORCE_VOLTE_SWITCH_ON_BOOL = "force_volte_switch_on_bool"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_FORCE_VOLTE_SWITCH_ON_BOOL = "force_volte_switch_on_bool"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_ENABLE_OPERATOR_NAME_CUST_BOOL = "enable_operator_name_cust_bool"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_ENABLE_OPERATOR_NAME_CUST_BOOL = "enable_operator_name_cust_bool"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_OPERATOR_NAME_CUST_STRING = "operator_name_cust_string"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_OPERATOR_NAME_CUST_STRING = "operator_name_cust_string"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_SPN_DISPLAY_CONDITION_CUST_INT = "spn_display_condition_cust_int"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_SPN_DISPLAY_CONDITION_CUST_INT = "spn_display_condition_cust_int"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_PNN_CUST_STRING_ARRAY = "pnn_cust_string_array"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_PNN_CUST_STRING_ARRAY = "pnn_cust_string_array"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_OPL_CUST_STRING_ARRAY = "opl_cust_string_array"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_OPL_CUST_STRING_ARRAY = "opl_cust_string_array"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:OperatorConfigKey;
方法or属性:KEY_EMERGENCY_CALL_STRING_ARRAY = "emergency_call_string_array"
旧版本信息:|类名:OperatorConfigKey;
方法or属性:KEY_EMERGENCY_CALL_STRING_ARRAY = "emergency_call_string_array"
新版本信息:systemapi|@ohos.telephony.sim.d.ts| +|访问级别有变化|类名:sms;
方法or属性:function splitMessage(content: string): Promise\>;
旧版本信息:|类名:sms;
方法or属性:function splitMessage(content: string): Promise\>;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:sms;
方法or属性:function setDefaultSmsSlotId(slotId: number): Promise\;
旧版本信息:|类名:sms;
方法or属性:function setDefaultSmsSlotId(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:sms;
方法or属性:function setSmscAddr(slotId: number, smscAddr: string): Promise\;
旧版本信息:|类名:sms;
方法or属性:function setSmscAddr(slotId: number, smscAddr: string): Promise\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:sms;
方法or属性:function getSmscAddr(slotId: number): Promise\;
旧版本信息:|类名:sms;
方法or属性:function getSmscAddr(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:sms;
方法or属性:function addSimMessage(options: SimMessageOptions): Promise\;
旧版本信息:|类名:sms;
方法or属性:function addSimMessage(options: SimMessageOptions): Promise\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:sms;
方法or属性:function delSimMessage(slotId: number, msgIndex: number): Promise\;
旧版本信息:|类名:sms;
方法or属性:function delSimMessage(slotId: number, msgIndex: number): Promise\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:sms;
方法or属性:function updateSimMessage(options: UpdateSimMessageOptions): Promise\;
旧版本信息:|类名:sms;
方法or属性:function updateSimMessage(options: UpdateSimMessageOptions): Promise\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:sms;
方法or属性:function getAllSimMessages(slotId: number): Promise\>;
旧版本信息:|类名:sms;
方法or属性:function getAllSimMessages(slotId: number): Promise\>;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:sms;
方法or属性:function setCBConfig(options: CBConfigOptions): Promise\;
旧版本信息:|类名:sms;
方法or属性:function setCBConfig(options: CBConfigOptions): Promise\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:sms;
方法or属性:function getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean): Promise\;
旧版本信息:|类名:sms;
方法or属性:function getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean): Promise\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:sms;
方法or属性:function isImsSmsSupported(slotId: number): Promise\;
旧版本信息:|类名:sms;
方法or属性:function isImsSmsSupported(slotId: number): Promise\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:sms;
方法or属性:function getImsShortMessageFormat(): Promise\;
旧版本信息:|类名:sms;
方法or属性:function getImsShortMessageFormat(): Promise\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:sms;
方法or属性:function decodeMms(mmsFilePathName: string \| Array\): Promise\;
旧版本信息:|类名:sms;
方法or属性:function decodeMms(mmsFilePathName: string \| Array\): Promise\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:sms;
方法or属性:function encodeMms(mms: MmsInformation): Promise\>;
旧版本信息:|类名:sms;
方法or属性:function encodeMms(mms: MmsInformation): Promise\>;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsInformation;
方法or属性:messageType: MessageType;
旧版本信息:|类名:MmsInformation;
方法or属性:messageType: MessageType;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsInformation;
方法or属性:mmsType: MmsSendReq \| MmsSendConf \| MmsNotificationInd \| MmsRespInd \| MmsRetrieveConf \| MmsAcknowledgeInd \| MmsDeliveryInd \| MmsReadOrigInd \| MmsReadRecInd;
旧版本信息:|类名:MmsInformation;
方法or属性:mmsType: MmsSendReq \| MmsSendConf \| MmsNotificationInd \| MmsRespInd \| MmsRetrieveConf \| MmsAcknowledgeInd \| MmsDeliveryInd \| MmsReadOrigInd \| MmsReadRecInd;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsInformation;
方法or属性:attachment?: Array\;
旧版本信息:|类名:MmsInformation;
方法or属性:attachment?: Array\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendReq;
方法or属性:from: MmsAddress;
旧版本信息:|类名:MmsSendReq;
方法or属性:from: MmsAddress;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsReadOrigInd;
方法or属性:from: MmsAddress;
旧版本信息:|类名:MmsReadOrigInd;
方法or属性:from: MmsAddress;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsReadRecInd;
方法or属性:from: MmsAddress;
旧版本信息:|类名:MmsReadRecInd;
方法or属性:from: MmsAddress;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendReq;
方法or属性:transactionId: string;
旧版本信息:|类名:MmsSendReq;
方法or属性:transactionId: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendConf;
方法or属性:transactionId: string;
旧版本信息:|类名:MmsSendConf;
方法or属性:transactionId: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsNotificationInd;
方法or属性:transactionId: string;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:transactionId: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRespInd;
方法or属性:transactionId: string;
旧版本信息:|类名:MmsRespInd;
方法or属性:transactionId: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRetrieveConf;
方法or属性:transactionId: string;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:transactionId: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsAcknowledgeInd;
方法or属性:transactionId: string;
旧版本信息:|类名:MmsAcknowledgeInd;
方法or属性:transactionId: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendReq;
方法or属性:contentType: string;
旧版本信息:|类名:MmsSendReq;
方法or属性:contentType: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRetrieveConf;
方法or属性:contentType: string;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:contentType: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsAttachment;
方法or属性:contentType: string;
旧版本信息:|类名:MmsAttachment;
方法or属性:contentType: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendReq;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsSendReq;
方法or属性:version: MmsVersionType;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendConf;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsSendConf;
方法or属性:version: MmsVersionType;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsNotificationInd;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:version: MmsVersionType;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRespInd;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsRespInd;
方法or属性:version: MmsVersionType;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRetrieveConf;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:version: MmsVersionType;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsAcknowledgeInd;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsAcknowledgeInd;
方法or属性:version: MmsVersionType;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsDeliveryInd;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsDeliveryInd;
方法or属性:version: MmsVersionType;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsReadOrigInd;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsReadOrigInd;
方法or属性:version: MmsVersionType;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsReadRecInd;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsReadRecInd;
方法or属性:version: MmsVersionType;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendReq;
方法or属性:to?: Array\;
旧版本信息:|类名:MmsSendReq;
方法or属性:to?: Array\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendReq;
方法or属性:date?: number;
旧版本信息:|类名:MmsSendReq;
方法or属性:date?: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsReadRecInd;
方法or属性:date?: number;
旧版本信息:|类名:MmsReadRecInd;
方法or属性:date?: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendReq;
方法or属性:cc?: Array\;
旧版本信息:|类名:MmsSendReq;
方法or属性:cc?: Array\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRetrieveConf;
方法or属性:cc?: Array\;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:cc?: Array\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendReq;
方法or属性:bcc?: Array\;
旧版本信息:|类名:MmsSendReq;
方法or属性:bcc?: Array\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendReq;
方法or属性:subject?: string;
旧版本信息:|类名:MmsSendReq;
方法or属性:subject?: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsNotificationInd;
方法or属性:subject?: string;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:subject?: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRetrieveConf;
方法or属性:subject?: string;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:subject?: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendReq;
方法or属性:messageClass?: number;
旧版本信息:|类名:MmsSendReq;
方法or属性:messageClass?: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendReq;
方法or属性:expiry?: number;
旧版本信息:|类名:MmsSendReq;
方法or属性:expiry?: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendReq;
方法or属性:priority?: MmsPriorityType;
旧版本信息:|类名:MmsSendReq;
方法or属性:priority?: MmsPriorityType;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRetrieveConf;
方法or属性:priority?: MmsPriorityType;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:priority?: MmsPriorityType;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendReq;
方法or属性:senderVisibility?: number;
旧版本信息:|类名:MmsSendReq;
方法or属性:senderVisibility?: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendReq;
方法or属性:deliveryReport?: number;
旧版本信息:|类名:MmsSendReq;
方法or属性:deliveryReport?: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsNotificationInd;
方法or属性:deliveryReport?: number;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:deliveryReport?: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRetrieveConf;
方法or属性:deliveryReport?: number;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:deliveryReport?: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendReq;
方法or属性:readReport?: number;
旧版本信息:|类名:MmsSendReq;
方法or属性:readReport?: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRetrieveConf;
方法or属性:readReport?: number;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:readReport?: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendConf;
方法or属性:responseState: number;
旧版本信息:|类名:MmsSendConf;
方法or属性:responseState: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsSendConf;
方法or属性:messageId?: string;
旧版本信息:|类名:MmsSendConf;
方法or属性:messageId?: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsNotificationInd;
方法or属性:messageClass: number;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:messageClass: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsNotificationInd;
方法or属性:messageSize: number;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:messageSize: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsNotificationInd;
方法or属性:expiry: number;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:expiry: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsNotificationInd;
方法or属性:contentLocation: string;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:contentLocation: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsAttachment;
方法or属性:contentLocation: string;
旧版本信息:|类名:MmsAttachment;
方法or属性:contentLocation: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsNotificationInd;
方法or属性:from?: MmsAddress;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:from?: MmsAddress;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRetrieveConf;
方法or属性:from?: MmsAddress;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:from?: MmsAddress;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsNotificationInd;
方法or属性:contentClass?: number;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:contentClass?: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRespInd;
方法or属性:status: number;
旧版本信息:|类名:MmsRespInd;
方法or属性:status: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsDeliveryInd;
方法or属性:status: number;
旧版本信息:|类名:MmsDeliveryInd;
方法or属性:status: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRespInd;
方法or属性:reportAllowed?: ReportType;
旧版本信息:|类名:MmsRespInd;
方法or属性:reportAllowed?: ReportType;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsAcknowledgeInd;
方法or属性:reportAllowed?: ReportType;
旧版本信息:|类名:MmsAcknowledgeInd;
方法or属性:reportAllowed?: ReportType;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRetrieveConf;
方法or属性:messageId: string;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:messageId: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsDeliveryInd;
方法or属性:messageId: string;
旧版本信息:|类名:MmsDeliveryInd;
方法or属性:messageId: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsReadOrigInd;
方法or属性:messageId: string;
旧版本信息:|类名:MmsReadOrigInd;
方法or属性:messageId: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsReadRecInd;
方法or属性:messageId: string;
旧版本信息:|类名:MmsReadRecInd;
方法or属性:messageId: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRetrieveConf;
方法or属性:date: number;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:date: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsDeliveryInd;
方法or属性:date: number;
旧版本信息:|类名:MmsDeliveryInd;
方法or属性:date: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsReadOrigInd;
方法or属性:date: number;
旧版本信息:|类名:MmsReadOrigInd;
方法or属性:date: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRetrieveConf;
方法or属性:to: Array\;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:to: Array\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsDeliveryInd;
方法or属性:to: Array\;
旧版本信息:|类名:MmsDeliveryInd;
方法or属性:to: Array\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsReadOrigInd;
方法or属性:to: Array\;
旧版本信息:|类名:MmsReadOrigInd;
方法or属性:to: Array\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsReadRecInd;
方法or属性:to: Array\;
旧版本信息:|类名:MmsReadRecInd;
方法or属性:to: Array\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRetrieveConf;
方法or属性:retrieveStatus?: number;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:retrieveStatus?: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsRetrieveConf;
方法or属性:retrieveText?: string;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:retrieveText?: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsReadOrigInd;
方法or属性:readStatus: number;
旧版本信息:|类名:MmsReadOrigInd;
方法or属性:readStatus: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsReadRecInd;
方法or属性:readStatus: number;
旧版本信息:|类名:MmsReadRecInd;
方法or属性:readStatus: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsAttachment;
方法or属性:contentId: string;
旧版本信息:|类名:MmsAttachment;
方法or属性:contentId: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsAttachment;
方法or属性:contentDisposition: DispositionType;
旧版本信息:|类名:MmsAttachment;
方法or属性:contentDisposition: DispositionType;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsAttachment;
方法or属性:contentTransferEncoding: string;
旧版本信息:|类名:MmsAttachment;
方法or属性:contentTransferEncoding: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsAttachment;
方法or属性:isSmil: boolean;
旧版本信息:|类名:MmsAttachment;
方法or属性:isSmil: boolean;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsAttachment;
方法or属性:path?: string;
旧版本信息:|类名:MmsAttachment;
方法or属性:path?: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsAttachment;
方法or属性:inBuff?: Array\;
旧版本信息:|类名:MmsAttachment;
方法or属性:inBuff?: Array\;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsAttachment;
方法or属性:fileName?: string;
旧版本信息:|类名:MmsAttachment;
方法or属性:fileName?: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsAttachment;
方法or属性:charset?: MmsCharSets;
旧版本信息:|类名:MmsAttachment;
方法or属性:charset?: MmsCharSets;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsAddress;
方法or属性:address: string;
旧版本信息:|类名:MmsAddress;
方法or属性:address: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsAddress;
方法or属性:charset: MmsCharSets;
旧版本信息:|类名:MmsAddress;
方法or属性:charset: MmsCharSets;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MessageType;
方法or属性:TYPE_MMS_SEND_REQ = 128
旧版本信息:|类名:MessageType;
方法or属性:TYPE_MMS_SEND_REQ = 128
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MessageType;
方法or属性:TYPE_MMS_SEND_CONF
旧版本信息:|类名:MessageType;
方法or属性:TYPE_MMS_SEND_CONF
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MessageType;
方法or属性:TYPE_MMS_NOTIFICATION_IND
旧版本信息:|类名:MessageType;
方法or属性:TYPE_MMS_NOTIFICATION_IND
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MessageType;
方法or属性:TYPE_MMS_RESP_IND
旧版本信息:|类名:MessageType;
方法or属性:TYPE_MMS_RESP_IND
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MessageType;
方法or属性:TYPE_MMS_RETRIEVE_CONF
旧版本信息:|类名:MessageType;
方法or属性:TYPE_MMS_RETRIEVE_CONF
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MessageType;
方法or属性:TYPE_MMS_ACKNOWLEDGE_IND
旧版本信息:|类名:MessageType;
方法or属性:TYPE_MMS_ACKNOWLEDGE_IND
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MessageType;
方法or属性:TYPE_MMS_DELIVERY_IND
旧版本信息:|类名:MessageType;
方法or属性:TYPE_MMS_DELIVERY_IND
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MessageType;
方法or属性:TYPE_MMS_READ_REC_IND
旧版本信息:|类名:MessageType;
方法or属性:TYPE_MMS_READ_REC_IND
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MessageType;
方法or属性:TYPE_MMS_READ_ORIG_IND
旧版本信息:|类名:MessageType;
方法or属性:TYPE_MMS_READ_ORIG_IND
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsPriorityType;
方法or属性:MMS_LOW = 128
旧版本信息:|类名:MmsPriorityType;
方法or属性:MMS_LOW = 128
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsPriorityType;
方法or属性:MMS_NORMAL
旧版本信息:|类名:MmsPriorityType;
方法or属性:MMS_NORMAL
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsPriorityType;
方法or属性:MMS_HIGH
旧版本信息:|类名:MmsPriorityType;
方法or属性:MMS_HIGH
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsVersionType;
方法or属性:MMS_VERSION_1_0 = 0x10
旧版本信息:|类名:MmsVersionType;
方法or属性:MMS_VERSION_1_0 = 0x10
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsVersionType;
方法or属性:MMS_VERSION_1_1
旧版本信息:|类名:MmsVersionType;
方法or属性:MMS_VERSION_1_1
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsVersionType;
方法or属性:MMS_VERSION_1_2
旧版本信息:|类名:MmsVersionType;
方法or属性:MMS_VERSION_1_2
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsVersionType;
方法or属性:MMS_VERSION_1_3
旧版本信息:|类名:MmsVersionType;
方法or属性:MMS_VERSION_1_3
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsCharSets;
方法or属性:BIG5 = 0X07EA
旧版本信息:|类名:MmsCharSets;
方法or属性:BIG5 = 0X07EA
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsCharSets;
方法or属性:ISO_10646_UCS_2 = 0X03E8
旧版本信息:|类名:MmsCharSets;
方法or属性:ISO_10646_UCS_2 = 0X03E8
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsCharSets;
方法or属性:ISO_8859_1 = 0X04
旧版本信息:|类名:MmsCharSets;
方法or属性:ISO_8859_1 = 0X04
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsCharSets;
方法or属性:ISO_8859_2
旧版本信息:|类名:MmsCharSets;
方法or属性:ISO_8859_2
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsCharSets;
方法or属性:ISO_8859_3
旧版本信息:|类名:MmsCharSets;
方法or属性:ISO_8859_3
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsCharSets;
方法or属性:ISO_8859_4
旧版本信息:|类名:MmsCharSets;
方法or属性:ISO_8859_4
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsCharSets;
方法or属性:ISO_8859_5
旧版本信息:|类名:MmsCharSets;
方法or属性:ISO_8859_5
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsCharSets;
方法or属性:ISO_8859_6
旧版本信息:|类名:MmsCharSets;
方法or属性:ISO_8859_6
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsCharSets;
方法or属性:ISO_8859_7
旧版本信息:|类名:MmsCharSets;
方法or属性:ISO_8859_7
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsCharSets;
方法or属性:ISO_8859_8
旧版本信息:|类名:MmsCharSets;
方法or属性:ISO_8859_8
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsCharSets;
方法or属性:ISO_8859_9
旧版本信息:|类名:MmsCharSets;
方法or属性:ISO_8859_9
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsCharSets;
方法or属性:SHIFT_JIS = 0X11
旧版本信息:|类名:MmsCharSets;
方法or属性:SHIFT_JIS = 0X11
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsCharSets;
方法or属性:US_ASCII = 0X03
旧版本信息:|类名:MmsCharSets;
方法or属性:US_ASCII = 0X03
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:MmsCharSets;
方法or属性:UTF_8 = 0X6A
旧版本信息:|类名:MmsCharSets;
方法or属性:UTF_8 = 0X6A
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:DispositionType;
方法or属性:FROM_DATA = 0
旧版本信息:|类名:DispositionType;
方法or属性:FROM_DATA = 0
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:DispositionType;
方法or属性:ATTACHMENT
旧版本信息:|类名:DispositionType;
方法or属性:ATTACHMENT
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:DispositionType;
方法or属性:INLINE
旧版本信息:|类名:DispositionType;
方法or属性:INLINE
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:ReportType;
方法or属性:MMS_YES = 128
旧版本信息:|类名:ReportType;
方法or属性:MMS_YES = 128
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:ReportType;
方法or属性:MMS_NO
旧版本信息:|类名:ReportType;
方法or属性:MMS_NO
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:CBConfigOptions;
方法or属性:slotId: number;
旧版本信息:|类名:CBConfigOptions;
方法or属性:slotId: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SimMessageOptions;
方法or属性:slotId: number;
旧版本信息:|类名:SimMessageOptions;
方法or属性:slotId: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:UpdateSimMessageOptions;
方法or属性:slotId: number;
旧版本信息:|类名:UpdateSimMessageOptions;
方法or属性:slotId: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:CBConfigOptions;
方法or属性:enable: boolean;
旧版本信息:|类名:CBConfigOptions;
方法or属性:enable: boolean;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:CBConfigOptions;
方法or属性:startMessageId: number;
旧版本信息:|类名:CBConfigOptions;
方法or属性:startMessageId: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:CBConfigOptions;
方法or属性:endMessageId: number;
旧版本信息:|类名:CBConfigOptions;
方法or属性:endMessageId: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:CBConfigOptions;
方法or属性:ranType: RanType;
旧版本信息:|类名:CBConfigOptions;
方法or属性:ranType: RanType;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SimMessageOptions;
方法or属性:smsc: string;
旧版本信息:|类名:SimMessageOptions;
方法or属性:smsc: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:UpdateSimMessageOptions;
方法or属性:smsc: string;
旧版本信息:|类名:UpdateSimMessageOptions;
方法or属性:smsc: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SimMessageOptions;
方法or属性:pdu: string;
旧版本信息:|类名:SimMessageOptions;
方法or属性:pdu: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:UpdateSimMessageOptions;
方法or属性:pdu: string;
旧版本信息:|类名:UpdateSimMessageOptions;
方法or属性:pdu: string;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SimMessageOptions;
方法or属性:status: SimMessageStatus;
旧版本信息:|类名:SimMessageOptions;
方法or属性:status: SimMessageStatus;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:UpdateSimMessageOptions;
方法or属性:msgIndex: number;
旧版本信息:|类名:UpdateSimMessageOptions;
方法or属性:msgIndex: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:UpdateSimMessageOptions;
方法or属性:newStatus: SimMessageStatus;
旧版本信息:|类名:UpdateSimMessageOptions;
方法or属性:newStatus: SimMessageStatus;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SimShortMessage;
方法or属性:shortMessage: ShortMessage;
旧版本信息:|类名:SimShortMessage;
方法or属性:shortMessage: ShortMessage;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SimShortMessage;
方法or属性:simMessageStatus: SimMessageStatus;
旧版本信息:|类名:SimShortMessage;
方法or属性:simMessageStatus: SimMessageStatus;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SimShortMessage;
方法or属性:indexOnSim: number;
旧版本信息:|类名:SimShortMessage;
方法or属性:indexOnSim: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SimMessageStatus;
方法or属性:SIM_MESSAGE_STATUS_FREE = 0
旧版本信息:|类名:SimMessageStatus;
方法or属性:SIM_MESSAGE_STATUS_FREE = 0
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SimMessageStatus;
方法or属性:SIM_MESSAGE_STATUS_READ = 1
旧版本信息:|类名:SimMessageStatus;
方法or属性:SIM_MESSAGE_STATUS_READ = 1
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SimMessageStatus;
方法or属性:SIM_MESSAGE_STATUS_UNREAD = 3
旧版本信息:|类名:SimMessageStatus;
方法or属性:SIM_MESSAGE_STATUS_UNREAD = 3
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SimMessageStatus;
方法or属性:SIM_MESSAGE_STATUS_SENT = 5
旧版本信息:|类名:SimMessageStatus;
方法or属性:SIM_MESSAGE_STATUS_SENT = 5
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SimMessageStatus;
方法or属性:SIM_MESSAGE_STATUS_UNSENT = 7
旧版本信息:|类名:SimMessageStatus;
方法or属性:SIM_MESSAGE_STATUS_UNSENT = 7
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:RanType;
方法or属性:TYPE_GSM = 1
旧版本信息:|类名:RanType;
方法or属性:TYPE_GSM = 1
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:RanType;
方法or属性:TYPE_CDMA = 2
旧版本信息:|类名:RanType;
方法or属性:TYPE_CDMA = 2
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SmsSegmentsInfo;
方法or属性:splitCount: number;
旧版本信息:|类名:SmsSegmentsInfo;
方法or属性:splitCount: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SmsSegmentsInfo;
方法or属性:encodeCount: number;
旧版本信息:|类名:SmsSegmentsInfo;
方法or属性:encodeCount: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SmsSegmentsInfo;
方法or属性:encodeCountRemaining: number;
旧版本信息:|类名:SmsSegmentsInfo;
方法or属性:encodeCountRemaining: number;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SmsSegmentsInfo;
方法or属性:scheme: SmsEncodingScheme;
旧版本信息:|类名:SmsSegmentsInfo;
方法or属性:scheme: SmsEncodingScheme;
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SmsEncodingScheme;
方法or属性:SMS_ENCODING_UNKNOWN = 0
旧版本信息:|类名:SmsEncodingScheme;
方法or属性:SMS_ENCODING_UNKNOWN = 0
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SmsEncodingScheme;
方法or属性:SMS_ENCODING_7BIT
旧版本信息:|类名:SmsEncodingScheme;
方法or属性:SMS_ENCODING_7BIT
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SmsEncodingScheme;
方法or属性:SMS_ENCODING_8BIT
旧版本信息:|类名:SmsEncodingScheme;
方法or属性:SMS_ENCODING_8BIT
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|访问级别有变化|类名:SmsEncodingScheme;
方法or属性:SMS_ENCODING_16BIT
旧版本信息:|类名:SmsEncodingScheme;
方法or属性:SMS_ENCODING_16BIT
新版本信息:systemapi|@ohos.telephony.sms.d.ts| +|权限有变化|类名:call;
方法or属性:function dial(phoneNumber: string, options: DialOptions, callback: AsyncCallback\): void;
旧版本信息:|类名:call;
方法or属性:function dial(phoneNumber: string, options: DialOptions, callback: AsyncCallback\): void;
新版本信息:ohos.permission.PLACE_CALL|@ohos.telephony.call.d.ts| +|权限有变化|类名:call;
方法or属性:function dial(phoneNumber: string, options?: DialOptions): Promise\;
旧版本信息:|类名:call;
方法or属性:function dial(phoneNumber: string, options?: DialOptions): Promise\;
新版本信息:ohos.permission.PLACE_CALL|@ohos.telephony.call.d.ts| +|权限有变化|类名:call;
方法or属性:function muteRinger(): Promise\;
旧版本信息:|类名:call;
方法or属性:function muteRinger(): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.call.d.ts| +|权限有变化|类名:call;
方法or属性:function holdCall(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function holdCall(callId: number): Promise\;
新版本信息:ohos.permission.ANSWER_CALL|@ohos.telephony.call.d.ts| +|权限有变化|类名:call;
方法or属性:function unHoldCall(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function unHoldCall(callId: number): Promise\;
新版本信息:ohos.permission.ANSWER_CALL|@ohos.telephony.call.d.ts| +|权限有变化|类名:call;
方法or属性:function switchCall(callId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function switchCall(callId: number): Promise\;
新版本信息:ohos.permission.ANSWER_CALL|@ohos.telephony.call.d.ts| +|权限有变化|类名:call;
方法or属性:function getCallWaitingStatus(slotId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function getCallWaitingStatus(slotId: number): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.call.d.ts| +|权限有变化|类名:call;
方法or属性:function setCallWaiting(slotId: number, activate: boolean): Promise\;
旧版本信息:|类名:call;
方法or属性:function setCallWaiting(slotId: number, activate: boolean): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.call.d.ts| +|权限有变化|类名:call;
方法or属性:function isInEmergencyCall(): Promise\;
旧版本信息:|类名:call;
方法or属性:function isInEmergencyCall(): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.call.d.ts| +|权限有变化|类名:call;
方法or属性:function getCallRestrictionStatus(slotId: number, type: CallRestrictionType): Promise\;
旧版本信息:|类名:call;
方法or属性:function getCallRestrictionStatus(slotId: number, type: CallRestrictionType): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.call.d.ts| +|权限有变化|类名:call;
方法or属性:function setCallRestriction(slotId: number, info: CallRestrictionInfo): Promise\;
旧版本信息:|类名:call;
方法or属性:function setCallRestriction(slotId: number, info: CallRestrictionInfo): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.call.d.ts| +|权限有变化|类名:call;
方法or属性:function getCallTransferInfo(slotId: number, type: CallTransferType): Promise\;
旧版本信息:|类名:call;
方法or属性:function getCallTransferInfo(slotId: number, type: CallTransferType): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.call.d.ts| +|权限有变化|类名:call;
方法or属性:function setCallTransfer(slotId: number, info: CallTransferInfo): Promise\;
旧版本信息:|类名:call;
方法or属性:function setCallTransfer(slotId: number, info: CallTransferInfo): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.call.d.ts| +|权限有变化|类名:call;
方法or属性:function isRinging(): Promise\;
旧版本信息:|类名:call;
方法or属性:function isRinging(): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.call.d.ts| +|权限有变化|类名:call;
方法or属性:function setAudioDevice(device: AudioDevice, callback: AsyncCallback\): void;
旧版本信息:|类名:call;
方法or属性:function setAudioDevice(device: AudioDevice, callback: AsyncCallback\): void;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.call.d.ts| +|权限有变化|类名:call;
方法or属性:function enableImsSwitch(slotId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function enableImsSwitch(slotId: number): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.call.d.ts| +|权限有变化|类名:call;
方法or属性:function disableImsSwitch(slotId: number): Promise\;
旧版本信息:|类名:call;
方法or属性:function disableImsSwitch(slotId: number): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.call.d.ts| +|权限有变化|类名:data;
方法or属性:function setDefaultCellularDataSlotId(slotId: number): Promise\;
旧版本信息:|类名:data;
方法or属性:function setDefaultCellularDataSlotId(slotId: number): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.data.d.ts| +|权限有变化|类名:data;
方法or属性:function isCellularDataEnabled(): Promise\;
旧版本信息:|类名:data;
方法or属性:function isCellularDataEnabled(): Promise\;
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.telephony.data.d.ts| +|权限有变化|类名:data;
方法or属性:function enableCellularData(): Promise\;
旧版本信息:|类名:data;
方法or属性:function enableCellularData(): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.data.d.ts| +|权限有变化|类名:data;
方法or属性:function disableCellularData(): Promise\;
旧版本信息:|类名:data;
方法or属性:function disableCellularData(): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.data.d.ts| +|权限有变化|类名:data;
方法or属性:function isCellularDataRoamingEnabled(slotId: number): Promise\;
旧版本信息:|类名:data;
方法or属性:function isCellularDataRoamingEnabled(slotId: number): Promise\;
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.telephony.data.d.ts| +|权限有变化|类名:data;
方法or属性:function enableCellularDataRoaming(slotId: number): Promise\;
旧版本信息:|类名:data;
方法or属性:function enableCellularDataRoaming(slotId: number): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.data.d.ts| +|权限有变化|类名:data;
方法or属性:function disableCellularDataRoaming(slotId: number): Promise\;
旧版本信息:|类名:data;
方法or属性:function disableCellularDataRoaming(slotId: number): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.data.d.ts| +|权限有变化|类名:observer;
方法or属性:function on(type: 'networkStateChange', options: { slotId: number }, callback: Callback\): void;
旧版本信息:|类名:observer;
方法or属性:function on(type: 'networkStateChange', options: { slotId: number }, callback: Callback\): void;
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.telephony.observer.d.ts| +|权限有变化|类名:observer;
方法or属性:function on(type: 'cellInfoChange', options: { slotId: number }, callback: Callback\>): void;
旧版本信息:|类名:observer;
方法or属性:function on(type: 'cellInfoChange', options: { slotId: number }, callback: Callback\>): void;
新版本信息:ohos.permission.LOCATION,ohos.permission.APPROXIMATELY_LOCATION|@ohos.telephony.observer.d.ts| +|权限有变化|类名:radio;
方法or属性:function getRadioTech(slotId: number): Promise\<{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology}>;
旧版本信息:|类名:radio;
方法or属性:function getRadioTech(slotId: number): Promise\<{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology}>;
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function getNetworkState(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function getNetworkState(slotId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function getNetworkState(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getNetworkState(slotId?: number): Promise\;
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function sendUpdateCellLocationRequest(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function sendUpdateCellLocationRequest(slotId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.LOCATION,ohos.permission.APPROXIMATELY_LOCATION|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function getCellInformation(slotId: number, callback: AsyncCallback\>): void;
旧版本信息:|类名:radio;
方法or属性:function getCellInformation(slotId: number, callback: AsyncCallback\>): void;
新版本信息:ohos.permission.LOCATION,ohos.permission.APPROXIMATELY_LOCATION|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function getCellInformation(slotId?: number): Promise\>;
旧版本信息:|类名:radio;
方法or属性:function getCellInformation(slotId?: number): Promise\>;
新版本信息:ohos.permission.LOCATION,ohos.permission.APPROXIMATELY_LOCATION|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function setNetworkSelectionMode(options: NetworkSelectionModeOptions): Promise\;
旧版本信息:|类名:radio;
方法or属性:function setNetworkSelectionMode(options: NetworkSelectionModeOptions): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function getNetworkSearchInformation(slotId: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getNetworkSearchInformation(slotId: number): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function getIMEI(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function getIMEI(slotId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function getIMEI(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getIMEI(slotId?: number): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function getMEID(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function getMEID(slotId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function getMEID(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getMEID(slotId?: number): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function getUniqueDeviceId(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function getUniqueDeviceId(slotId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function getUniqueDeviceId(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getUniqueDeviceId(slotId?: number): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function setPrimarySlotId(slotId: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function setPrimarySlotId(slotId: number): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function isRadioOn(slotId: number, callback: AsyncCallback\): void
旧版本信息:|类名:radio;
方法or属性:function isRadioOn(slotId: number, callback: AsyncCallback\): void
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function isRadioOn(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function isRadioOn(slotId?: number): Promise\;
新版本信息:ohos.permission.GET_NETWORK_INFO|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function turnOnRadio(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function turnOnRadio(slotId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function turnOnRadio(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function turnOnRadio(slotId?: number): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function turnOffRadio(slotId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:radio;
方法or属性:function turnOffRadio(slotId: number, callback: AsyncCallback\): void;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function turnOffRadio(slotId?: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function turnOffRadio(slotId?: number): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function setPreferredNetwork(slotId: number, networkMode: PreferredNetworkMode): Promise\;
旧版本信息:|类名:radio;
方法or属性:function setPreferredNetwork(slotId: number, networkMode: PreferredNetworkMode): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function getPreferredNetwork(slotId: number): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getPreferredNetwork(slotId: number): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.radio.d.ts| +|权限有变化|类名:radio;
方法or属性:function getImsRegInfo(slotId: number, imsType: ImsServiceType): Promise\;
旧版本信息:|类名:radio;
方法or属性:function getImsRegInfo(slotId: number, imsType: ImsServiceType): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.radio.d.ts| +|权限有变化|类名:sim;
方法or属性:function getSimIccId(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getSimIccId(slotId: number): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function getVoiceMailIdentifier(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getVoiceMailIdentifier(slotId: number): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function getVoiceMailNumber(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getVoiceMailNumber(slotId: number): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function setVoiceMailInfo(slotId: number, mailName: string, mailNumber: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function setVoiceMailInfo(slotId: number, mailName: string, mailNumber: string): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function getSimTelephoneNumber(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getSimTelephoneNumber(slotId: number): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function getSimGid1(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getSimGid1(slotId: number): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function getIMSI(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getIMSI(slotId: number): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function getSimAccountInfo(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getSimAccountInfo(slotId: number): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function getActiveSimAccountInfoList(): Promise\>;
旧版本信息:|类名:sim;
方法or属性:function getActiveSimAccountInfoList(): Promise\>;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function setDefaultVoiceSlotId(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function setDefaultVoiceSlotId(slotId: number): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function activateSim(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function activateSim(slotId: number): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function deactivateSim(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function deactivateSim(slotId: number): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function setShowName(slotId: number, name: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function setShowName(slotId: number, name: string): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function getShowName(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getShowName(slotId: number): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function setShowNumber(slotId: number, number: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function setShowNumber(slotId: number, number: string): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function getShowNumber(slotId: number): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getShowNumber(slotId: number): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function getOperatorConfigs(slotId: number): Promise\>;
旧版本信息:|类名:sim;
方法or属性:function getOperatorConfigs(slotId: number): Promise\>;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function unlockPin(slotId: number, pin: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function unlockPin(slotId: number, pin: string): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function unlockPuk(slotId: number, newPin: string, puk: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function unlockPuk(slotId: number, newPin: string, puk: string): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function alterPin(slotId: number, newPin: string, oldPin: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function alterPin(slotId: number, newPin: string, oldPin: string): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function setLockState(slotId: number, options: LockInfo): Promise\;
旧版本信息:|类名:sim;
方法or属性:function setLockState(slotId: number, options: LockInfo): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function unlockPin2(slotId: number, pin2: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function unlockPin2(slotId: number, pin2: string): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function unlockPuk2(slotId: number, newPin2: string, puk2: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function unlockPuk2(slotId: number, newPin2: string, puk2: string): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function alterPin2(slotId: number, newPin2: string, oldPin2: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function alterPin2(slotId: number, newPin2: string, oldPin2: string): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function queryIccDiallingNumbers(slotId: number, type: ContactType): Promise\>;
旧版本信息:|类名:sim;
方法or属性:function queryIccDiallingNumbers(slotId: number, type: ContactType): Promise\>;
新版本信息:ohos.permission.READ_CONTACTS|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function addIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
旧版本信息:|类名:sim;
方法or属性:function addIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
新版本信息:ohos.permission.WRITE_CONTACTS|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function delIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
旧版本信息:|类名:sim;
方法or属性:function delIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
新版本信息:ohos.permission.WRITE_CONTACTS|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function updateIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
旧版本信息:|类名:sim;
方法or属性:function updateIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise\;
新版本信息:ohos.permission.WRITE_CONTACTS|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function getLockState(slotId: number, lockType: LockType): Promise\;
旧版本信息:|类名:sim;
方法or属性:function getLockState(slotId: number, lockType: LockType): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function sendEnvelopeCmd(slotId: number, cmd: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function sendEnvelopeCmd(slotId: number, cmd: string): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function sendTerminalResponseCmd(slotId: number, cmd: string): Promise\;
旧版本信息:|类名:sim;
方法or属性:function sendTerminalResponseCmd(slotId: number, cmd: string): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sim;
方法or属性:function unlockSimLock(slotId: number, lockInfo: PersoLockInfo): Promise\;
旧版本信息:|类名:sim;
方法or属性:function unlockSimLock(slotId: number, lockInfo: PersoLockInfo): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sim.d.ts| +|权限有变化|类名:sms;
方法or属性:function splitMessage(content: string): Promise\>;
旧版本信息:|类名:sms;
方法or属性:function splitMessage(content: string): Promise\>;
新版本信息:ohos.permission.SEND_MESSAGES|@ohos.telephony.sms.d.ts| +|权限有变化|类名:sms;
方法or属性:function setDefaultSmsSlotId(slotId: number): Promise\;
旧版本信息:|类名:sms;
方法or属性:function setDefaultSmsSlotId(slotId: number): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sms.d.ts| +|权限有变化|类名:sms;
方法or属性:function setSmscAddr(slotId: number, smscAddr: string): Promise\;
旧版本信息:|类名:sms;
方法or属性:function setSmscAddr(slotId: number, smscAddr: string): Promise\;
新版本信息:ohos.permission.SET_TELEPHONY_STATE|@ohos.telephony.sms.d.ts| +|权限有变化|类名:sms;
方法or属性:function getSmscAddr(slotId: number): Promise\;
旧版本信息:|类名:sms;
方法or属性:function getSmscAddr(slotId: number): Promise\;
新版本信息:ohos.permission.GET_TELEPHONY_STATE|@ohos.telephony.sms.d.ts| +|权限有变化|类名:sms;
方法or属性:function addSimMessage(options: SimMessageOptions): Promise\;
旧版本信息:|类名:sms;
方法or属性:function addSimMessage(options: SimMessageOptions): Promise\;
新版本信息:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES|@ohos.telephony.sms.d.ts| +|权限有变化|类名:sms;
方法or属性:function delSimMessage(slotId: number, msgIndex: number): Promise\;
旧版本信息:|类名:sms;
方法or属性:function delSimMessage(slotId: number, msgIndex: number): Promise\;
新版本信息:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES|@ohos.telephony.sms.d.ts| +|权限有变化|类名:sms;
方法or属性:function updateSimMessage(options: UpdateSimMessageOptions): Promise\;
旧版本信息:|类名:sms;
方法or属性:function updateSimMessage(options: UpdateSimMessageOptions): Promise\;
新版本信息:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES|@ohos.telephony.sms.d.ts| +|权限有变化|类名:sms;
方法or属性:function getAllSimMessages(slotId: number): Promise\>;
旧版本信息:|类名:sms;
方法or属性:function getAllSimMessages(slotId: number): Promise\>;
新版本信息:ohos.permission.RECEIVE_SMS|@ohos.telephony.sms.d.ts| +|权限有变化|类名:sms;
方法or属性:function setCBConfig(options: CBConfigOptions): Promise\;
旧版本信息:|类名:sms;
方法or属性:function setCBConfig(options: CBConfigOptions): Promise\;
新版本信息:ohos.permission.RECEIVE_SMS|@ohos.telephony.sms.d.ts| +|type有变化|类名:AudioDeviceInfo;
方法or属性:audioDeviceList: Array\;
旧版本信息:|类名:AudioDeviceInfo;
方法or属性:audioDeviceList: Array\;
新版本信息:Array\|@ohos.telephony.call.d.ts| +|type有变化|类名:AudioDeviceInfo;
方法or属性:currentAudioDevice: AudioDevice;
旧版本信息:|类名:AudioDeviceInfo;
方法or属性:currentAudioDevice: AudioDevice;
新版本信息:AudioDevice|@ohos.telephony.call.d.ts| +|type有变化|类名:AudioDeviceInfo;
方法or属性:isMuted: boolean;
旧版本信息:|类名:AudioDeviceInfo;
方法or属性:isMuted: boolean;
新版本信息:boolean|@ohos.telephony.call.d.ts| +|type有变化|类名:CallTransferInfo;
方法or属性:transferNum: string;
旧版本信息:|类名:CallTransferInfo;
方法or属性:transferNum: string;
新版本信息:string|@ohos.telephony.call.d.ts| +|type有变化|类名:CallTransferInfo;
方法or属性:type: CallTransferType;
旧版本信息:|类名:CallTransferInfo;
方法or属性:type: CallTransferType;
新版本信息:CallTransferType|@ohos.telephony.call.d.ts| +|type有变化|类名:CallTransferInfo;
方法or属性:settingType: CallTransferSettingType;
旧版本信息:|类名:CallTransferInfo;
方法or属性:settingType: CallTransferSettingType;
新版本信息:CallTransferSettingType|@ohos.telephony.call.d.ts| +|type有变化|类名:CallTransferInfo;
方法or属性:startHour?: number;
旧版本信息:|类名:CallTransferInfo;
方法or属性:startHour?: number;
新版本信息:?number|@ohos.telephony.call.d.ts| +|type有变化|类名:CallTransferInfo;
方法or属性:startMinute?: number;
旧版本信息:|类名:CallTransferInfo;
方法or属性:startMinute?: number;
新版本信息:?number|@ohos.telephony.call.d.ts| +|type有变化|类名:CallTransferInfo;
方法or属性:endHour?: number;
旧版本信息:|类名:CallTransferInfo;
方法or属性:endHour?: number;
新版本信息:?number|@ohos.telephony.call.d.ts| +|type有变化|类名:CallTransferInfo;
方法or属性:endMinute?: number;
旧版本信息:|类名:CallTransferInfo;
方法or属性:endMinute?: number;
新版本信息:?number|@ohos.telephony.call.d.ts| +|type有变化|类名:CallAttributeOptions;
方法or属性:accountNumber: string;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:accountNumber: string;
新版本信息:string|@ohos.telephony.call.d.ts| +|type有变化|类名:CallAttributeOptions;
方法or属性:speakerphoneOn: boolean;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:speakerphoneOn: boolean;
新版本信息:boolean|@ohos.telephony.call.d.ts| +|type有变化|类名:CallAttributeOptions;
方法or属性:accountId: number;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:accountId: number;
新版本信息:number|@ohos.telephony.call.d.ts| +|type有变化|类名:CallAttributeOptions;
方法or属性:videoState: VideoStateType;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:videoState: VideoStateType;
新版本信息:VideoStateType|@ohos.telephony.call.d.ts| +|type有变化|类名:CallAttributeOptions;
方法or属性:startTime: number;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:startTime: number;
新版本信息:number|@ohos.telephony.call.d.ts| +|type有变化|类名:CallAttributeOptions;
方法or属性:isEcc: boolean;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:isEcc: boolean;
新版本信息:boolean|@ohos.telephony.call.d.ts| +|type有变化|类名:CallAttributeOptions;
方法or属性:callType: CallType;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:callType: CallType;
新版本信息:CallType|@ohos.telephony.call.d.ts| +|type有变化|类名:CallAttributeOptions;
方法or属性:callId: number;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:callId: number;
新版本信息:number|@ohos.telephony.call.d.ts| +|type有变化|类名:CallAttributeOptions;
方法or属性:callState: DetailedCallState;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:callState: DetailedCallState;
新版本信息:DetailedCallState|@ohos.telephony.call.d.ts| +|type有变化|类名:CallAttributeOptions;
方法or属性:conferenceState: ConferenceState;
旧版本信息:|类名:CallAttributeOptions;
方法or属性:conferenceState: ConferenceState;
新版本信息:ConferenceState|@ohos.telephony.call.d.ts| +|type有变化|类名:CallRestrictionInfo;
方法or属性:type: CallRestrictionType;
旧版本信息:|类名:CallRestrictionInfo;
方法or属性:type: CallRestrictionType;
新版本信息:CallRestrictionType|@ohos.telephony.call.d.ts| +|type有变化|类名:CallRestrictionInfo;
方法or属性:password: string;
旧版本信息:|类名:CallRestrictionInfo;
方法or属性:password: string;
新版本信息:string|@ohos.telephony.call.d.ts| +|type有变化|类名:CallRestrictionInfo;
方法or属性:mode: CallRestrictionMode;
旧版本信息:|类名:CallRestrictionInfo;
方法or属性:mode: CallRestrictionMode;
新版本信息:CallRestrictionMode|@ohos.telephony.call.d.ts| +|type有变化|类名:CallEventOptions;
方法or属性:eventId: CallAbilityEventId,
旧版本信息:|类名:CallEventOptions;
方法or属性:eventId: CallAbilityEventId,
新版本信息:CallAbilityEventId|@ohos.telephony.call.d.ts| +|type有变化|类名:DialOptions;
方法or属性:extras?: boolean;
旧版本信息:|类名:DialOptions;
方法or属性:extras?: boolean;
新版本信息:?boolean|@ohos.telephony.call.d.ts| +|type有变化|类名:DialOptions;
方法or属性:accountId?: number;
旧版本信息:|类名:DialOptions;
方法or属性:accountId?: number;
新版本信息:?number|@ohos.telephony.call.d.ts| +|type有变化|类名:DialCallOptions;
方法or属性:accountId?: number;
旧版本信息:|类名:DialCallOptions;
方法or属性:accountId?: number;
新版本信息:?number|@ohos.telephony.call.d.ts| +|type有变化|类名:DialOptions;
方法or属性:videoState?: VideoStateType;
旧版本信息:|类名:DialOptions;
方法or属性:videoState?: VideoStateType;
新版本信息:?VideoStateType|@ohos.telephony.call.d.ts| +|type有变化|类名:DialCallOptions;
方法or属性:videoState?: VideoStateType;
旧版本信息:|类名:DialCallOptions;
方法or属性:videoState?: VideoStateType;
新版本信息:?VideoStateType|@ohos.telephony.call.d.ts| +|type有变化|类名:DialOptions;
方法or属性:dialScene?: DialScene;
旧版本信息:|类名:DialOptions;
方法or属性:dialScene?: DialScene;
新版本信息:?DialScene|@ohos.telephony.call.d.ts| +|type有变化|类名:DialCallOptions;
方法or属性:dialScene?: DialScene;
旧版本信息:|类名:DialCallOptions;
方法or属性:dialScene?: DialScene;
新版本信息:?DialScene|@ohos.telephony.call.d.ts| +|type有变化|类名:DialOptions;
方法or属性:dialType?: DialType;
旧版本信息:|类名:DialOptions;
方法or属性:dialType?: DialType;
新版本信息:?DialType|@ohos.telephony.call.d.ts| +|type有变化|类名:DialCallOptions;
方法or属性:dialType?: DialType;
旧版本信息:|类名:DialCallOptions;
方法or属性:dialType?: DialType;
新版本信息:?DialType|@ohos.telephony.call.d.ts| +|type有变化|类名:RejectMessageOptions;
方法or属性:messageContent: string;
旧版本信息:|类名:RejectMessageOptions;
方法or属性:messageContent: string;
新版本信息:string|@ohos.telephony.call.d.ts| +|type有变化|类名:CallTransferResult;
方法or属性:status: TransferStatus;
旧版本信息:|类名:CallTransferResult;
方法or属性:status: TransferStatus;
新版本信息:TransferStatus|@ohos.telephony.call.d.ts| +|type有变化|类名:CallTransferResult;
方法or属性:number: string;
旧版本信息:|类名:CallTransferResult;
方法or属性:number: string;
新版本信息:string|@ohos.telephony.call.d.ts| +|type有变化|类名:CallTransferResult;
方法or属性:startHour: number;
旧版本信息:|类名:CallTransferResult;
方法or属性:startHour: number;
新版本信息:number|@ohos.telephony.call.d.ts| +|type有变化|类名:CallTransferResult;
方法or属性:startMinute: number;
旧版本信息:|类名:CallTransferResult;
方法or属性:startMinute: number;
新版本信息:number|@ohos.telephony.call.d.ts| +|type有变化|类名:CallTransferResult;
方法or属性:endHour: number;
旧版本信息:|类名:CallTransferResult;
方法or属性:endHour: number;
新版本信息:number|@ohos.telephony.call.d.ts| +|type有变化|类名:CallTransferResult;
方法or属性:endMinute: number;
旧版本信息:|类名:CallTransferResult;
方法or属性:endMinute: number;
新版本信息:number|@ohos.telephony.call.d.ts| +|type有变化|类名:EmergencyNumberOptions;
方法or属性:slotId?: number;
旧版本信息:|类名:EmergencyNumberOptions;
方法or属性:slotId?: number;
新版本信息:?number|@ohos.telephony.call.d.ts| +|type有变化|类名:NumberFormatOptions;
方法or属性:countryCode?: string;
旧版本信息:|类名:NumberFormatOptions;
方法or属性:countryCode?: string;
新版本信息:?string|@ohos.telephony.call.d.ts| +|type有变化|类名:MmiCodeResults;
方法or属性:result: MmiCodeResult;
旧版本信息:|类名:MmiCodeResults;
方法or属性:result: MmiCodeResult;
新版本信息:MmiCodeResult|@ohos.telephony.call.d.ts| +|type有变化|类名:MmiCodeResults;
方法or属性:message: string;
旧版本信息:|类名:MmiCodeResults;
方法or属性:message: string;
新版本信息:string|@ohos.telephony.call.d.ts| +|type有变化|类名:DisconnectedDetails;
方法or属性:message: string;
旧版本信息:|类名:DisconnectedDetails;
方法or属性:message: string;
新版本信息:string|@ohos.telephony.call.d.ts| +|type有变化|类名:DisconnectedDetails;
方法or属性:reason: DisconnectedReason;
旧版本信息:|类名:DisconnectedDetails;
方法or属性:reason: DisconnectedReason;
新版本信息:DisconnectedReason|@ohos.telephony.call.d.ts| +|type有变化|类名:SimStateData;
方法or属性:type: CardType;
旧版本信息:|类名:SimStateData;
方法or属性:type: CardType;
新版本信息:CardType|@ohos.telephony.observer.d.ts| +|type有变化|类名:SimStateData;
方法or属性:state: SimState;
旧版本信息:|类名:SimStateData;
方法or属性:state: SimState;
新版本信息:SimState|@ohos.telephony.observer.d.ts| +|type有变化|类名:SimStateData;
方法or属性:reason: LockReason;
旧版本信息:|类名:SimStateData;
方法or属性:reason: LockReason;
新版本信息:LockReason|@ohos.telephony.observer.d.ts| +|type有变化|类名:SignalInformation;
方法or属性:signalType: NetworkType;
旧版本信息:|类名:SignalInformation;
方法or属性:signalType: NetworkType;
新版本信息:NetworkType|@ohos.telephony.radio.d.ts| +|type有变化|类名:SignalInformation;
方法or属性:signalLevel: number;
旧版本信息:|类名:SignalInformation;
方法or属性:signalLevel: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:SignalInformation;
方法or属性:dBm: number;
旧版本信息:|类名:SignalInformation;
方法or属性:dBm: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkState;
方法or属性:longOperatorName: string;
旧版本信息:|类名:NetworkState;
方法or属性:longOperatorName: string;
新版本信息:string|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkState;
方法or属性:shortOperatorName: string;
旧版本信息:|类名:NetworkState;
方法or属性:shortOperatorName: string;
新版本信息:string|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkState;
方法or属性:plmnNumeric: string;
旧版本信息:|类名:NetworkState;
方法or属性:plmnNumeric: string;
新版本信息:string|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkState;
方法or属性:isRoaming: boolean;
旧版本信息:|类名:NetworkState;
方法or属性:isRoaming: boolean;
新版本信息:boolean|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkState;
方法or属性:regState: RegState;
旧版本信息:|类名:NetworkState;
方法or属性:regState: RegState;
新版本信息:RegState|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkState;
方法or属性:cfgTech: RadioTechnology;
旧版本信息:|类名:NetworkState;
方法or属性:cfgTech: RadioTechnology;
新版本信息:RadioTechnology|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkState;
方法or属性:nsaState: NsaState;
旧版本信息:|类名:NetworkState;
方法or属性:nsaState: NsaState;
新版本信息:NsaState|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkState;
方法or属性:isCaActive: boolean;
旧版本信息:|类名:NetworkState;
方法or属性:isCaActive: boolean;
新版本信息:boolean|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkState;
方法or属性:isEmergency: boolean;
旧版本信息:|类名:NetworkState;
方法or属性:isEmergency: boolean;
新版本信息:boolean|@ohos.telephony.radio.d.ts| +|type有变化|类名:CellInformation;
方法or属性:networkType: NetworkType;
旧版本信息:|类名:CellInformation;
方法or属性:networkType: NetworkType;
新版本信息:NetworkType|@ohos.telephony.radio.d.ts| +|type有变化|类名:CellInformation;
方法or属性:isCamped: boolean;
旧版本信息:|类名:CellInformation;
方法or属性:isCamped: boolean;
新版本信息:boolean|@ohos.telephony.radio.d.ts| +|type有变化|类名:CellInformation;
方法or属性:timeStamp: number;
旧版本信息:|类名:CellInformation;
方法or属性:timeStamp: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:CellInformation;
方法or属性:signalInformation: SignalInformation;
旧版本信息:|类名:CellInformation;
方法or属性:signalInformation: SignalInformation;
新版本信息:SignalInformation|@ohos.telephony.radio.d.ts| +|type有变化|类名:CellInformation;
方法or属性:data: CdmaCellInformation \| GsmCellInformation \| LteCellInformation \| NrCellInformation \| TdscdmaCellInformation
\| WcdmaCellInformation;
旧版本信息:|类名:CellInformation;
方法or属性:data: CdmaCellInformation \| GsmCellInformation \| LteCellInformation \| NrCellInformation \| TdscdmaCellInformation
\| WcdmaCellInformation;
新版本信息:CdmaCellInformation \| GsmCellInformation \| LteCellInformation \| NrCellInformation\| TdscdmaCellInformation \| WcdmaCellInformation|@ohos.telephony.radio.d.ts| +|type有变化|类名:CdmaCellInformation;
方法or属性:baseId: number;
旧版本信息:|类名:CdmaCellInformation;
方法or属性:baseId: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:CdmaCellInformation;
方法or属性:latitude: number;
旧版本信息:|类名:CdmaCellInformation;
方法or属性:latitude: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:CdmaCellInformation;
方法or属性:longitude: number;
旧版本信息:|类名:CdmaCellInformation;
方法or属性:longitude: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:CdmaCellInformation;
方法or属性:nid: number;
旧版本信息:|类名:CdmaCellInformation;
方法or属性:nid: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:CdmaCellInformation;
方法or属性:sid: number;
旧版本信息:|类名:CdmaCellInformation;
方法or属性:sid: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:GsmCellInformation;
方法or属性:lac: number;
旧版本信息:|类名:GsmCellInformation;
方法or属性:lac: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:TdscdmaCellInformation;
方法or属性:lac: number;
旧版本信息:|类名:TdscdmaCellInformation;
方法or属性:lac: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:WcdmaCellInformation;
方法or属性:lac: number;
旧版本信息:|类名:WcdmaCellInformation;
方法or属性:lac: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:GsmCellInformation;
方法or属性:cellId: number;
旧版本信息:|类名:GsmCellInformation;
方法or属性:cellId: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:TdscdmaCellInformation;
方法or属性:cellId: number;
旧版本信息:|类名:TdscdmaCellInformation;
方法or属性:cellId: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:WcdmaCellInformation;
方法or属性:cellId: number;
旧版本信息:|类名:WcdmaCellInformation;
方法or属性:cellId: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:GsmCellInformation;
方法or属性:arfcn: number;
旧版本信息:|类名:GsmCellInformation;
方法or属性:arfcn: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:GsmCellInformation;
方法or属性:bsic: number;
旧版本信息:|类名:GsmCellInformation;
方法or属性:bsic: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:GsmCellInformation;
方法or属性:mcc: string;
旧版本信息:|类名:GsmCellInformation;
方法or属性:mcc: string;
新版本信息:string|@ohos.telephony.radio.d.ts| +|type有变化|类名:LteCellInformation;
方法or属性:mcc: string;
旧版本信息:|类名:LteCellInformation;
方法or属性:mcc: string;
新版本信息:string|@ohos.telephony.radio.d.ts| +|type有变化|类名:NrCellInformation;
方法or属性:mcc: string;
旧版本信息:|类名:NrCellInformation;
方法or属性:mcc: string;
新版本信息:string|@ohos.telephony.radio.d.ts| +|type有变化|类名:TdscdmaCellInformation;
方法or属性:mcc: string;
旧版本信息:|类名:TdscdmaCellInformation;
方法or属性:mcc: string;
新版本信息:string|@ohos.telephony.radio.d.ts| +|type有变化|类名:WcdmaCellInformation;
方法or属性:mcc: string;
旧版本信息:|类名:WcdmaCellInformation;
方法or属性:mcc: string;
新版本信息:string|@ohos.telephony.radio.d.ts| +|type有变化|类名:GsmCellInformation;
方法or属性:mnc: string;
旧版本信息:|类名:GsmCellInformation;
方法or属性:mnc: string;
新版本信息:string|@ohos.telephony.radio.d.ts| +|type有变化|类名:LteCellInformation;
方法or属性:mnc: string;
旧版本信息:|类名:LteCellInformation;
方法or属性:mnc: string;
新版本信息:string|@ohos.telephony.radio.d.ts| +|type有变化|类名:NrCellInformation;
方法or属性:mnc: string;
旧版本信息:|类名:NrCellInformation;
方法or属性:mnc: string;
新版本信息:string|@ohos.telephony.radio.d.ts| +|type有变化|类名:TdscdmaCellInformation;
方法or属性:mnc: string;
旧版本信息:|类名:TdscdmaCellInformation;
方法or属性:mnc: string;
新版本信息:string|@ohos.telephony.radio.d.ts| +|type有变化|类名:WcdmaCellInformation;
方法or属性:mnc: string;
旧版本信息:|类名:WcdmaCellInformation;
方法or属性:mnc: string;
新版本信息:string|@ohos.telephony.radio.d.ts| +|type有变化|类名:LteCellInformation;
方法or属性:cgi: number;
旧版本信息:|类名:LteCellInformation;
方法or属性:cgi: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:LteCellInformation;
方法or属性:pci: number;
旧版本信息:|类名:LteCellInformation;
方法or属性:pci: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:NrCellInformation;
方法or属性:pci: number;
旧版本信息:|类名:NrCellInformation;
方法or属性:pci: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:LteCellInformation;
方法or属性:tac: number;
旧版本信息:|类名:LteCellInformation;
方法or属性:tac: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:NrCellInformation;
方法or属性:tac: number;
旧版本信息:|类名:NrCellInformation;
方法or属性:tac: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:LteCellInformation;
方法or属性:earfcn: number;
旧版本信息:|类名:LteCellInformation;
方法or属性:earfcn: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:LteCellInformation;
方法or属性:bandwidth: number;
旧版本信息:|类名:LteCellInformation;
方法or属性:bandwidth: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:LteCellInformation;
方法or属性:isSupportEndc: boolean;
旧版本信息:|类名:LteCellInformation;
方法or属性:isSupportEndc: boolean;
新版本信息:boolean|@ohos.telephony.radio.d.ts| +|type有变化|类名:NrCellInformation;
方法or属性:nrArfcn: number;
旧版本信息:|类名:NrCellInformation;
方法or属性:nrArfcn: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:NrCellInformation;
方法or属性:nci: number;
旧版本信息:|类名:NrCellInformation;
方法or属性:nci: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:TdscdmaCellInformation;
方法or属性:cpid: number;
旧版本信息:|类名:TdscdmaCellInformation;
方法or属性:cpid: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:TdscdmaCellInformation;
方法or属性:uarfcn: number;
旧版本信息:|类名:TdscdmaCellInformation;
方法or属性:uarfcn: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:WcdmaCellInformation;
方法or属性:uarfcn: number;
旧版本信息:|类名:WcdmaCellInformation;
方法or属性:uarfcn: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:WcdmaCellInformation;
方法or属性:psc: number;
旧版本信息:|类名:WcdmaCellInformation;
方法or属性:psc: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkSearchResult;
方法or属性:isNetworkSearchSuccess: boolean;
旧版本信息:|类名:NetworkSearchResult;
方法or属性:isNetworkSearchSuccess: boolean;
新版本信息:boolean|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkSearchResult;
方法or属性:networkSearchResult: Array\;
旧版本信息:|类名:NetworkSearchResult;
方法or属性:networkSearchResult: Array\;
新版本信息:Array\|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkInformation;
方法or属性:operatorName: string;
旧版本信息:|类名:NetworkInformation;
方法or属性:operatorName: string;
新版本信息:string|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkInformation;
方法or属性:operatorNumeric: string;
旧版本信息:|类名:NetworkInformation;
方法or属性:operatorNumeric: string;
新版本信息:string|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkInformation;
方法or属性:state: NetworkInformationState;
旧版本信息:|类名:NetworkInformation;
方法or属性:state: NetworkInformationState;
新版本信息:NetworkInformationState|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkInformation;
方法or属性:radioTech: string;
旧版本信息:|类名:NetworkInformation;
方法or属性:radioTech: string;
新版本信息:string|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkSelectionModeOptions;
方法or属性:slotId: number;
旧版本信息:|类名:NetworkSelectionModeOptions;
方法or属性:slotId: number;
新版本信息:number|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkSelectionModeOptions;
方法or属性:selectMode: NetworkSelectionMode;
旧版本信息:|类名:NetworkSelectionModeOptions;
方法or属性:selectMode: NetworkSelectionMode;
新版本信息:NetworkSelectionMode|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkSelectionModeOptions;
方法or属性:networkInformation: NetworkInformation;
旧版本信息:|类名:NetworkSelectionModeOptions;
方法or属性:networkInformation: NetworkInformation;
新版本信息:NetworkInformation|@ohos.telephony.radio.d.ts| +|type有变化|类名:NetworkSelectionModeOptions;
方法or属性:resumeSelection: boolean;
旧版本信息:|类名:NetworkSelectionModeOptions;
方法or属性:resumeSelection: boolean;
新版本信息:boolean|@ohos.telephony.radio.d.ts| +|type有变化|类名:ImsRegInfo;
方法or属性:imsRegState: ImsRegState;
旧版本信息:|类名:ImsRegInfo;
方法or属性:imsRegState: ImsRegState;
新版本信息:ImsRegState|@ohos.telephony.radio.d.ts| +|type有变化|类名:ImsRegInfo;
方法or属性:imsRegTech: ImsRegTech;
旧版本信息:|类名:ImsRegInfo;
方法or属性:imsRegTech: ImsRegTech;
新版本信息:ImsRegTech|@ohos.telephony.radio.d.ts| +|type有变化|类名:OperatorConfig;
方法or属性:field: string;
旧版本信息:|类名:OperatorConfig;
方法or属性:field: string;
新版本信息:string|@ohos.telephony.sim.d.ts| +|type有变化|类名:OperatorConfig;
方法or属性:value: string;
旧版本信息:|类名:OperatorConfig;
方法or属性:value: string;
新版本信息:string|@ohos.telephony.sim.d.ts| +|type有变化|类名:IccAccountInfo;
方法or属性:simId: number;
旧版本信息:|类名:IccAccountInfo;
方法or属性:simId: number;
新版本信息:number|@ohos.telephony.sim.d.ts| +|type有变化|类名:IccAccountInfo;
方法or属性:slotIndex: number;
旧版本信息:|类名:IccAccountInfo;
方法or属性:slotIndex: number;
新版本信息:number|@ohos.telephony.sim.d.ts| +|type有变化|类名:IccAccountInfo;
方法or属性:isEsim: boolean;
旧版本信息:|类名:IccAccountInfo;
方法or属性:isEsim: boolean;
新版本信息:boolean|@ohos.telephony.sim.d.ts| +|type有变化|类名:IccAccountInfo;
方法or属性:isActive: boolean;
旧版本信息:|类名:IccAccountInfo;
方法or属性:isActive: boolean;
新版本信息:boolean|@ohos.telephony.sim.d.ts| +|type有变化|类名:IccAccountInfo;
方法or属性:iccId: string;
旧版本信息:|类名:IccAccountInfo;
方法or属性:iccId: string;
新版本信息:string|@ohos.telephony.sim.d.ts| +|type有变化|类名:IccAccountInfo;
方法or属性:showName: string;
旧版本信息:|类名:IccAccountInfo;
方法or属性:showName: string;
新版本信息:string|@ohos.telephony.sim.d.ts| +|type有变化|类名:IccAccountInfo;
方法or属性:showNumber: string;
旧版本信息:|类名:IccAccountInfo;
方法or属性:showNumber: string;
新版本信息:string|@ohos.telephony.sim.d.ts| +|type有变化|类名:LockStatusResponse;
方法or属性:result: number;
旧版本信息:|类名:LockStatusResponse;
方法or属性:result: number;
新版本信息:number|@ohos.telephony.sim.d.ts| +|type有变化|类名:LockStatusResponse;
方法or属性:remain?: number;
旧版本信息:|类名:LockStatusResponse;
方法or属性:remain?: number;
新版本信息:?number|@ohos.telephony.sim.d.ts| +|type有变化|类名:DiallingNumbersInfo;
方法or属性:alphaTag: string;
旧版本信息:|类名:DiallingNumbersInfo;
方法or属性:alphaTag: string;
新版本信息:string|@ohos.telephony.sim.d.ts| +|type有变化|类名:DiallingNumbersInfo;
方法or属性:number: string;
旧版本信息:|类名:DiallingNumbersInfo;
方法or属性:number: string;
新版本信息:string|@ohos.telephony.sim.d.ts| +|type有变化|类名:DiallingNumbersInfo;
方法or属性:recordNumber?: number;
旧版本信息:|类名:DiallingNumbersInfo;
方法or属性:recordNumber?: number;
新版本信息:?number|@ohos.telephony.sim.d.ts| +|type有变化|类名:DiallingNumbersInfo;
方法or属性:pin2?: string;
旧版本信息:|类名:DiallingNumbersInfo;
方法or属性:pin2?: string;
新版本信息:?string|@ohos.telephony.sim.d.ts| +|type有变化|类名:LockInfo;
方法or属性:lockType: LockType;
旧版本信息:|类名:LockInfo;
方法or属性:lockType: LockType;
新版本信息:LockType|@ohos.telephony.sim.d.ts| +|type有变化|类名:LockInfo;
方法or属性:password: string;
旧版本信息:|类名:LockInfo;
方法or属性:password: string;
新版本信息:string|@ohos.telephony.sim.d.ts| +|type有变化|类名:PersoLockInfo;
方法or属性:password: string;
旧版本信息:|类名:PersoLockInfo;
方法or属性:password: string;
新版本信息:string|@ohos.telephony.sim.d.ts| +|type有变化|类名:LockInfo;
方法or属性:state: LockState;
旧版本信息:|类名:LockInfo;
方法or属性:state: LockState;
新版本信息:LockState|@ohos.telephony.sim.d.ts| +|type有变化|类名:PersoLockInfo;
方法or属性:lockType: PersoLockType;
旧版本信息:|类名:PersoLockInfo;
方法or属性:lockType: PersoLockType;
新版本信息:PersoLockType|@ohos.telephony.sim.d.ts| +|type有变化|类名:MmsInformation;
方法or属性:messageType: MessageType;
旧版本信息:|类名:MmsInformation;
方法or属性:messageType: MessageType;
新版本信息:MessageType|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsInformation;
方法or属性:mmsType: MmsSendReq \| MmsSendConf \| MmsNotificationInd \| MmsRespInd \| MmsRetrieveConf \| MmsAcknowledgeInd \| MmsDeliveryInd \| MmsReadOrigInd \| MmsReadRecInd;
旧版本信息:|类名:MmsInformation;
方法or属性:mmsType: MmsSendReq \| MmsSendConf \| MmsNotificationInd \| MmsRespInd \| MmsRetrieveConf \| MmsAcknowledgeInd \| MmsDeliveryInd \| MmsReadOrigInd \| MmsReadRecInd;
新版本信息:MmsSendReq \| MmsSendConf \| MmsNotificationInd \| MmsRespInd \| MmsRetrieveConf \| MmsAcknowledgeInd \|MmsDeliveryInd \| MmsReadOrigInd \| MmsReadRecInd|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsInformation;
方法or属性:attachment?: Array\;
旧版本信息:|类名:MmsInformation;
方法or属性:attachment?: Array\;
新版本信息:?Array\|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendReq;
方法or属性:from: MmsAddress;
旧版本信息:|类名:MmsSendReq;
方法or属性:from: MmsAddress;
新版本信息:MmsAddress|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsReadOrigInd;
方法or属性:from: MmsAddress;
旧版本信息:|类名:MmsReadOrigInd;
方法or属性:from: MmsAddress;
新版本信息:MmsAddress|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsReadRecInd;
方法or属性:from: MmsAddress;
旧版本信息:|类名:MmsReadRecInd;
方法or属性:from: MmsAddress;
新版本信息:MmsAddress|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendReq;
方法or属性:transactionId: string;
旧版本信息:|类名:MmsSendReq;
方法or属性:transactionId: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendConf;
方法or属性:transactionId: string;
旧版本信息:|类名:MmsSendConf;
方法or属性:transactionId: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsNotificationInd;
方法or属性:transactionId: string;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:transactionId: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRespInd;
方法or属性:transactionId: string;
旧版本信息:|类名:MmsRespInd;
方法or属性:transactionId: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRetrieveConf;
方法or属性:transactionId: string;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:transactionId: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsAcknowledgeInd;
方法or属性:transactionId: string;
旧版本信息:|类名:MmsAcknowledgeInd;
方法or属性:transactionId: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendReq;
方法or属性:contentType: string;
旧版本信息:|类名:MmsSendReq;
方法or属性:contentType: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRetrieveConf;
方法or属性:contentType: string;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:contentType: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsAttachment;
方法or属性:contentType: string;
旧版本信息:|类名:MmsAttachment;
方法or属性:contentType: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendReq;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsSendReq;
方法or属性:version: MmsVersionType;
新版本信息:MmsVersionType|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendConf;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsSendConf;
方法or属性:version: MmsVersionType;
新版本信息:MmsVersionType|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsNotificationInd;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:version: MmsVersionType;
新版本信息:MmsVersionType|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRespInd;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsRespInd;
方法or属性:version: MmsVersionType;
新版本信息:MmsVersionType|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRetrieveConf;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:version: MmsVersionType;
新版本信息:MmsVersionType|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsAcknowledgeInd;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsAcknowledgeInd;
方法or属性:version: MmsVersionType;
新版本信息:MmsVersionType|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsDeliveryInd;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsDeliveryInd;
方法or属性:version: MmsVersionType;
新版本信息:MmsVersionType|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsReadOrigInd;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsReadOrigInd;
方法or属性:version: MmsVersionType;
新版本信息:MmsVersionType|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsReadRecInd;
方法or属性:version: MmsVersionType;
旧版本信息:|类名:MmsReadRecInd;
方法or属性:version: MmsVersionType;
新版本信息:MmsVersionType|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendReq;
方法or属性:to?: Array\;
旧版本信息:|类名:MmsSendReq;
方法or属性:to?: Array\;
新版本信息:?Array\|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendReq;
方法or属性:date?: number;
旧版本信息:|类名:MmsSendReq;
方法or属性:date?: number;
新版本信息:?number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsReadRecInd;
方法or属性:date?: number;
旧版本信息:|类名:MmsReadRecInd;
方法or属性:date?: number;
新版本信息:?number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendReq;
方法or属性:cc?: Array\;
旧版本信息:|类名:MmsSendReq;
方法or属性:cc?: Array\;
新版本信息:?Array\|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRetrieveConf;
方法or属性:cc?: Array\;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:cc?: Array\;
新版本信息:?Array\|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendReq;
方法or属性:bcc?: Array\;
旧版本信息:|类名:MmsSendReq;
方法or属性:bcc?: Array\;
新版本信息:?Array\|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendReq;
方法or属性:subject?: string;
旧版本信息:|类名:MmsSendReq;
方法or属性:subject?: string;
新版本信息:?string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsNotificationInd;
方法or属性:subject?: string;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:subject?: string;
新版本信息:?string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRetrieveConf;
方法or属性:subject?: string;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:subject?: string;
新版本信息:?string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendReq;
方法or属性:messageClass?: number;
旧版本信息:|类名:MmsSendReq;
方法or属性:messageClass?: number;
新版本信息:?number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendReq;
方法or属性:expiry?: number;
旧版本信息:|类名:MmsSendReq;
方法or属性:expiry?: number;
新版本信息:?number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendReq;
方法or属性:priority?: MmsPriorityType;
旧版本信息:|类名:MmsSendReq;
方法or属性:priority?: MmsPriorityType;
新版本信息:?MmsPriorityType|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRetrieveConf;
方法or属性:priority?: MmsPriorityType;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:priority?: MmsPriorityType;
新版本信息:?MmsPriorityType|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendReq;
方法or属性:senderVisibility?: number;
旧版本信息:|类名:MmsSendReq;
方法or属性:senderVisibility?: number;
新版本信息:?number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendReq;
方法or属性:deliveryReport?: number;
旧版本信息:|类名:MmsSendReq;
方法or属性:deliveryReport?: number;
新版本信息:?number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsNotificationInd;
方法or属性:deliveryReport?: number;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:deliveryReport?: number;
新版本信息:?number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRetrieveConf;
方法or属性:deliveryReport?: number;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:deliveryReport?: number;
新版本信息:?number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendReq;
方法or属性:readReport?: number;
旧版本信息:|类名:MmsSendReq;
方法or属性:readReport?: number;
新版本信息:?number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRetrieveConf;
方法or属性:readReport?: number;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:readReport?: number;
新版本信息:?number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendConf;
方法or属性:responseState: number;
旧版本信息:|类名:MmsSendConf;
方法or属性:responseState: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsSendConf;
方法or属性:messageId?: string;
旧版本信息:|类名:MmsSendConf;
方法or属性:messageId?: string;
新版本信息:?string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsNotificationInd;
方法or属性:messageClass: number;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:messageClass: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsNotificationInd;
方法or属性:messageSize: number;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:messageSize: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsNotificationInd;
方法or属性:expiry: number;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:expiry: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsNotificationInd;
方法or属性:contentLocation: string;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:contentLocation: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsAttachment;
方法or属性:contentLocation: string;
旧版本信息:|类名:MmsAttachment;
方法or属性:contentLocation: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsNotificationInd;
方法or属性:from?: MmsAddress;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:from?: MmsAddress;
新版本信息:?MmsAddress|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRetrieveConf;
方法or属性:from?: MmsAddress;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:from?: MmsAddress;
新版本信息:?MmsAddress|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsNotificationInd;
方法or属性:contentClass?: number;
旧版本信息:|类名:MmsNotificationInd;
方法or属性:contentClass?: number;
新版本信息:?number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRespInd;
方法or属性:status: number;
旧版本信息:|类名:MmsRespInd;
方法or属性:status: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsDeliveryInd;
方法or属性:status: number;
旧版本信息:|类名:MmsDeliveryInd;
方法or属性:status: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:ShortMessage;
方法or属性:status: number;
旧版本信息:|类名:ShortMessage;
方法or属性:status: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRespInd;
方法or属性:reportAllowed?: ReportType;
旧版本信息:|类名:MmsRespInd;
方法or属性:reportAllowed?: ReportType;
新版本信息:?ReportType|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsAcknowledgeInd;
方法or属性:reportAllowed?: ReportType;
旧版本信息:|类名:MmsAcknowledgeInd;
方法or属性:reportAllowed?: ReportType;
新版本信息:?ReportType|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRetrieveConf;
方法or属性:messageId: string;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:messageId: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsDeliveryInd;
方法or属性:messageId: string;
旧版本信息:|类名:MmsDeliveryInd;
方法or属性:messageId: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsReadOrigInd;
方法or属性:messageId: string;
旧版本信息:|类名:MmsReadOrigInd;
方法or属性:messageId: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsReadRecInd;
方法or属性:messageId: string;
旧版本信息:|类名:MmsReadRecInd;
方法or属性:messageId: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRetrieveConf;
方法or属性:date: number;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:date: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsDeliveryInd;
方法or属性:date: number;
旧版本信息:|类名:MmsDeliveryInd;
方法or属性:date: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsReadOrigInd;
方法or属性:date: number;
旧版本信息:|类名:MmsReadOrigInd;
方法or属性:date: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRetrieveConf;
方法or属性:to: Array\;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:to: Array\;
新版本信息:Array\|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsDeliveryInd;
方法or属性:to: Array\;
旧版本信息:|类名:MmsDeliveryInd;
方法or属性:to: Array\;
新版本信息:Array\|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsReadOrigInd;
方法or属性:to: Array\;
旧版本信息:|类名:MmsReadOrigInd;
方法or属性:to: Array\;
新版本信息:Array\|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsReadRecInd;
方法or属性:to: Array\;
旧版本信息:|类名:MmsReadRecInd;
方法or属性:to: Array\;
新版本信息:Array\|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRetrieveConf;
方法or属性:retrieveStatus?: number;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:retrieveStatus?: number;
新版本信息:?number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsRetrieveConf;
方法or属性:retrieveText?: string;
旧版本信息:|类名:MmsRetrieveConf;
方法or属性:retrieveText?: string;
新版本信息:?string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsReadOrigInd;
方法or属性:readStatus: number;
旧版本信息:|类名:MmsReadOrigInd;
方法or属性:readStatus: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsReadRecInd;
方法or属性:readStatus: number;
旧版本信息:|类名:MmsReadRecInd;
方法or属性:readStatus: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsAttachment;
方法or属性:contentId: string;
旧版本信息:|类名:MmsAttachment;
方法or属性:contentId: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsAttachment;
方法or属性:contentDisposition: DispositionType;
旧版本信息:|类名:MmsAttachment;
方法or属性:contentDisposition: DispositionType;
新版本信息:DispositionType|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsAttachment;
方法or属性:contentTransferEncoding: string;
旧版本信息:|类名:MmsAttachment;
方法or属性:contentTransferEncoding: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsAttachment;
方法or属性:isSmil: boolean;
旧版本信息:|类名:MmsAttachment;
方法or属性:isSmil: boolean;
新版本信息:boolean|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsAttachment;
方法or属性:path?: string;
旧版本信息:|类名:MmsAttachment;
方法or属性:path?: string;
新版本信息:?string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsAttachment;
方法or属性:inBuff?: Array\;
旧版本信息:|类名:MmsAttachment;
方法or属性:inBuff?: Array\;
新版本信息:?Array\|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsAttachment;
方法or属性:fileName?: string;
旧版本信息:|类名:MmsAttachment;
方法or属性:fileName?: string;
新版本信息:?string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsAttachment;
方法or属性:charset?: MmsCharSets;
旧版本信息:|类名:MmsAttachment;
方法or属性:charset?: MmsCharSets;
新版本信息:?MmsCharSets|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsAddress;
方法or属性:address: string;
旧版本信息:|类名:MmsAddress;
方法or属性:address: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:MmsAddress;
方法or属性:charset: MmsCharSets;
旧版本信息:|类名:MmsAddress;
方法or属性:charset: MmsCharSets;
新版本信息:MmsCharSets|@ohos.telephony.sms.d.ts| +|type有变化|类名:CBConfigOptions;
方法or属性:slotId: number;
旧版本信息:|类名:CBConfigOptions;
方法or属性:slotId: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:SimMessageOptions;
方法or属性:slotId: number;
旧版本信息:|类名:SimMessageOptions;
方法or属性:slotId: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:UpdateSimMessageOptions;
方法or属性:slotId: number;
旧版本信息:|类名:UpdateSimMessageOptions;
方法or属性:slotId: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:SendMessageOptions;
方法or属性:slotId: number;
旧版本信息:|类名:SendMessageOptions;
方法or属性:slotId: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:CBConfigOptions;
方法or属性:enable: boolean;
旧版本信息:|类名:CBConfigOptions;
方法or属性:enable: boolean;
新版本信息:boolean|@ohos.telephony.sms.d.ts| +|type有变化|类名:CBConfigOptions;
方法or属性:startMessageId: number;
旧版本信息:|类名:CBConfigOptions;
方法or属性:startMessageId: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:CBConfigOptions;
方法or属性:endMessageId: number;
旧版本信息:|类名:CBConfigOptions;
方法or属性:endMessageId: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:CBConfigOptions;
方法or属性:ranType: RanType;
旧版本信息:|类名:CBConfigOptions;
方法or属性:ranType: RanType;
新版本信息:RanType|@ohos.telephony.sms.d.ts| +|type有变化|类名:SimMessageOptions;
方法or属性:smsc: string;
旧版本信息:|类名:SimMessageOptions;
方法or属性:smsc: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:UpdateSimMessageOptions;
方法or属性:smsc: string;
旧版本信息:|类名:UpdateSimMessageOptions;
方法or属性:smsc: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:SimMessageOptions;
方法or属性:pdu: string;
旧版本信息:|类名:SimMessageOptions;
方法or属性:pdu: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:UpdateSimMessageOptions;
方法or属性:pdu: string;
旧版本信息:|类名:UpdateSimMessageOptions;
方法or属性:pdu: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:SimMessageOptions;
方法or属性:status: SimMessageStatus;
旧版本信息:|类名:SimMessageOptions;
方法or属性:status: SimMessageStatus;
新版本信息:SimMessageStatus|@ohos.telephony.sms.d.ts| +|type有变化|类名:UpdateSimMessageOptions;
方法or属性:msgIndex: number;
旧版本信息:|类名:UpdateSimMessageOptions;
方法or属性:msgIndex: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:UpdateSimMessageOptions;
方法or属性:newStatus: SimMessageStatus;
旧版本信息:|类名:UpdateSimMessageOptions;
方法or属性:newStatus: SimMessageStatus;
新版本信息:SimMessageStatus|@ohos.telephony.sms.d.ts| +|type有变化|类名:ShortMessage;
方法or属性:visibleMessageBody: string;
旧版本信息:|类名:ShortMessage;
方法or属性:visibleMessageBody: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:ShortMessage;
方法or属性:visibleRawAddress: string;
旧版本信息:|类名:ShortMessage;
方法or属性:visibleRawAddress: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:ShortMessage;
方法or属性:messageClass: ShortMessageClass;
旧版本信息:|类名:ShortMessage;
方法or属性:messageClass: ShortMessageClass;
新版本信息:ShortMessageClass|@ohos.telephony.sms.d.ts| +|type有变化|类名:ShortMessage;
方法or属性:protocolId: number;
旧版本信息:|类名:ShortMessage;
方法or属性:protocolId: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:ShortMessage;
方法or属性:scAddress: string;
旧版本信息:|类名:ShortMessage;
方法or属性:scAddress: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:ShortMessage;
方法or属性:scTimestamp: number;
旧版本信息:|类名:ShortMessage;
方法or属性:scTimestamp: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:ShortMessage;
方法or属性:isReplaceMessage: boolean;
旧版本信息:|类名:ShortMessage;
方法or属性:isReplaceMessage: boolean;
新版本信息:boolean|@ohos.telephony.sms.d.ts| +|type有变化|类名:ShortMessage;
方法or属性:hasReplyPath: boolean;
旧版本信息:|类名:ShortMessage;
方法or属性:hasReplyPath: boolean;
新版本信息:boolean|@ohos.telephony.sms.d.ts| +|type有变化|类名:ShortMessage;
方法or属性:pdu: Array\;
旧版本信息:|类名:ShortMessage;
方法or属性:pdu: Array\;
新版本信息:Array\|@ohos.telephony.sms.d.ts| +|type有变化|类名:IDeliveryShortMessageCallback;
方法or属性:pdu: Array\;
旧版本信息:|类名:IDeliveryShortMessageCallback;
方法or属性:pdu: Array\;
新版本信息:Array\|@ohos.telephony.sms.d.ts| +|type有变化|类名:ShortMessage;
方法or属性:isSmsStatusReportMessage: boolean;
旧版本信息:|类名:ShortMessage;
方法or属性:isSmsStatusReportMessage: boolean;
新版本信息:boolean|@ohos.telephony.sms.d.ts| +|type有变化|类名:SimShortMessage;
方法or属性:shortMessage: ShortMessage;
旧版本信息:|类名:SimShortMessage;
方法or属性:shortMessage: ShortMessage;
新版本信息:ShortMessage|@ohos.telephony.sms.d.ts| +|type有变化|类名:SimShortMessage;
方法or属性:simMessageStatus: SimMessageStatus;
旧版本信息:|类名:SimShortMessage;
方法or属性:simMessageStatus: SimMessageStatus;
新版本信息:SimMessageStatus|@ohos.telephony.sms.d.ts| +|type有变化|类名:SimShortMessage;
方法or属性:indexOnSim: number;
旧版本信息:|类名:SimShortMessage;
方法or属性:indexOnSim: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:SendMessageOptions;
方法or属性:destinationHost: string;
旧版本信息:|类名:SendMessageOptions;
方法or属性:destinationHost: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:SendMessageOptions;
方法or属性:serviceCenter?: string;
旧版本信息:|类名:SendMessageOptions;
方法or属性:serviceCenter?: string;
新版本信息:?string|@ohos.telephony.sms.d.ts| +|type有变化|类名:SendMessageOptions;
方法or属性:content: string \| Array\;
旧版本信息:|类名:SendMessageOptions;
方法or属性:content: string \| Array\;
新版本信息:string \| Array\|@ohos.telephony.sms.d.ts| +|type有变化|类名:SendMessageOptions;
方法or属性:destinationPort?: number;
旧版本信息:|类名:SendMessageOptions;
方法or属性:destinationPort?: number;
新版本信息:?number|@ohos.telephony.sms.d.ts| +|type有变化|类名:SendMessageOptions;
方法or属性:sendCallback?: AsyncCallback\;
旧版本信息:|类名:SendMessageOptions;
方法or属性:sendCallback?: AsyncCallback\;
新版本信息:?AsyncCallback\|@ohos.telephony.sms.d.ts| +|type有变化|类名:SendMessageOptions;
方法or属性:deliveryCallback?: AsyncCallback\;
旧版本信息:|类名:SendMessageOptions;
方法or属性:deliveryCallback?: AsyncCallback\;
新版本信息:?AsyncCallback\|@ohos.telephony.sms.d.ts| +|type有变化|类名:ISendShortMessageCallback;
方法or属性:result: SendSmsResult;
旧版本信息:|类名:ISendShortMessageCallback;
方法or属性:result: SendSmsResult;
新版本信息:SendSmsResult|@ohos.telephony.sms.d.ts| +|type有变化|类名:ISendShortMessageCallback;
方法or属性:url: string;
旧版本信息:|类名:ISendShortMessageCallback;
方法or属性:url: string;
新版本信息:string|@ohos.telephony.sms.d.ts| +|type有变化|类名:ISendShortMessageCallback;
方法or属性:isLastPart: boolean;
旧版本信息:|类名:ISendShortMessageCallback;
方法or属性:isLastPart: boolean;
新版本信息:boolean|@ohos.telephony.sms.d.ts| +|type有变化|类名:SmsSegmentsInfo;
方法or属性:splitCount: number;
旧版本信息:|类名:SmsSegmentsInfo;
方法or属性:splitCount: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:SmsSegmentsInfo;
方法or属性:encodeCount: number;
旧版本信息:|类名:SmsSegmentsInfo;
方法or属性:encodeCount: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:SmsSegmentsInfo;
方法or属性:encodeCountRemaining: number;
旧版本信息:|类名:SmsSegmentsInfo;
方法or属性:encodeCountRemaining: number;
新版本信息:number|@ohos.telephony.sms.d.ts| +|type有变化|类名:SmsSegmentsInfo;
方法or属性:scheme: SmsEncodingScheme;
旧版本信息:|类名:SmsSegmentsInfo;
方法or属性:scheme: SmsEncodingScheme;
新版本信息:SmsEncodingScheme|@ohos.telephony.sms.d.ts| +|函数有变化|类名:call;
方法or属性:function setVoNRState(slotId: number, state: VoNRState, callback: AsyncCallback\): void;|类名:call;
方法or属性:function setVoNRState(slotId: number, state: VoNRState, callback: AsyncCallback\): void;|@ohos.telephony.call.d.ts| +|函数有变化|类名:call;
方法or属性:function setVoNRState(slotId: number, state: VoNRState): Promise\;|类名:call;
方法or属性:function setVoNRState(slotId: number, state: VoNRState): Promise\;|@ohos.telephony.call.d.ts| +|函数有变化|类名:VoNRState;
方法or属性:VONR_STATE_ON = 0|类名:VoNRState;
方法or属性:VONR_STATE_ON = 1|@ohos.telephony.call.d.ts| +|函数有变化|类名:radio;
方法or属性:function getBasebandVersion(slotId: number, callback: AsyncCallback\): void;|类名:radio;
方法or属性:function getBasebandVersion(slotId: number, callback: AsyncCallback\): void;|@ohos.telephony.radio.d.ts| +|函数有变化|类名:radio;
方法or属性:function getBasebandVersion(slotId: number): Promise\;|类名:radio;
方法or属性:function getBasebandVersion(slotId: number): Promise\;|@ohos.telephony.radio.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-unitest.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-unitest.md new file mode 100644 index 0000000000..9e57ea9c3a --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-unitest.md @@ -0,0 +1,12 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:UIElementInfo;
方法or属性:readonly bundleName: string;|@ohos.UiTest.d.ts| +|新增|NA|类名:UIElementInfo;
方法or属性:readonly type: string;|@ohos.UiTest.d.ts| +|新增|NA|类名:UIElementInfo;
方法or属性:readonly text: string;|@ohos.UiTest.d.ts| +|新增|NA|类名:UIEventObserver;
方法or属性:once(type: 'toastShow', callback: Callback\): void;|@ohos.UiTest.d.ts| +|新增|NA|类名:UIEventObserver;
方法or属性:once(type: 'dialogShow', callback: Callback\): void;|@ohos.UiTest.d.ts| +|新增|NA|类名:Driver;
方法or属性:createUIEventObserver(): UIEventObserver;|@ohos.UiTest.d.ts| +|type有变化|类名:WindowFilter;
方法or属性:bundleName?: string;
旧版本信息:string?|类名:WindowFilter;
方法or属性:bundleName?: string;
新版本信息:?string|@ohos.UiTest.d.ts| +|type有变化|类名:WindowFilter;
方法or属性:title?: string;
旧版本信息:string?|类名:WindowFilter;
方法or属性:title?: string;
新版本信息:?string|@ohos.UiTest.d.ts| +|type有变化|类名:WindowFilter;
方法or属性:focused?: boolean;
旧版本信息:boolean?|类名:WindowFilter;
方法or属性:focused?: boolean;
新版本信息:?boolean|@ohos.UiTest.d.ts| +|type有变化|类名:WindowFilter;
方法or属性:actived?: boolean;
旧版本信息:boolean?|类名:WindowFilter;
方法or属性:actived?: boolean;
新版本信息:?boolean|@ohos.UiTest.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-usb.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-usb.md new file mode 100644 index 0000000000..10d4ebed6a --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-usb.md @@ -0,0 +1,3 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|错误码有变化|类名:usbManager;
方法or属性:function setCurrentFunctions(funcs: FunctionType): Promise\;
旧版本信息:401|类名:usbManager;
方法or属性:function setCurrentFunctions(funcs: FunctionType): Promise\;
新版本信息:401,14400002|@ohos.usbManager.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-web.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-web.md new file mode 100644 index 0000000000..28bf896da4 --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-web.md @@ -0,0 +1,19 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:SecureDnsMode;
方法or属性:OFF = 0|@ohos.web.webview.d.ts| +|新增|NA|类名:SecureDnsMode;
方法or属性:AUTO = 1|@ohos.web.webview.d.ts| +|新增|NA|类名:SecureDnsMode;
方法or属性:SECURE_ONLY = 2|@ohos.web.webview.d.ts| +|新增|NA|类名:WebviewController;
方法or属性:prefetchPage(url: string, additionalHeaders?: Array\): void;|@ohos.web.webview.d.ts| +|新增|NA|类名:WebviewController;
方法or属性:static prepareForPageLoad(url: string, preconnectable: boolean, numSockets: number): void;|@ohos.web.webview.d.ts| +|废弃版本有变化|类名:SecureDnsMode;
方法or属性:Off = 0
旧版本信息:|类名:SecureDnsMode;
方法or属性:Off = 0
新版本信息:10
代替接口: SecureDnsMode#OFF|@ohos.web.webview.d.ts| +|废弃版本有变化|类名:SecureDnsMode;
方法or属性:Auto = 1
旧版本信息:|类名:SecureDnsMode;
方法or属性:Auto = 1
新版本信息:10
代替接口: SecureDnsMode#AUTO|@ohos.web.webview.d.ts| +|废弃版本有变化|类名:SecureDnsMode;
方法or属性:SecureOnly = 2
旧版本信息:|类名:SecureDnsMode;
方法or属性:SecureOnly = 2
新版本信息:10
代替接口: SecureDnsMode#SECURE_ONLY|@ohos.web.webview.d.ts| +|新增(错误码)|类名:WebStorage;
方法or属性:static getOrigins(callback: AsyncCallback\>): void;
旧版本信息:|类名:WebStorage;
方法or属性:static getOrigins(callback: AsyncCallback\>): void;
新版本信息:401,17100012|@ohos.web.webview.d.ts| +|新增(错误码)|类名:WebStorage;
方法or属性:static getOriginQuota(origin: string, callback: AsyncCallback\): void;
旧版本信息:|类名:WebStorage;
方法or属性:static getOriginQuota(origin: string, callback: AsyncCallback\): void;
新版本信息:401,17100011|@ohos.web.webview.d.ts| +|新增(错误码)|类名:WebStorage;
方法or属性:static getOriginUsage(origin: string, callback: AsyncCallback\): void;
旧版本信息:|类名:WebStorage;
方法or属性:static getOriginUsage(origin: string, callback: AsyncCallback\): void;
新版本信息:401,17100011|@ohos.web.webview.d.ts| +|新增(错误码)|类名:GeolocationPermissions;
方法or属性:static getAccessibleGeolocation(origin: string, callback: AsyncCallback\): void;
旧版本信息:|类名:GeolocationPermissions;
方法or属性:static getAccessibleGeolocation(origin: string, callback: AsyncCallback\): void;
新版本信息:401,17100011|@ohos.web.webview.d.ts| +|新增(错误码)|类名:GeolocationPermissions;
方法or属性:static getStoredGeolocation(callback: AsyncCallback\>): void;
旧版本信息:|类名:GeolocationPermissions;
方法or属性:static getStoredGeolocation(callback: AsyncCallback\>): void;
新版本信息:401|@ohos.web.webview.d.ts| +|新增(错误码)|类名:WebCookieManager;
方法or属性:static saveCookieAsync(callback: AsyncCallback\): void;
旧版本信息:|类名:WebCookieManager;
方法or属性:static saveCookieAsync(callback: AsyncCallback\): void;
新版本信息:401|@ohos.web.webview.d.ts| +|新增(错误码)|类名:WebviewController;
方法or属性:storeWebArchive(baseName: string, autoName: boolean, callback: AsyncCallback\): void;
旧版本信息:|类名:WebviewController;
方法or属性:storeWebArchive(baseName: string, autoName: boolean, callback: AsyncCallback\): void;
新版本信息:401,17100001,17100003|@ohos.web.webview.d.ts| +|新增(错误码)|类名:WebviewController;
方法or属性:runJavaScript(script: string, callback: AsyncCallback\): void;
旧版本信息:|类名:WebviewController;
方法or属性:runJavaScript(script: string, callback: AsyncCallback\): void;
新版本信息:401,17100001|@ohos.web.webview.d.ts| +|新增(错误码)|类名:WebviewController;
方法or属性:runJavaScriptExt(script: string, callback: AsyncCallback\): void;
旧版本信息:|类名:WebviewController;
方法or属性:runJavaScriptExt(script: string, callback: AsyncCallback\): void;
新版本信息:401,17100001|@ohos.web.webview.d.ts| diff --git a/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-window.md b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-window.md new file mode 100644 index 0000000000..a7e59afd3b --- /dev/null +++ b/zh-cn/release-notes/api-diff/v4.0-beta2/js-apidiff-window.md @@ -0,0 +1,64 @@ +| 操作 | 旧版本 | 新版本 | d.ts文件 | +| ---- | ------ | ------ | -------- | +|新增|NA|类名:Window;
方法or属性:getUIContext() : UIContext;|@ohos.window.d.ts| +|新增(错误码)|类名:screen;
方法or属性:function getAllScreens(): Promise\>;
旧版本信息:|类名:screen;
方法or属性:function getAllScreens(): Promise\>;
新版本信息:1400001|@ohos.screen.d.ts| +|新增(错误码)|类名:screen;
方法or属性:function makeExpand(options: Array\): Promise\;
旧版本信息:|类名:screen;
方法or属性:function makeExpand(options: Array\): Promise\;
新版本信息:401,1400001|@ohos.screen.d.ts| +|新增(错误码)|类名:screen;
方法or属性:function makeMirror(mainScreen: number, mirrorScreen: Array\): Promise\;
旧版本信息:|类名:screen;
方法or属性:function makeMirror(mainScreen: number, mirrorScreen: Array\): Promise\;
新版本信息:401,1400001|@ohos.screen.d.ts| +|新增(错误码)|类名:screen;
方法or属性:function createVirtualScreen(options: VirtualScreenOption): Promise\;
旧版本信息:|类名:screen;
方法or属性:function createVirtualScreen(options: VirtualScreenOption): Promise\;
新版本信息:201,401,1400001|@ohos.screen.d.ts| +|新增(错误码)|类名:screen;
方法or属性:function destroyVirtualScreen(screenId: number): Promise\;
旧版本信息:|类名:screen;
方法or属性:function destroyVirtualScreen(screenId: number): Promise\;
新版本信息:401,1400002|@ohos.screen.d.ts| +|新增(错误码)|类名:screen;
方法or属性:function setVirtualScreenSurface(screenId: number, surfaceId: string): Promise\;
旧版本信息:|类名:screen;
方法or属性:function setVirtualScreenSurface(screenId: number, surfaceId: string): Promise\;
新版本信息:201,401,1400001|@ohos.screen.d.ts| +|新增(错误码)|类名:screen;
方法or属性:function setScreenRotationLocked(isLocked: boolean): Promise\;
旧版本信息:|类名:screen;
方法or属性:function setScreenRotationLocked(isLocked: boolean): Promise\;
新版本信息:401|@ohos.screen.d.ts| +|新增(错误码)|类名:Screen;
方法or属性:setOrientation(orientation: Orientation): Promise\;
旧版本信息:|类名:Screen;
方法or属性:setOrientation(orientation: Orientation): Promise\;
新版本信息:401,1400003|@ohos.screen.d.ts| +|新增(错误码)|类名:Screen;
方法or属性:setScreenActiveMode(modeIndex: number): Promise\;
旧版本信息:|类名:Screen;
方法or属性:setScreenActiveMode(modeIndex: number): Promise\;
新版本信息:401,1400003|@ohos.screen.d.ts| +|新增(错误码)|类名:Screen;
方法or属性:setDensityDpi(densityDpi: number): Promise\;
旧版本信息:|类名:Screen;
方法or属性:setDensityDpi(densityDpi: number): Promise\;
新版本信息:401,1400003|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function getAllScreens(callback: AsyncCallback\>): void;
旧版本信息:|类名:screen;
方法or属性:function getAllScreens(callback: AsyncCallback\>): void;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function getAllScreens(): Promise\>;
旧版本信息:|类名:screen;
方法or属性:function getAllScreens(): Promise\>;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function on(eventType: 'connect' \| 'disconnect' \| 'change', callback: Callback\): void;
旧版本信息:|类名:screen;
方法or属性:function on(eventType: 'connect' \| 'disconnect' \| 'change', callback: Callback\): void;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function off(eventType: 'connect' \| 'disconnect' \| 'change', callback?: Callback\): void;
旧版本信息:|类名:screen;
方法or属性:function off(eventType: 'connect' \| 'disconnect' \| 'change', callback?: Callback\): void;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function makeExpand(options: Array\, callback: AsyncCallback\): void;
旧版本信息:|类名:screen;
方法or属性:function makeExpand(options: Array\, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function makeExpand(options: Array\): Promise\;
旧版本信息:|类名:screen;
方法or属性:function makeExpand(options: Array\): Promise\;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function makeMirror(mainScreen: number, mirrorScreen: Array\, callback: AsyncCallback\): void;
旧版本信息:|类名:screen;
方法or属性:function makeMirror(mainScreen: number, mirrorScreen: Array\, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function makeMirror(mainScreen: number, mirrorScreen: Array\): Promise\;
旧版本信息:|类名:screen;
方法or属性:function makeMirror(mainScreen: number, mirrorScreen: Array\): Promise\;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function createVirtualScreen(options: VirtualScreenOption, callback: AsyncCallback\): void;
旧版本信息:|类名:screen;
方法or属性:function createVirtualScreen(options: VirtualScreenOption, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function createVirtualScreen(options: VirtualScreenOption): Promise\;
旧版本信息:|类名:screen;
方法or属性:function createVirtualScreen(options: VirtualScreenOption): Promise\;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function destroyVirtualScreen(screenId: number, callback: AsyncCallback\): void;
旧版本信息:|类名:screen;
方法or属性:function destroyVirtualScreen(screenId: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function destroyVirtualScreen(screenId: number): Promise\;
旧版本信息:|类名:screen;
方法or属性:function destroyVirtualScreen(screenId: number): Promise\;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function setVirtualScreenSurface(screenId: number, surfaceId: string, callback: AsyncCallback\): void;
旧版本信息:|类名:screen;
方法or属性:function setVirtualScreenSurface(screenId: number, surfaceId: string, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function setVirtualScreenSurface(screenId: number, surfaceId: string): Promise\;
旧版本信息:|类名:screen;
方法or属性:function setVirtualScreenSurface(screenId: number, surfaceId: string): Promise\;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function isScreenRotationLocked(callback: AsyncCallback\): void;
旧版本信息:|类名:screen;
方法or属性:function isScreenRotationLocked(callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function isScreenRotationLocked(): Promise\;
旧版本信息:|类名:screen;
方法or属性:function isScreenRotationLocked(): Promise\;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function setScreenRotationLocked(isLocked: boolean, callback: AsyncCallback\): void;
旧版本信息:|类名:screen;
方法or属性:function setScreenRotationLocked(isLocked: boolean, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:screen;
方法or属性:function setScreenRotationLocked(isLocked: boolean): Promise\;
旧版本信息:|类名:screen;
方法or属性:function setScreenRotationLocked(isLocked: boolean): Promise\;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:ExpandOption;
方法or属性:interface ExpandOption
旧版本信息:|类名:ExpandOption;
方法or属性:interface ExpandOption
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:ExpandOption;
方法or属性:screenId: number;
旧版本信息:|类名:ExpandOption;
方法or属性:screenId: number;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:ExpandOption;
方法or属性:startX: number;
旧版本信息:|类名:ExpandOption;
方法or属性:startX: number;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:ExpandOption;
方法or属性:startY: number;
旧版本信息:|类名:ExpandOption;
方法or属性:startY: number;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:VirtualScreenOption;
方法or属性:interface VirtualScreenOption
旧版本信息:|类名:VirtualScreenOption;
方法or属性:interface VirtualScreenOption
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:VirtualScreenOption;
方法or属性:name: string;
旧版本信息:|类名:VirtualScreenOption;
方法or属性:name: string;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:VirtualScreenOption;
方法or属性:width: number;
旧版本信息:|类名:VirtualScreenOption;
方法or属性:width: number;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:VirtualScreenOption;
方法or属性:height: number;
旧版本信息:|类名:VirtualScreenOption;
方法or属性:height: number;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:VirtualScreenOption;
方法or属性:density: number;
旧版本信息:|类名:VirtualScreenOption;
方法or属性:density: number;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:VirtualScreenOption;
方法or属性:surfaceId: string;
旧版本信息:|类名:VirtualScreenOption;
方法or属性:surfaceId: string;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:ScreenSourceMode;
方法or属性:enum ScreenSourceMode
旧版本信息:|类名:ScreenSourceMode;
方法or属性:enum ScreenSourceMode
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:ScreenSourceMode;
方法or属性:SCREEN_MAIN = 0
旧版本信息:|类名:ScreenSourceMode;
方法or属性:SCREEN_MAIN = 0
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:ScreenSourceMode;
方法or属性:SCREEN_MIRROR = 1
旧版本信息:|类名:ScreenSourceMode;
方法or属性:SCREEN_MIRROR = 1
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:ScreenSourceMode;
方法or属性:SCREEN_EXTEND = 2
旧版本信息:|类名:ScreenSourceMode;
方法or属性:SCREEN_EXTEND = 2
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:ScreenSourceMode;
方法or属性:SCREEN_ALONE = 3
旧版本信息:|类名:ScreenSourceMode;
方法or属性:SCREEN_ALONE = 3
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:Screen;
方法or属性:interface Screen
旧版本信息:|类名:Screen;
方法or属性:interface Screen
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:Screen;
方法or属性:readonly id: number;
旧版本信息:|类名:Screen;
方法or属性:readonly id: number;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:Screen;
方法or属性:readonly parent: number;
旧版本信息:|类名:Screen;
方法or属性:readonly parent: number;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:Screen;
方法or属性:readonly supportedModeInfo: Array\;
旧版本信息:|类名:Screen;
方法or属性:readonly supportedModeInfo: Array\;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:Screen;
方法or属性:readonly activeModeIndex: number;
旧版本信息:|类名:Screen;
方法or属性:readonly activeModeIndex: number;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:Screen;
方法or属性:readonly orientation: Orientation;
旧版本信息:|类名:Screen;
方法or属性:readonly orientation: Orientation;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:Screen;
方法or属性:readonly sourceMode: ScreenSourceMode;
旧版本信息:|类名:Screen;
方法or属性:readonly sourceMode: ScreenSourceMode;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:Screen;
方法or属性:setOrientation(orientation: Orientation, callback: AsyncCallback\): void;
旧版本信息:|类名:Screen;
方法or属性:setOrientation(orientation: Orientation, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:Screen;
方法or属性:setOrientation(orientation: Orientation): Promise\;
旧版本信息:|类名:Screen;
方法or属性:setOrientation(orientation: Orientation): Promise\;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:Screen;
方法or属性:setScreenActiveMode(modeIndex: number, callback: AsyncCallback\): void;
旧版本信息:|类名:Screen;
方法or属性:setScreenActiveMode(modeIndex: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:Screen;
方法or属性:setScreenActiveMode(modeIndex: number): Promise\;
旧版本信息:|类名:Screen;
方法or属性:setScreenActiveMode(modeIndex: number): Promise\;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:Screen;
方法or属性:setDensityDpi(densityDpi: number, callback: AsyncCallback\): void;
旧版本信息:|类名:Screen;
方法or属性:setDensityDpi(densityDpi: number, callback: AsyncCallback\): void;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:Screen;
方法or属性:setDensityDpi(densityDpi: number): Promise\;
旧版本信息:|类名:Screen;
方法or属性:setDensityDpi(densityDpi: number): Promise\;
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:Orientation;
方法or属性:enum Orientation
旧版本信息:|类名:Orientation;
方法or属性:enum Orientation
新版本信息:systemapi|@ohos.screen.d.ts| +|访问级别有变化|类名:ScreenModeInfo;
方法or属性:interface ScreenModeInfo
旧版本信息:|类名:ScreenModeInfo;
方法or属性:interface ScreenModeInfo
新版本信息:systemapi|@ohos.screen.d.ts| +|权限有变化|类名:screen;
方法or属性:function createVirtualScreen(options: VirtualScreenOption): Promise\;
旧版本信息:|类名:screen;
方法or属性:function createVirtualScreen(options: VirtualScreenOption): Promise\;
新版本信息:ohos.permission.CAPTURE_SCREEN|@ohos.screen.d.ts| +|权限有变化|类名:screen;
方法or属性:function setVirtualScreenSurface(screenId: number, surfaceId: string): Promise\;
旧版本信息:|类名:screen;
方法or属性:function setVirtualScreenSurface(screenId: number, surfaceId: string): Promise\;
新版本信息:ohos.permission.CAPTURE_SCREEN|@ohos.screen.d.ts| +|函数有变化|类名:Window;
方法or属性:off(type: 'windowEvent',callback:Callback\):void;|类名:Window;
方法or属性:off(type:'windowEvent',callback?: Callback\(propName: string): T变更为get(propName: string): T | undefined -应用不需要进行适配。 - -## cl.LocalStorage.2 setOrCreate参数newValue变成必选 -**变更影响** - -原接口声明: -```js -setOrCreate(propName: string, newValue?: T): boolean -``` -现接口声明: -```js -setOrCreate(propName: string, newValue: T): boolean -``` -第二个参数newValue变为必选。 -如果应用调用这个接口没有指定newValue参数,在替换新的sdk后会编译不过,需要手动指定newValue。 - -**适配指导** - -```js -let storage = new LocalStorage(); -storage.setOrCreate('propA', 'hello'); -``` -## cl.LocalStorage.3 link参数和返回类型变更 -**变更影响** - -原接口声明: -```js -link(propName: string, linkUser?: T, subscribersName?: string): T -``` -现接口声明: -```js -link(propName: string): SubscribedAbstractProperty -``` -1. link第二三个参数为框架内部调用,不应对外开发,所以将接口变更为一个参数; -2. 返回类型T变更为SubscribedAbstractProperty; - -**适配指导** - -```js -let storage = new LocalStorage({"PropA": "47"}); -let linA = storage.link("PropA"); -linA.set(50); -``` - -## cl.LocalStorage.4 setAndLink参数和返回类型变更 -**变更影响** - -原接口声明: -```js -setAndLink(propName: string, defaultValue: T, linkUser?: T, subscribersName?: string): T -``` -现接口声明: -```js -setAndLink(propName: string, defaultValue: T): SubscribedAbstractProperty -``` -1. setAndLink第三四个参数为框架内部调用,不应对外开发,所以将接口变更为2个参数; -2. 返回类型T变更为SubscribedAbstractProperty; - -**适配指导** - -```js -let storage = new LocalStorage({"PropA": "47"}); -let linA = storage.setAndLink("PropA", "48") -linA.set(50); -``` - -## cl.LocalStorage.5 prop参数和返回类型变更 -**变更影响** - -原接口声明: -```js -prop(propName: string, propUser?: T, subscribersName?: string): T -``` -现接口声明: -```js -prop(propName: string): SubscribedAbstractProperty -``` -1. prop第二三个参数为框架内部调用,不应对外开发,所以将接口变更为1个参数; -2. 返回类型T变更为SubscribedAbstractProperty; - -**适配指导** - -```js -let storage = new LocalStorage({"PropA": "47"}); -let propA = storage.prop("PropA"); -propA.set(51); // one-way sync -``` - -## cl.LocalStorage.6 setAndProp参数和返回类型变更 -**变更影响** - -原接口声明: -```js -setAndProp(propName: string, defaultValue: T, propUser?: T, subscribersName?: string): T -``` -现接口声明: -```js -setAndProp(propName: string, defaultValue: S): SubscribedAbstractProperty -``` -1. setAndProp第三四个参数为框架内部调用,不应对外开发,所以将接口变更为2个参数; -2. 返回类型T变更为SubscribedAbstractProperty; - -**适配指导** - -```js -let storage = new LocalStorage({"PropA": "47"}); -let propA = storage.setAndProp("PropA", "48"); -propA.set(51); // one-way sync -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelog-security.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelog-security.md deleted file mode 100755 index 8c87ddad95..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelog-security.md +++ /dev/null @@ -1,475 +0,0 @@ -# security子系统ChangeLog - -## cl.security.1 Random的setSeed功能变更,由异步接口改为同步接口 - -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -修改前的接口原型: -setSeed(seed : DataBlob, callback : AsyncCallback\) : void; -setSeed(seed : DataBlob) : Promise\; -修改后的接口原型: -setSeed(seed : DataBlob) : void; - -**适配指导** -查看API参考中setSeed对应的接口适配指南: -[加解密算法库框架-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cryptoFramework.md) - - -## cl.security.2 interface DataArray 从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -interface DataArray从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts - -**适配指导** -重新import并使用对应的.d.ts文件: -import cryptoCert from '@ohos.security.cert'; -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.3 interface EncodingFormat从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -interface EncodingFormat从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts - -**适配指导** -重新import并使用对应的.d.ts文件: -import cryptoCert from '@ohos.security.cert'; -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.4 interface EncodingBlob 从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -interface EncodingBlob 从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts - -**适配指导** -重新import并使用对应的.d.ts文件: -import cryptoCert from '@ohos.security.cert'; -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.5 interface CertChainData从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -interface CertChainData从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts - -**适配指导** -重新import并使用对应的.d.ts文件: -import cryptoCert from '@ohos.security.cert'; -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.6 interface X509Cert从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -interface X509Cert从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts - -**适配指导** -重新import并使用对应的.d.ts文件: -import cryptoCert from '@ohos.security.cert'; -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.7 function createX509Cert从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -function createX509Cert从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts - -**适配指导** -重新import并使用对应的.d.ts文件: -import cryptoCert from '@ohos.security.cert'; -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.8 interface X509CrlEntry从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -interface X509CrlEntry从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts - -**适配指导** -重新import并使用对应的.d.ts文件: -import cryptoCert from '@ohos.security.cert'; -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.9 interface X509Crl从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -interface X509Crl从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts - -**适配指导** -重新import并使用对应的.d.ts文件: -import cryptoCert from '@ohos.security.cert'; -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.10 function createX509Crl从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -function createX509Crl从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts - -**适配指导** -重新import并使用对应的.d.ts文件: -import cryptoCert from '@ohos.security.cert'; -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.11 interface CertChainValidator从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -interface CertChainValidator从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts - -**适配指导** -重新import并使用对应的.d.ts文件: -import cryptoCert from '@ohos.security.cert'; -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.12 function createCertChainValidator从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -function createCertChainValidator从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts - -**适配指导** -重新import并使用对应的.d.ts文件: -import cryptoCert from '@ohos.security.cert'; -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.13 X509Cert 的getPublicKey功能变更,由异步接口改为同步接口 -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -修改前的接口原型: -getPublicKey(callback : AsyncCallback\) : void; -getPublicKey() : Promise\; -修改后的接口原型: -getPublicKey() : cryptoFramework.PubKey; - -**适配指导** -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.14 X509Cert 的checkValidityWithDate功能变更,由异步接口改为同步接口 -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -修改前的接口原型: -checkValidityWithDate(date: string, callback : AsyncCallback\) : void; -checkValidityWithDate(date: string) : Promise\; -修改后的接口原型: -checkValidityWithDate(date: string) : void; - -**适配指导** -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.15 X509CrlEntry 的getCertIssuer功能变更,由异步接口改为同步接口 -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -修改前的接口原型: -getCertIssuer(callback : AsyncCallback\) : void; -getCertIssuer() : Promise\; - -修改后的接口原型: -getCertIssuer() : DataBlob; - -**适配指导** -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.16 X509CrlEntry 的getRevocationDate功能变更,由异步接口改为同步接口 -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -修改前的接口原型: -getRevocationDate(callback : AsyncCallback\) : void; -getRevocationDate() : Promise\; - -修改后的接口原型: -getRevocationDate() : string; - -**适配指导** -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.17 X509Crl 的isRevoked功能变更,由异步接口改为同步接口 -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -修改前的接口原型: -isRevoked(cert : X509Cert, callback : AsyncCallback\) : void; -isRevoked(cert : X509Cert) : Promise\; - -修改后的接口原型: -isRevoked(cert : X509Cert) : boolean; - -**适配指导** -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.18 X509Crl 的getRevokedCert功能变更,由异步接口改为同步接口 -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -修改前的接口原型: -getRevokedCert(serialNumber : number, callback : AsyncCallback\) : void; -getRevokedCert(serialNumber : number) : Promise\; - -修改后的接口原型: -getRevokedCert(serialNumber : number) : X509CrlEntry; - -**适配指导** -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.19 X509Crl 的getRevokedCertWithCert功能变更,由异步接口改为同步接口 -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -修改前的接口原型: -getRevokedCertWithCert(cert : X509Cert, callback : AsyncCallback\) : void; -getRevokedCertWithCert(cert : X509Cert) : Promise\; - -修改后的接口原型: -getRevokedCertWithCert(cert : X509Cert) : X509CrlEntry; - -**适配指导** -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - - -## cl.security.20 X509Crl 的getTbsInfo功能变更,由异步接口改为同步接口 -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -修改前的接口原型: -getTbsInfo(callback : AsyncCallback\) : void; -getTbsInfo() : Promise\; - -修改后的接口原型: -getTbsInfo() : DataBlob; - -**适配指导** -查看API参考中对应的接口适配指南: -[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md) - -## cl.security.21 HUKS支持No-Hash的签名模式 - -变更之前,应用传递huks.HuksTag.HUKS_TAG_DIGEST = huks.HuksKeyDigest.HUKS_DIGEST_NONE,HUKS默认使用huks.HuksKeyDigest.HUKS_DIGEST_SHA256进行处理;变更之后,应用传递huks.HuksTag.HUKS_TAG_DIGEST = huks.HuksKeyDigest.HUKS_DIGEST_NONE时,HUKS默认不进行摘要处理,需要业务先对原始数据进行hash操作,再将hash后的摘要传入huks进行签名/验签处理。 - -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以使得变更前后的签名/验签结果通过。 - -**关键的接口/组件变更** - -发布的JS接口不变, 传入接口的参数集合发生变更。 - -业务使用No-Hash的签名模式,需要先对原始数据进行hash处理,再将hash后的摘要传入huks签名/验签接口。同时huks.HuksTag.HUKS_TAG_DIGEST参数设置为huks.HuksKeyDigest.HUKS_DIGEST_NONE。 - -**适配指导** - -以签名为例,示例代码如下: - -```js -import huks from '@ohos.security.huks'; - -let keyAlias = 'rsa_Key'; -/* sha256之后的摘要值 */ -let inDataAfterSha256 = new Uint8Array( - 0x4B, 0x1E, 0x22, 0x64, 0xA9, 0x89, 0x60, 0x1D, 0xEC, 0x78, 0xC0, 0x5D, 0xBE, 0x46, 0xAD, 0xCF, - 0x1C, 0x35, 0x16, 0x11, 0x34, 0x01, 0x4E, 0x9B, 0x7C, 0x00, 0x66, 0x0E, 0xCA, 0x09, 0xC0, 0xF3, -); -/* 签名参数 */ -let signProperties = new Array(); -signProperties[0] = { - tag: huks.HuksTag.HUKS_TAG_ALGORITHM, - value: huks.HuksKeyAlg.HUKS_ALG_RSA, -} -signProperties[1] = { - tag: huks.HuksTag.HUKS_TAG_PURPOSE, - value: - huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_SIGN -} -signProperties[2] = { - tag: huks.HuksTag.HUKS_TAG_KEY_SIZE, - value: huks.HuksKeySize.HUKS_RSA_KEY_SIZE_2048, -} -signProperties[3] = { - tag: huks.HuksTag.HUKS_TAG_DIGEST, - value: huks.HuksKeyDigest.HUKS_DIGEST_NONE, // 设置 digest-none -} -let signOptions = { - properties: signProperties, - inData: inDataAfterSha256 // 设置HASH后的值 -} - -huks.initSession(keyAlias, signOptions); -``` - -更多接口的示例代码可参考[HUKS-guidelines](../../../application-dev/security/huks-guidelines.md)和[HUKS API](../../../application-dev/reference/apis/js-apis-huks.md)。 - -## cl.security.22 HUKS支持在密钥使用时指定密钥运算参数 - -变更之前,业务在生成密钥的时候,必须指定密钥运算的全部参数;变更之后,在生成密钥时,只需要包含必选参数即可,在密钥使用阶段再传入其他参数。业务使用会更加灵活。 - -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 - -允许应用在生成密钥阶段传入的参数中包含必选参数即可,在密钥使用阶段再传入其他可选参数。 - -**关键的接口/组件变更** - -发布的JS接口不变, 传入接口的参数集合发生变更,将参数分为必选参数和可选参数,具体可参考[HUKS-guidelines](../../../application-dev/security/huks-guidelines.md),涉及的接口有: - -huks.generateKeyItem - -huks.importKeyItem - -huks.importWrappedKeyItem - -huks.initSession - -huks.updateSession - -huks.finishSession - -**适配指导** - -以生成密钥为例,示例代码如下: - -```js -let keyAlias = 'keyAlias'; -let properties = new Array(); -//必选参数 -properties[0] = { - tag: huks.HuksTag.HUKS_TAG_ALGORITHM, - value: huks.HuksKeyAlg.HUKS_ALG_RSA -}; -//必选参数 -properties[1] = { - tag: huks.HuksTag.HUKS_TAG_KEY_SIZE, - value: huks.HuksKeySize.HUKS_RSA_KEY_SIZE_2048 -}; -//必选参数 -properties[2] = { - tag: huks.HuksTag.HUKS_TAG_PURPOSE, - value: - huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_SIGN | - huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_VERIFY -}; -//可选参数,如果在生成密钥阶段没有传入,则在使用密钥阶段必须传入。 -properties[3] = { - tag: huks.HuksTag.HUKS_TAG_DIGEST, - value: huks.HuksKeyDigest.HUKS_DIGEST_SHA256 -}; -let options = { - properties: properties -}; -try { - huks.generateKeyItem(keyAlias, options, function (error, data) { - if (error) { - console.error(`callback: generateKeyItem failed, code: ${error.code}, msg: ${error.message}`); - } else { - console.info(`callback: generateKeyItem key success`); - } - }); -} catch (error) { - console.error(`callback: generateKeyItem input arg invalid, code: ${error.code}, msg: ${error.message}`); -} -``` - -更多接口的示例代码可参考[HUKS-guidelines](../../../application-dev/security/huks-guidelines.md)和[HUKS API](../../../application-dev/reference/apis/js-apis-huks.md)。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-ability.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-ability.md deleted file mode 100644 index 19e914fa00..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-ability.md +++ /dev/null @@ -1,140 +0,0 @@ -# 元能力子系统JS API变更Changelog - -OpenHarmony 3.2.10.1(Mr)版本相较于OpenHarmony 3.2.beta4版本,元能力子系统的API变更如下 - -## cl.ability.1 接口迁移 -ability子系统UIAbilityContext的接口requestPermissionsFromUser迁移到security子系统: - -之前权限弹窗应用是基于UIAbility实现的,需要借助于UIAbilityContext的startAbilityForResult接口把授权结果带回给调用方,故把requestPermissionsFromUser接口暂时放在UIAbilityContext中。现在权限弹窗应用切换为基于ServiceExtensionAbility实现,不再需要借助UIAbilityContext的startAbilityForResult接口,因此把requestPermissionsFromUser接口迁移到security子系统。 - -开发者需要根据以下说明对应用进行适配。 - - **变更影响** - -影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 - -**关键的接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| ------------------------- | ------------------- | ------------------------------------------------------------ | -------- | -| application/UIAbilityContext | UIAbilityContext | requestPermissionsFromUser(permissions: Array, requestCallback: AsyncCallback): void; | 删除 | -| application/UIAbilityContext | UIAbilityContext | requestPermissionsFromUser(permissions: Array): Promise; | 删除 | -| @ohos.abilityAccessCtrl | AtManager | requestPermissionsFromUser(context: Context, permissions: Array, requestCallback: AsyncCallback) : void; | 新增 | -| @ohos.abilityAccessCtrl | AtManager | requestPermissionsFromUser(context: Context, permissions: Array) : Promise; | 新增 | - - -**适配指导** - -应用中调用requestPermissionsFromUser拉起权限弹窗应用可参考下列代码 - -Stage模型下的示例: - -```ts -import abilityAccessCtrl from '@ohos.abilityAccessCtrl.d.ts'; -//UIAbility的onWindowStageCreate生命周期 -onWindowStageCreate() { - let AtManager = abilityAccessCtrl.createAtManager(); - //requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗 - AtManager.requestPermissionsFromUser(this.context, ["ohos.permission.MANAGE_DISPOSED_APP_STATUS"]).then((data) => { - console.log("data type:" + typeof(data)); - console.log("data:" + data); - console.log("data permissions:" + data.permissions); - console.log("data result:" + data.authResults); - }).catch((err) => { - console.error('Failed to start ability', err.code); - }) -} -``` - - - -## cl.ability.2 删除标记为废弃的API9接口 - -[元能力异常处理整改](../OpenHarmony_3.2.8.3/changelogs-ability.md)将部分API9接口标记为了废弃,根据OpenHarmony接口规范,需要删除标记为废弃的API9接口。 - -**变更影响** - -基于此前版本开发的应用,需要将被删除的接口替换为新接口,否则会影响应用编译。 - -**关键接口/组件变更** - -接口文件被删除: - -| 被删除接口 | 新接口 | -| ----------------------------------------------- | ----------------------------------------------- | -| @ohos.application.Ability.d.ts | @ohos.app.ability.UIAbility.d.ts | -| @ohos.application.AbilityConstant.d.ts | @ohos.app.ability.AbilityConstant.d.ts | -| @ohos.application.AbilityLifecycleCallback.d.ts | @ohos.app.ability.AbilityLifecycleCallback.d.ts | -| @ohos.application.AbilityStage.d.ts | @ohos.app.ability.AbilityStage.d.ts | -| @ohos.application.EnvironmentCallback.d.ts | @ohos.app.ability.EnvironmentCallback.d.ts | -| @ohos.application.ExtensionAbility.d.ts | @ohos.app.ability.ExtensionAbility.d.ts | -| @ohos.application.FormExtension.d.ts | @ohos.app.form.FormExtensionAbility.d.ts | -| @ohos.application.ServiceExtensionAbility.d.ts | @ohos.app.ability.ServiceExtensionAbility.d.ts | -| @ohos.application.StartOptions.d.ts | @ohos.app.ability.StartOptions.d.ts | -| @ohos.application.context.d.ts | @ohos.app.ability.common.d.ts | -| @ohos.application.errorManager.d.ts | @ohos.app.ability.errorManager.d.ts | - -接口、属性被删除: - -- @ohos.application.Configuration.d.ts - - Configuration 的 direction、screenDensity、displayId、hasPointerDevice 被删除。可以使用 @ohos.app.ability.Configuration.d.ts 的 Configuration替换。 -- @ohos.application.ConfigurationConstant.d.ts - - 枚举 Direction 和 ScreenDensity 被删除。可以使用 @ohos.app.ability.ConfigurationConstant.d.ts 的枚举 Direction 和 ScreenDensity 替换。 -- @ohos.application.abilityManager.d.ts - - 方法 getExtensionRunningInfos 和 getTopAbility 被删除。可以使用 @ohos.app.ability.abilityManager.d.ts 的同名方法替换。 -- @ohos.application.appManager.d.ts - - 枚举 ApplicationState 和 ProcessState 被删除。可以使用 @ohos.app.ability.appManager.d.ts 的枚举 ApplicationState 和 ProcessState 替换。 - - 方法 registerApplicationStateObserver 和 getProcessRunningInformation被删除。可以使用 @ohos.app.ability.appManager.d.ts 的同名方法替换。 -- @ohos.application.formHost.d.ts - - 方法 shareForm 和 notifyFormsPrivacyProtected 被删除。可以使用 @ohos.app.form.formHost.d.ts 的同名方法替换。 -- @ohos.application.formInfo.d.ts - - 枚举 FormType 的 eTS 被删除,可以使用 @ohos.app.form.formInfo.d.ts 的 FormType 中的 eTS 替换。 - - 枚举 FormParam 的 IDENTITY_KEY、BUNDLE_NAME_KEY、ABILITY_NAME_KEY、DEVICE_ID_KEY 被删除,可以使用 @ohos.app.form.formInfo.d.ts 的 FormParam 中的同名枚举替换。 - - 接口 FormInfoFilter 被删除。可以使用 @ohos.app.form.formInfo.d.ts 的 FormInfoFilter 替换。 - - 枚举 FormDimension 被删除。可以使用 @ohos.app.form.formInfo.d.ts 的 FormDimension 替换。 - - 枚举 VisibilityType 被删除。可以使用 @ohos.app.form.formInfo.d.ts 的 VisibilityType 替换。 -- @ohos.wantAgent.d.ts - - 方法 trigger 和 getOperationType 被删除。可以使用 @ohos.app.ability.wantAgent.d.ts 的同名方法替换。 -- application/ApplicationContext.d.ts - - 方法 registerAbilityLifecycleCallback、unregisterAbilityLifecycleCallback、registerEnvironmentCallback、unregisterEnvironmentCallback 被删除。可以使用 on、off 替换。 -- application/ServiceExtensionContext.d.ts - - 方法 connectAbility、connectAbilityWithAccount、disconnectAbility 被删除。可以使用 connectServiceExtensionAbility、connectServiceExtensionAbilityWithAccount、disconnectServiceExtensionAbility 替换。 -- @ohos.application.FormExtension.d.ts - - 生命周期onCreate、onCastToNormal、onUpdate、onVisibilityChange、onEvent、onDestroy、onAcquireFormState、onShare 被删除。可以使用@ohos.app.form.FormExtensionAbility.d.ts的onAddForm、onCastToNormalForm、onUpdateForm、onChangeFormVisibility、onFormEvent、onRemoveForm、onAcquireFormState、onShareForm -- @ohos.application.abilityDelegatorRegistry.d.ts - - 导出类 AbilityDelegator、AbilityDelegatorArgs、AbilityMonitor、ShellCmdResult 被删除。可以使用@ohos.app.ability.abilityDelegatorRegistry.d.ts中的同名导出类替换。 -- @ohos.application.abilityManager.d.ts - - 导出类 AbilityRunningInfo、ExtensionRunningInfo 被删除。可以使用@ohos.app.ability.abilityManager.d.ts中的同名导出类替换。 -- @ohos.application.appManager.d.ts - - 导出类 AbilityStateData、AppStateData、ApplicationStateObserver、ProcessRunningInfo、ProcessRunningInformation 被删除。可以使用@ohos.app.ability.appManager.d.ts中的同名导出类替换。 -- @ohos.application.missionManager.d.ts - - 导出类 MissionInfo、MissionListener、MissionSnapshot 被删除。可以使用@ohos.app.ability.missionManager.d.ts中的同名导出类替换。 -- @ohos.wantAgent.d.ts - - 导出类 TriggerInfo、WantAgentInfo 被删除。可以使用@ohos.app.ability.wantAgent.d.ts中的同名导出类替换。 - - - - - -**适配指导** - -如上所述,仅少数接口修改了接口名的如注册回调函数(registerAbilityLifecycleCallback、unregisterAbilityLifecycleCallback、registerEnvironmentCallback、unregisterEnvironmentCallback)和连接断开 ServiceExtensionAbility(connectAbility、connectAbilityWithAccount、disconnectAbility),卡片生命周期等需要替换成新的接口名。 - -绝大多数接口平移到了新的namespace中,所以可以通过修改import来解决适配问题: - -如原先接口使用了@ohos.application.Ability - -```js -import Ability from '@ohos.application.Ability'; -``` - -可以通过直接修改import,来切换到新的namespace上: - -```js -import Ability from '@ohos.app.ability.UIAbility'; -``` - -此外还需要适配异常处理,具体参考新接口的接口文档。 - - - diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-container.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-container.md deleted file mode 100644 index 44cfb4d87f..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-container.md +++ /dev/null @@ -1,23 +0,0 @@ -# commonlibrary子系统JS API变更Changelog - -OpenHarmony 3.2.10.1(Mr)版本相较于OpenHarmony 3.2.beta4版本,container子系统的API变更如下 - -## cl.公共基础类库子系统.1 错误码及信息变更 -公共基础类库子系统子系统中ArrayList、List、LinkedList、Stack、Queue、Deque、PlainArray、LightWeightMap、LightWeightSet、HashMap、HashSet、TreeMap、TreeSet类的接口抛出的错误码及信息变更: - -变更后的错误码详细介绍请参见[语言基础类库错误码](../../../application-dev/reference/errorcodes/errorcode-utils.md)。 - -已使用相关接口开发的应用无需重新适配。 - -**关键的接口/组件变更** -各个类中的接口重新定义了错误码抛出的信息,并在对应模块的`*.d.ts`声明文件中通过'@throws'标签进行标示。 -示例如下: -ArrayList类变更前: -constructor(); -ArrayList类变更后: -@throws { BusinessError } 10200012 - The ArrayList's constructor cannot be directly invoked. -constructor(); - -**变更影响** - -暂无影响。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-distributeddatamgr.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-distributeddatamgr.md deleted file mode 100644 index 8273daea91..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-distributeddatamgr.md +++ /dev/null @@ -1,160 +0,0 @@ -# 分布式数据管理子系统JS API变更Changelog - -OpenHarmony 3.2.10.1(Mr)版本相较于OpenHarmony 3.2.beta4版本,分布式数据管理子系统的API变更如下 - -## cl.distributeddatamgr.1 接口变更 -distributeddatamgr子系统kv_store组件接口存在变更: - -由于执行时间固定且耗时短,不需要异步等待执行结果,createKVManager方法需要改为同步接口。因此旧的接口function createKVManager(config: KVManagerConfig): Promise\; 与 function createKVManager(config: KVManagerConfig, callback: AsyncCallback): void; 改为 function createKVManager(config: KVManagerConfig): KVManager; - -开发者需要根据以下说明对应用进行适配。 - - **变更影响** - -影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 - -**关键的接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| ------------------------- | ------------------- | ------------------------------------------------------------ | -------- | -| @ohos.distributedKVStore | distributedKVStore | function createKVManager(config: KVManagerConfig): Promise\; | 删除 | -| @ohos.distributedKVStore | distributedKVStore | function createKVManager(config: KVManagerConfig): KVManager; | 变更 | - - -**适配指导** - -应用中调用createKVManager创建KVManager对象实例可参考下列代码 - -Stage模型下的示例: - -```ts -import AbilityStage from '@ohos.application.Ability' -let kvManager; -export default class MyAbilityStage extends AbilityStage { - onCreate() { - console.log("MyAbilityStage onCreate") - let context = this.context - const kvManagerConfig = { - context: context, - bundleName: 'com.example.datamanagertest', - } - try { - kvManager = distributedKVStore.createKVManager(kvManagerConfig); - } catch (e) { - console.error(`Failed to create KVManager.code is ${e.code},message is ${e.message}`); - } - } -} -``` - -FA模型下的示例: - -```ts -import featureAbility from '@ohos.ability.featureAbility' -let kvManager; -let context = featureAbility.getContext() -const kvManagerConfig = { - context: context, - bundleName: 'com.example.datamanagertest', -} -try { - kvManager = distributedKVStore.createKVManager(kvManagerConfig); -} catch (e) { - console.error(`Failed to create KVManager.code is ${e.code},message is ${e.message}`); -} -``` - -## cl.distributeddatamgr.2 function getRdbStoreV9 从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts -**变更影响** -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -如下接口: -```ts -function getRdbStoreV9(context: Context, config: StoreConfigV9, version: number, callback: AsyncCallback): void; -function getRdbStoreV9(context: Context, config: StoreConfigV9, version: number): Promise; -``` -从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts: -``` -function getRdbStore(context: Context, config: StoreConfig, callback: AsyncCallback): void; -function getRdbStore(context: Context, config: StoreConfig): Promise; -``` - -**适配指导** - * `import rdb from "@ohos.data.rdb"` 改为 `import rdb from "@ohos.data.relationalStore"`; - * 按上述接口变更对齐修改所调用的方法名称即可。 - -## cl.distributeddatamgr.3 function deleteRdbStoreV9 从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts -**变更影响** -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -如下接口: -```ts -function deleteRdbStoreV9(context: Context, name: string, callback: AsyncCallback): void; -function deleteRdbStoreV9(context: Context, name: string): Promise; -``` -从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts: -``` -function deleteRdbStoreV9(context: Context, name: string, callback: AsyncCallback): void; -function deleteRdbStoreV9(context: Context, name: string): Promise; -``` - -**适配指导** - * `import rdb from "@ohos.data.rdb"` 改为 `import rdb from "@ohos.data.relationalStore"`; - * 按上述接口变更对齐修改所调用的方法名称即可。 - -## cl.distributeddatamgr.4 interface StoreConfigV9 从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts -**变更影响** -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -interface StoreConfigV9 从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts 改名为interface StoreConfig。 - -**适配指导** - * `import rdb from "@ohos.data.rdb"` 改为 `import rdb from "@ohos.data.relationalStore"`; - * 按上述接口变更对齐修改所调用的接口名称即可。 - -## cl.distributeddatamgr.5 enum SecurityLevel 从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts -**变更影响** -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -enum SecurityLevel 从ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts。 - -**适配指导** - * `import rdb from "@ohos.data.rdb"` 改为 `import rdb from "@ohos.data.relationalStore"`; - * 按上述接口变更对齐修改所调用的接口名称即可。 - -## cl.distributeddatamgr.6 interface RdbStoreV9 从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts -**变更影响** -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -interface RdbStoreV9 从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts 改名为interface RdbStore。 - -**适配指导** - * `import rdb from "@ohos.data.rdb"` 改为 `import rdb from "@ohos.data.relationalStore"`; - * 按上述接口变更对齐修改所调用的接口名称即可。 - -## cl.distributeddatamgr.7 class RdbPredicatesV9 从ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts -**变更影响** -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -class RdbPredicatesV9 从ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts 改名为interface RdbPredicates。 - -**适配指导** - * `import rdb from "@ohos.data.rdb"` 改为 `import rdb from "@ohos.data.relationalStore"`; - * 按上述接口变更对齐修改所调用的接口名称即可。 - -## cl.distributeddatamgr.8 interface ResultSetV9 从api/@ohos.data.relationalStore.d.ts 迁移至@ohos.data.relationalStore.d.ts -**变更影响** -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** -interface ResultSetV9 从api/data/rdb/resultSet.d.ts 迁移至@ohos.data.relationalStore.d.ts 改名为interface ResultSet。 - -**适配指导** - * `import rdb from "@ohos.data.rdb"` 改为 `import rdb from "@ohos.data.relationalStore"`; - * ResultSetV9实例仅通过getRdbStoreV9方法获取,参考cl.distributeddatamgr.2变更后,代码可自动适配ResultSet。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-multimedia.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-multimedia.md deleted file mode 100644 index 45249cf985..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-multimedia.md +++ /dev/null @@ -1,53 +0,0 @@ -## cl.multimedia.av_session.001 av_session所有接口更换为系统接口 - -所有av_session的接口变更为SystemApi。 - -**变更影响** - -非系统应用无法调用系统接口,如调用方为非系统应用或未申请SystemApi相关权限,将无法调用接口。 - -**关键的接口/组件变更** - -所有接口均变更为SystemApi,接口明细如下: - -| 接口、枚举或变量名 | 类型 | 是否为SystemApi | -| -------- | -------- | ------- | -| SessionToken | interface | 是 | -| AVMetadata | interface | 是 | -| AVPlaybackState | interface | 是 | -| PlaybackPosition | interface | 是 | -| OutputDeviceInfo | interface | 是 | -| AVSessionDescriptor | interface | 是 | -| AVSessionController | interface | 是 | -| AVControlCommand | interface | 是 | -| createAVSession | function | 是 | -| getAllSessionDescriptors | function | 是 | -| createController | function | 是 | -| castAudio | function | 是 | -| on | function | 是 | -| off | function | 是 | -| sendSystemAVKeyEvent | function | 是 | -| sendSystemControlCommand | function | 是 | -| sessionId | variable | 是 | -| setAVMetadata | function | 是 | -| setAVPlaybackState | function | 是 | -| setLaunchAbility | function | 是 | -| getController | function | 是 | -| getOutputDevice | function | 是 | -| activate | function | 是 | -| deactivate | function | 是 | -| destroy | function | 是 | -| getAVPlaybackState | function | 是 | -| getAVMetadata | function | 是 | -| getOutputDevice | function | 是 | -| sendAVKeyEvent | function | 是 | -| getLaunchAbility | function | 是 | -| getRealPlaybackPositionSync | function | 是 | -| isActive | function | 是 | -| getValidCommands | function | 是 | -| sendControlCommand | function | 是 | -| AVSessionType | type | 是 | -| AVControlCommandType | type | 是 | -| LoopMode | enum | 是 | -| PlaybackState | enum | 是 | -| AVSessionErrorCode | enum | 是 | diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-notification.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-notification.md deleted file mode 100644 index 7877ff8ae5..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-notification.md +++ /dev/null @@ -1,48 +0,0 @@ -# 事件通知子系统ChangeLog - -## cl.notification.1 删除标记为废弃的API9接口 - -[事件通知异常处理整改](../OpenHarmony_3.2.8.3/changelogs-notification.md)将部分API9接口标记为了废弃,根据OpenHarmony接口规范,需要删除标记为废弃的API9接口。 - -**变更影响** - -基于此前版本开发的应用,需要将被删除的接口替换为新接口,否则会影响应用编译。 - -**关键接口/组件变更** - -原接口中标记为废弃的API9接口将被删除,可以使用新接口中的同名接口替换。 - -| 原接口 | 新接口 | -| ----------------------- | -------------------------------- | -| @ohos.commonEvent.d.ts | @ohos.commonEventManager.d.ts | -| @ohos.notification.d.ts | @ohos.notificationManager.d.ts | -| @ohos.notification.d.ts | @ohos.notificationSubscribe.d.ts | - -接口、属性被删除: - -- @ohos.notification.d.ts - - 接口 publishAsBundle、cancelAsBundle、isNotificationSlotEnabled、setSyncNotificationEnabledWithoutApp、getSyncNotificationEnabledWithoutApp 被删除。可以使用 api/@ohos.notificationManager.d.ts 的同名接口替换。 - - 接口 enableNotificationSlot 被删除。可以使用 api/@ohos.notificationManager.d.ts 的接口 setNotificationEnableSlot 替换。 - - 导出类 NotificationActionButton、NotificationBasicContent、NotificationContent、NotificationLongTextContent、NotificationMultiLineContent、NotificationPictureContent、NotificationFlags、NotificationFlagStatus、NotificationRequest、DistributedOptions、NotificationSlot、NotificationSorting、NotificationTemplate、NotificationUserInput 被删除。可以使用 api/@ohos.notificationManager.d.ts 的同名导出类替换。 - - 导出类 NotificationSubscribeInfo、NotificationSubscriber、SubscribeCallbackData、EnabledNotificationCallbackData 被删除。可以使用 api/@ohos.notificationSubscribe.d.ts 的同名导出类替换。 - -**适配指导** - -如上所述,仅将老接口平移到了新的namespace中,所以可以通过修改import来解决适配问题: - -如原先接口使用了@ohos.commonEvent - -```js -import commonEvent from '@ohos.commonEvent'; -``` - -可以通过直接修改import,来切换到新的namespace上: - -```js -import commonEvent from '@ohos.commonEventManager'; -``` - -@ohos.notification拆分成了两个namespace,需要根据接口情况选择需要的新namespace进行适配。 - -此外还需要适配异常处理,具体参考新接口的接口文档。 - diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-time.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-time.md deleted file mode 100644 index 1f6aa755b9..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-time.md +++ /dev/null @@ -1,336 +0,0 @@ -# 时间时区子系统ChangeLog - -## cl.time.1 接口异常抛出变更 - -时间时区子系统定时器接口异常抛出:202非系统应用异常和401参数无效异常。 - -**变更影响** - -该接口变更前向兼容,基于此前版本开发的应用可继续使用接口,增加相应的异常处理,原有功能不受影响。 - -**关键接口/组件变更** - -变更前: - - 接口异常抛出message,无错误码。 - -变更后: - - 接口异常抛出message和code,包括202非系统应用异常和401参数无效异常。 - - | 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | - | ----------------- | ----------- | ------------------------------------------------------------ | -------- | - | @ohos.systemTimer | systemTimer | function createTimer(options: TimerOptions, callback: AsyncCallback): void | 变更 | - | @ohos.systemTimer | systemTimer | function createTimer(options: TimerOptions): Promise | 变更 | - | @ohos.systemTimer | systemTimer | function startTimer(timer: number, triggerTime: number, callback: AsyncCallback): void | 变更 | - | @ohos.systemTimer | systemTimer | function startTimer(timer: number, triggerTime: number): Promise | 变更 | - | @ohos.systemTimer | systemTimer | function stopTimer(timer: number, callback: AsyncCallback): void | 变更 | - | @ohos.systemTimer | systemTimer | function stopTimer(timer: number): Promise | 变更 | - | @ohos.systemTimer | systemTimer | function destroyTimer(timer: number, callback: AsyncCallback): void | 变更 | - | @ohos.systemTimer | systemTimer | function destroyTimer(timer: number): Promise | 变更 | - - -**适配指导** - -应用中调用systemTimer所有接口可参考下列代码进行异常捕获 - -createTimer callback形式调用: - -**示例:** - -```js -export default { - systemTimer () { - let options = { - type: systemTimer.TIMER_TYPE_REALTIME, - repeat: false - }; - try { - systemTimer.createTimer(options, (error, timerId) => { - if (error) { - //捕获权限否定异常 - console.info(`Failed to create timer. message: ${error.message}, code: ${error.code}`); - } - console.info(`Succeeded in creating timer. timerId: ${timerId}`); - }); - } catch(e) { - //捕获参数校验失败异常 - console.info(`Failed to create timer. message: ${e.message}, code: ${e.code}`); - } - } -} -``` - -createTimer promise形式调用: - -**示例:** - -```js -export default { - systemTimer () { - let options = { - type: systemTimer.TIMER_TYPE_REALTIME, - repeat: false - }; - try { - systemTimer.createTimer(options).then((timerId) => { - console.info(`Succeeded in creating timer. timerId: ${timerId}`); - }).catch((error) => { - //捕获权限否定异常 - console.info(`Failed to create timer. message: ${error.message}, code: ${error.code}`); - }); - } catch(e) { - //捕获参数校验失败异常 - console.info(`Failed to create timer. message: ${e.message}, code: ${e.code}`); - } - } -} -``` - -startTimer callback形式调用: - -**示例:** - -```js -export default { - async systemTimer () { - let options = { - type: systemTimer.TIMER_TYPE_REALTIME, - repeat:false - } - let timerId = await systemTimer.createTimer(options); - let triggerTime = new Date().getTime(); - triggerTime += 3000; - try { - systemTimer.startTimer(timerId, triggerTime, (error) => { - if (error) { - //捕获权限否定异常 - console.error(`Failed to start timer. message: ${error.message}, code: ${error.code}`); - } - }); - } catch (e) { - //捕获参数校验失败异常 - console.info(`Failed to start timer. message: ${e.message}, code: ${e.code}`); - } - } -} -``` - -startTimer promise形式调用: - -**示例:** - -```js -export default { - async systemTimer (){ - let options = { - type: systemTimer.TIMER_TYPE_REALTIME, - repeat:false - } - let timerId = await systemTimer.createTimer(options); - let triggerTime = new Date().getTime(); - triggerTime += 3000; - try { - systemTimer.startTimer(timerId, triggerTime).then((data) => { - console.log(`Succeeded in startting timer. Data:` + data); - }).catch((error) => { - //捕获权限否定异常 - console.info(`Failed to start timer. message: ${error.message}, code: ${error.code}`); - }); - } catch (e) { - //捕获参数校验失败异常 - console.info(`Failed to start timer. message: ${e.message}, code: ${e.code}`); - } - } -} -``` - -stopTimer callback形式调用: - -**示例:** - -```js -export default { - async systemTimer () { - let options = { - type: systemTimer.TIMER_TYPE_REALTIME, - repeat:false - } - let timerId = await systemTimer.createTimer(options); - let triggerTime = new Date().getTime(); - triggerTime += 3000; - systemTimer.startTimer(timerId, triggerTime); - try { - systemTimer.stopTimer(timerId, triggerTime, (error) => { - if (error) { - //捕获权限否定异常 - console.error(`Failed to stop timer. message: ${error.message}, code: ${error.code}`); - } - }); - } catch (e) { - //捕获参数校验失败异常 - console.info(`Failed to stop timer. message: ${e.message}, code: ${e.code}`); - } - } -}git -``` - -stopTimer promise形式调用: - -**示例:** - -```js -export default { - async systemTimer (){ - let options = { - type: systemTimer.TIMER_TYPE_REALTIME, - repeat:false - } - let timerId = await systemTimer.createTimer(options); - let triggerTime = new Date().getTime(); - triggerTime += 3000; - systemTimer.startTimer(timerId, triggerTime); - try { - systemTimer.stopTimer(timerId, triggerTime).then((data) => { - console.log(`Succeeded in stop timer. Data:` + data); - }).catch((error) => { - //捕获权限否定异常 - console.info(`Failed to stop timer. message: ${error.message}, code: ${error.code}`); - }); - } catch (e) { - //捕获参数校验失败异常 - console.info(`Failed to stop timer. message: ${e.message}, code: ${e.code}`); - } - } -} -``` - -destroyTimer callback形式调用: - -**示例:** - -```js -export default { - async systemTimer () { - let options = { - type: systemTimer.TIMER_TYPE_REALTIME, - repeat:false - } - let timerId = await systemTimer.createTimer(options); - let triggerTime = new Date().getTime(); - triggerTime += 3000; - systemTimer.startTimer(timerId, triggerTime); - systemTimer.stopTimer(timerId); - try { - systemTimer.destroyTimer(timerId, triggerTime, (error) => { - if (error) { - //捕获权限否定异常 - console.error(`Failed to destroy timer. message: ${error.message}, code: ${error.code}`); - } - }); - } catch (e) { - //捕获参数校验失败异常 - console.info(`Failed to destroy timer. message: ${e.message}, code: ${e.code}`); - } - } -} -``` - -destroyTimer promise形式调用: - -**示例:** - -```js -export default { - async systemTimer (){ - let options = { - type: systemTimer.TIMER_TYPE_REALTIME, - repeat:false - } - let timerId = await systemTimer.createTimer(options); - let triggerTime = new Date().getTime(); - triggerTime += 3000; - systemTimer.startTimer(timerId, triggerTime); - systemTimer.stopTimer(timerId); - try { - systemTimer.destroyTimer(timerId, triggerTime).then((data) => { - console.log(`Succeeded in destroy timer. Data:` + data); - }).catch((error) => { - //捕获权限否定异常 - console.info(`Failed to destroy timer. message: ${error.message}, code: ${error.code}`); - }); - } catch (e) { - //捕获参数校验失败异常 - console.info(`Failed to destroy timer. message: ${e.message}, code: ${e.code}`); - } - } -} -``` - -## cl.time.2 接口异常抛出变更 - -时间时区子系统时间相关接口异常抛出:201权限否定异常、202非系统应用异常和401参数无效异常。 - -**变更影响** - -基于此前版本开发的应用,继续使用无影响,使用新接口需要捕获并处理抛出的新异常。 - -**关键接口/组件变更** - -变更前: - - 接口异常抛出message,错误码-1。 - -变更后: - - 接口异常抛出message和code,包括201权限否定异常、202非系统应用异常和401参数无效异常。 - -原接口中标记为废弃的接口,可以使用新接口中的同名接口替换 - -| 原接口 | 新接口 | -| ---------------- | -------------------- | -| @ohos.systemTime | @ohos.systemDateTime | - -**适配指导** - -应用中调用systemTime所有接口可参考下列代码进行异常捕获,以setTime接口为例,其他接口适配方法相同。 - -callback形式调用: - -**示例:** - -```js -import systemDateTime from @ohos.systemDateTime -// time对应的时间为2021-01-20 02:36:25 -let time = 1611081385000; -try { - systemDateTime.setTime(time, (error) => { - //捕获权限否定异常和非系统应用异常 - if (error) { - console.info(`Failed to setting time. message: ${error.message}, code: ${error.code}`); - return; - } - console.info(`Succeeded in setting time.`); - }) -} catch(e) { - //捕获参数校验失败异常 - console.info(`Failed to set time. message: ${e.message}, code: ${e.code}`); -} -``` - -promise形式调用: - -**示例:** - -```js -import systemDateTime from @ohos.systemDateTime -// time对应的时间为2021-01-20 02:36:25 -let time = 1611081385000; -try { - systemDateTime.setTime(time).then(() => { - console.info(`Succeeded in setting time.`); - }).catch((error) => { - //捕获权限否定异常和非系统应用异常 - console.info(`Failed to setting time. message: ${error.message}, code: ${error.code}`); - }); -} catch(e) { - //捕获参数校验失败异常 - console.info(`Failed to set time. message: ${e.message}, code: ${e.code}`); -} -``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-url.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-url.md deleted file mode 100644 index c9ea0328d4..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-url.md +++ /dev/null @@ -1,70 +0,0 @@ -# 公共基础类库子系统JS API变更Changelog - -OpenHarmony 3.2.10.1(Mr)版本相较于OpenHarmony 3.2.beta4版本,url子系统的API变更如下 - -## cl.commonlibrary.1.URLParams类接口变更 -公共基础类库子系统url模块URLParams类构造函数存在变更: - -constructor(init?: string[][] | Record | string | URLSearchParams) 改为 constructor(init?: string[][] | Record | string | URLParams);参数类型为原来的URLSearchParams类改为URLParams类。 - -开发者需要根据以下说明对应用进行适配。 - - **变更影响** - -影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 - -**关键的接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| :------------------------ | ------------------- | ------------------------------------------------------------ | -------- | -| @ohos.url | URLParams | constructor(string[][] \| Record<string, string> \| string \| URLSearchParams) | 删除 | -| @ohos.url | URLParams | constructor(string[][] \| Record<string, string> \| string \| URLParams)| 变更 - -**适配指导** - -应用中创建URLParams对象实例可参考下列代码 - -示例: - -```ts -import url from '@ohos.url' -try { - let params1 = new Url.URLParams('?user=abc&query=xyz') - let params2 = new Url.URLParams(params1) - var result= params2.toString() - console.log(result) //"user=abc&query=xyz" -} catch (err) { - console.error(`Fail to ceate URLParams.codeis${err.code},message is ${err.message}`); -} -``` -## cl.commonlibrary.2.URL类属性变更url子系统URLParams类构造函数存在变更: -公共基础类库子系统url模块URL类属性存在变更: - -废弃searchParams: URLSearchParams属性,新增params: URLParams属性 - -开发者需要根据以下说明对应用进行适配。 - - **变更影响** - -影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 - -**关键的接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| :------------------------ | ------------------- | ------------------------------------------------------------ | -------- | -| @ohos.url | URL | searchParams: URLSearchParams; |废弃版本:9
| -| @ohos.url | URL | params: URLParams; | 新增 | - -**适配指导** - -应用中创建URLParams对象实例可参考下列代码 - -示例: - -```ts -import url from '@ohos.url' -let that = new Url.URL('http://username:password@host:8080/directory/file?你好=china#qwer=da') -let params = that.URLParams -var result = params.toString() -console.log(result) //%E4%BD%A0%E5%A5%BD=china -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.12/changelog-bundlemanager.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.12/changelog-bundlemanager.md deleted file mode 100644 index 8cb911d0fe..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.12/changelog-bundlemanager.md +++ /dev/null @@ -1,60 +0,0 @@ -# 包管理子系统ChangeLog - -## cl.bundlemanager.1 app.json配置文件删除atomicService标签 -删除配置文件app.json中atomicService标签 - -**变更影响**
-删除配置文件app.json中atomicService标签,IDE中不再支持配置该标签,使用该标签会导致IDE编译报错 - -**适配指导**
-删除atomicService标签 - -## cl.bundlemanager.2 app.json配置文件新增bundleType标签 -配置文件app.json中新增bundleType标签 - -**变更影响**
-现存的元服务([installationFree](../../../application-dev/quick-start/module-configuration-file.md)为true),必须在app.json中指定bundleType为atomicService,否则打包失败。 - -**适配指导**
-新增[bundleType](../../../application-dev/quick-start/app-configuration-file.md)标签。该标签为可缺省(缺省值为app)。该标签需要和module.json中[installationFree](../../../application-dev/quick-start/module-configuration-file.md)字段保持一一对应,其相应规则为: -- 当bundleType为app时,installationFree必须为false。 -- 当bundleType为atomicService时,installationFree必须为true。 - -## cl.bundlemanager.3 包管理ApplicationInfo结构体中删除split字段。 - -包管理[ApplicationInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ApplicationInfo.d.ts)结构体中删除split字段。 - -**变更影响**
-使用之前已发布的API 9各beta版本且使用到了split的,会编译失败。 - -**关键的接口/组件变更**
-包管理[ApplicationInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ApplicationInfo.d.ts)结构体中删除split字段。 - -**适配指导**
-删除ApplicationInfo结构体中的split字段。目前元服务中stage模型强制分包,不支持不分包。 - -## cl.bundlemanager.4 包管理HapModuleInfo结构体中删除atomicServiceModuleType字段。 - -包管理[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中删除atomicServiceModuleType字段。 - -**变更影响**
-使用之前已发布的API 9各beta版本且使用到了atomicServiceModuleType的,会编译失败。 - -**关键的接口/组件变更**
-包管理[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中删除atomicServiceModuleType字段。 - -**适配指导**
-删除[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中的atomicServiceModuleType字段。判断atomicServiceModuleType字段的部分,用[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中的moduleType代替。 - -## cl.bundlemanager.5 包管理删除AtomicServiceModuleType枚举值。 - -包管理[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中删除atomicServiceModuleType字段。 - -**变更影响**
-使用之前已发布的API 9各beta版本且使用到了atomicServiceModuleType的,会编译失败。 - -**关键的接口/组件变更**
-包管理[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中删除atomicServiceModuleType字段。 - -**适配指导**
-删除[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中的atomicServiceModuleType字段。判断atomicServiceModuleType字段的部分,用[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中的moduleType代替。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.12/changelog-imf.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.12/changelog-imf.md deleted file mode 100644 index a6cdab6b8d..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.12/changelog-imf.md +++ /dev/null @@ -1,21 +0,0 @@ -# 输入法框架子系统-输入法框架服务ChangeLog - - -## @ohos.InputMethodSubtype 中输入法子类型中name、label、id属性值变更 -从API9开始,变更如上三个属性值 - -开发者需要根据以下说明对应用进行适配。 - -**变更影响** - -此三个属性的取值发生变化,需要开发者进行适配更新 - -| 名称 | 变更前 | 变更后 | -| -------- | -------- | -------- | -| label | (1)取值:输入法子类型的id。| (1)取值:输入法子类型的标签。| -| name | (1)说明:输入法子类型的名字;(2)取值:输入法子类型的标签。| (1)说明:输入法应用的包名;(2)取值:输入法应用的包名。| -| id | (1)取值:输入法应用的包名。| (1)取值:输入法子类型的id。| - -**适配指导** - -请按上述取值变更结果适配更新。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.12/changelog-screenlock.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.12/changelog-screenlock.md deleted file mode 100644 index 8e5a2fab36..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.12/changelog-screenlock.md +++ /dev/null @@ -1,155 +0,0 @@ -# 主题框架子系统-锁屏管理服务ChangeLog - - -## cl.screenlock.1 isLocked、unlock接口使用权限变更 -从API9开始,变更为systemapi,停止对三方应用开放。 - -开发者需要根据以下说明对应用进行适配。 - -**变更影响** - -基于此前版本开发的应用,需适配变更的js接口,变更前的接口已经不能正常使用了,否则会影响原有功能。 - -- 涉及接口 - -```js - function isLocked(): boolean; - function unlock(callback: AsyncCallback): void; - function unlock():Promise; -``` - -- 变更前: - -```js - * Checks whether the screen is currently locked. - * - * @returns Returns {@code true} if the screen is currently locked; returns {@code false} otherwise. - * @syscap SystemCapability.MiscServices.ScreenLock - * @since 9 - */ - function isLocked(): boolean; - - /** - * Unlock the screen. - * - * @returns Returns {@code true} if the screen is unlocked successfully; returns {@code false} otherwise. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @throws {BusinessError} 13200002 - the screenlock management service is abnormal. - * @syscap SystemCapability.MiscServices.ScreenLock - * @systemapi Hide this for inner system use. - * @since 9 - */ - function unlock(callback: AsyncCallback): void; - - /** - * Unlock the screen. - * - * @returns Returns {@code true} if the screen is unlocked successfully; returns {@code false} otherwise. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @throws {BusinessError} 13200002 - the screenlock management service is abnormal. - * @syscap SystemCapability.MiscServices.ScreenLock - * @systemapi Hide this for inner system use. - * @since 9 - */ - function unlock():Promise; -``` - -- 变更后: - -```js - * Checks whether the screen is currently locked. - * - * @returns Returns {@code true} if the screen is currently locked; returns {@code false} otherwise. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @syscap SystemCapability.MiscServices.ScreenLock - * @systemapi Hide this for inner system use. - * @since 9 - */ - function isLocked(): boolean; - - /** - * Unlock the screen. - * - * @returns Returns {@code true} if the screen is unlocked successfully; returns {@code false} otherwise. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 13200002 - the screenlock management service is abnormal. - * @syscap SystemCapability.MiscServices.ScreenLock - * @since 9 - */ - function unlock(callback: AsyncCallback): void; - - /** - * Unlock the screen. - * - * @returns Returns {@code true} if the screen is unlocked successfully; returns {@code false} otherwise. - * @throws {BusinessError} 13200002 - the screenlock management service is abnormal. - * @syscap SystemCapability.MiscServices.ScreenLock - * @since 9 - */ - function unlock():Promise; -``` - - -**适配指导** - -该接口变更为系统应用后,三方应用已无法使用。 -系统应用可正常使用。 -示例代码如下: - -```js - try { - let ret = screenLock.isLocked(); - console.error(`Obtain whether the screen is locked successfully , ret is: ${ret}`); - } catch (error) { - console.error(`Failed to obtain whether the screen is locked, error is : ${error.code}, ${error.message}`); - } -``` - -```js - screenlock.unlock((err, data) => { - if (err) { - console.error(`Failed to unlock the screen, because: ${err.message}`); - return; - } - console.info(`unlock the screen successfully. result: ${data}`); - }); -``` - -```js - screenlock.unlock().then((data) => { - console.info(`unlock the screen successfully. result: ${data}`); - }).catch((err) => { - console.error(`Failed to unlock the screen, because: ${err.message}`); - }); -``` - - -## cl.screenlock.2 isSecure接口废弃变更 -从API9开始,废弃此接口。 - -开发者需要根据以下说明对应用进行适配。 - -**变更影响** - -该接口删除无法再使用,请使用进行更新使用,否则会影响原有功能。 - -- 涉及接口 - -```js - function isSecure(): boolean; -``` - -- 变更前: - -```js - function isSecure(): boolean; -``` - -- 变更后:删除接口,停止对外开放。 - - -**适配指导** - -该接口删除后无法再使用,请适配更新。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.12/changelog-wallpaper.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.12/changelog-wallpaper.md deleted file mode 100644 index 13baab4585..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.12/changelog-wallpaper.md +++ /dev/null @@ -1,304 +0,0 @@ -# 主题框架子系统-壁纸管理服务ChangeLog - - -## cl.wallpaper.1 getColorsSync、getMinHeightSync、getMinWidthSync、restore、setImage接口使用权限变更 -从API9开始,变更为systemapi,停止对三方应用开放。 - -开发者需要根据以下说明对应用进行适配。 - -**变更影响** - -基于此前版本开发的应用,需适配变更的js接口,变更前的接口已经不能正常使用了,否则会影响原有功能。 - -- 涉及接口 - -```js - function getColorsSync(wallpaperType: WallpaperType): Array; - function getMinHeightSync(): number; - function getMinWidthSync(): number; - function restore(wallpaperType: WallpaperType, callback: AsyncCallback): void; - function restore(wallpaperType: WallpaperType): Promise; - function setImage(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback): void; - function setImage(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise; -``` - -- 变更前: - -```js - /** - * Obtains the wallpaper colors for the wallpaper of the specified type. Returns rgbaColor type of array callback function. - * @param wallpaperType Indicates the wallpaper type. - * @returns { Array } the Array returned by the function. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @syscap SystemCapability.MiscServices.Wallpaper - * @systemapi Hide this for inner system use. - * @since 9 - */ - function getColorsSync(wallpaperType: WallpaperType): Array; - - /** - * Obtains the minimum height of the wallpaper. in pixels. returns 0 if no wallpaper has been set. - * @returns { number } the number returned by the function. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @syscap SystemCapability.MiscServices.Wallpaper - * @systemapi Hide this for inner system use. - * @since 9 - */ - function getMinHeightSync(): number; - - /** - * Obtains the minimum width of the wallpaper. in pixels. returns 0 if no wallpaper has been set. - * @returns { number } the number returned by the function. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @syscap SystemCapability.MiscServices.Wallpaper - * @systemapi Hide this for inner system use. - * @since 9 - */ - function getMinWidthSync(): number; - - /** - * Removes a wallpaper of the specified type and restores the default one. - * @param wallpaperType Indicates the wallpaper type. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 201 - permission denied. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @permission ohos.permission.SET_WALLPAPER - * @syscap SystemCapability.MiscServices.Wallpaper - * @systemapi Hide this for inner system use. - * @since 9 - */ - function restore(wallpaperType: WallpaperType, callback: AsyncCallback): void; - - /** - * Removes a wallpaper of the specified type and restores the default one. - * @param wallpaperType Indicates the wallpaper type. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 201 - permission denied. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @permission ohos.permission.SET_WALLPAPER - * @syscap SystemCapability.MiscServices.Wallpaper - * @systemapi Hide this for inner system use. - * @since 9 - */ - function restore(wallpaperType: WallpaperType): Promise; - - /** - * Sets a wallpaper of the specified type based on the uri path from a JPEG or PNG file or the pixel map of a PNG file. - * @param source Indicates the uri path from a JPEG or PNG file or the pixel map of the PNG file. - * @param wallpaperType Indicates the wallpaper type. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 201 - permission denied. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @permission ohos.permission.SET_WALLPAPER - * @syscap SystemCapability.MiscServices.Wallpaper - * @systemapi Hide this for inner system use. - * @since 9 - */ - function setImage(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback): void; - - /** - * Sets a wallpaper of the specified type based on the uri path from a JPEG or PNG file or the pixel map of a PNG file. - * @param source Indicates the uri path from a JPEG or PNG file or the pixel map of the PNG file. - * @param wallpaperType Indicates the wallpaper type. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 201 - permission denied. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @permission ohos.permission.SET_WALLPAPER - * @syscap SystemCapability.MiscServices.Wallpaper - * @systemapi Hide this for inner system use. - * @since 9 - */ - function setImage(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise; -``` - -- 变更后: - -```js - /** - * Obtains the wallpaper colors for the wallpaper of the specified type. Returns rgbaColor type of array callback function. - * @param wallpaperType Indicates the wallpaper type. - * @returns { Array } the Array returned by the function. - * @throws {BusinessError} 401 - parameter error. - * @syscap SystemCapability.MiscServices.Wallpaper - * @since 9 - */ - function getColorsSync(wallpaperType: WallpaperType): Array; - - /** - * Obtains the minimum height of the wallpaper. in pixels. returns 0 if no wallpaper has been set. - * @returns { number } the number returned by the function. - * @syscap SystemCapability.MiscServices.Wallpaper - * @since 9 - */ - function getMinHeightSync(): number; - - /** - * Obtains the minimum width of the wallpaper. in pixels. returns 0 if no wallpaper has been set. - * @returns { number } the number returned by the function. - * @syscap SystemCapability.MiscServices.Wallpaper - * @since 9 - */ - function getMinWidthSync(): number; - - /** - * Removes a wallpaper of the specified type and restores the default one. - * @param wallpaperType Indicates the wallpaper type. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 201 - permission denied. - * @permission ohos.permission.SET_WALLPAPER - * @syscap SystemCapability.MiscServices.Wallpaper - * @since 9 - */ - function restore(wallpaperType: WallpaperType, callback: AsyncCallback): void; - - /** - * Removes a wallpaper of the specified type and restores the default one. - * @param wallpaperType Indicates the wallpaper type. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 201 - permission denied. - * @permission ohos.permission.SET_WALLPAPER - * @syscap SystemCapability.MiscServices.Wallpaper - * @since 9 - */ - function restore(wallpaperType: WallpaperType): Promise; - - /** - * Sets a wallpaper of the specified type based on the uri path from a JPEG or PNG file or the pixel map of a PNG file. - * @param source Indicates the uri path from a JPEG or PNG file or the pixel map of the PNG file. - * @param wallpaperType Indicates the wallpaper type. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 201 - permission denied. - * @permission ohos.permission.SET_WALLPAPER - * @syscap SystemCapability.MiscServices.Wallpaper - * @since 9 - */ - function setImage(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback): void; - - /** - * Sets a wallpaper of the specified type based on the uri path from a JPEG or PNG file or the pixel map of a PNG file. - * @param source Indicates the uri path from a JPEG or PNG file or the pixel map of the PNG file. - * @param wallpaperType Indicates the wallpaper type. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 201 - permission denied. - * @permission ohos.permission.SET_WALLPAPER - * @syscap SystemCapability.MiscServices.Wallpaper - * @since 9 - */ - function setImage(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise; -``` - - -**适配指导** - -该接口变更为系统应用后,三方应用已无法使用。 -系统应用可正常使用。 -示例代码如下: - -```js - try { - let colors = wallpaper.getColorsSync(wallpaper.WallpaperType.WALLPAPER_SYSTEM); - console.log(`success to getColorsSync: ${JSON.stringify(colors)}`); - } catch (error) { - console.error(`failed to getColorsSync because: ${JSON.stringify(error)}`); - } -``` - -```js - let minHeight = wallpaper.getMinHeightSync(); -``` - -```js - let minWidth = wallpaper.getMinWidthSync(); -``` - -```js - wallpaper.restore(wallpaper.WallpaperType.WALLPAPER_SYSTEM, (error) => { - if (error) { - console.error(`failed to restore because: ${JSON.stringify(error)}`); - return; - } - console.log(`success to restore.`); - }); -``` - -```js - wallpaper.restore(wallpaper.WallpaperType.WALLPAPER_SYSTEM).then(() => { - console.log(`success to restore.`); - }).catch((error) => { - console.error(`failed to restore because: ${JSON.stringify(error)}`); - }); -``` - -```js - // source类型为string - let wallpaperPath = "/data/data/ohos.acts.aafwk.plrdtest.form/files/Cup_ic.jpg"; - wallpaper.setImage(wallpaperPath, wallpaper.WallpaperType.WALLPAPER_SYSTEM, (error) => { - if (error) { - console.error(`failed to setImage because: ${JSON.stringify(error)}`); - return; - } - console.log(`success to setImage.`); - }); -``` - -```js - // source类型为string - let wallpaperPath = "/data/data/ohos.acts.aafwk.plrdtest.form/files/Cup_ic.jpg"; - wallpaper.setImage(wallpaperPath, wallpaper.WallpaperType.WALLPAPER_SYSTEM).then(() => { - console.log(`success to setImage.`); - }).catch((error) => { - console.error(`failed to setImage because: ${JSON.stringify(error)}`); - }); -``` - - -## cl.wallpaper.2 getIdSync、getFileSync、isChangeAllowed、isUserChangeAllowed、on、off、RgbaColor接口废弃变更 -从API9开始,废弃此接口。 - -开发者需要根据以下说明对应用进行适配。 - -**变更影响** - -该接口删除无法再使用,请使用进行更新使用,否则会影响原有功能。 - -- 涉及接口 - -```js - function getIdSync(wallpaperType: WallpaperType): number; - function getFileSync(wallpaperType: WallpaperType): number; - function isChangeAllowed(): boolean; - function isUserChangeAllowed(): boolean; - function on(type: 'colorChange', callback: (colors: Array, wallpaperType: WallpaperType) => void): void; - function off(type: 'colorChange', callback?: (colors: Array, wallpaperType: WallpaperType) => void): void; - interface RgbaColor { - red: number; - green: number; - blue: number; - alpha: number; - } -``` - -- 变更前: - -```js - function getIdSync(wallpaperType: WallpaperType): number; - function getFileSync(wallpaperType: WallpaperType): number; - function isChangeAllowed(): boolean; - function isUserChangeAllowed(): boolean; - function on(type: 'colorChange', callback: (colors: Array, wallpaperType: WallpaperType) => void): void; - function off(type: 'colorChange', callback?: (colors: Array, wallpaperType: WallpaperType) => void): void; - interface RgbaColor { - red: number; - green: number; - blue: number; - alpha: number; - } -``` - -- 变更后:删除接口,停止对外开放。 - - -**适配指导** - -该接口删除后无法再使用,请适配更新。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.2/changelogs-bundlemanager.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.2/changelogs-bundlemanager.md deleted file mode 100644 index cff07729a7..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.2/changelogs-bundlemanager.md +++ /dev/null @@ -1,34 +0,0 @@ -# 包管理子系统ChangeLog - -## cl.bundlemanager.1 API9的ApplicationInfo结构体字段变更,新增systemApp字段,删除entryDir字段。 - -API9的ApplicationInfo结构体[bundleManager/applicationInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ApplicationInfo.d.ts)字段变更,新增systemApp字段,删除entryDir字段。 - -**变更影响**
-对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块和新接口。 - -**关键的接口/组件变更**
-ApplicationInfo结构体发生变化的字段内容如下表所示。 -| 删除 | API9新增或变更 | 类型 | -| --- | --- | --- | -| 无 | systemApp | boolean | -| entryDir | 无 | string | - -**适配指导**
-导入包管理查询的模块,在API9 version的ApplicationInfo结构体时,可以使用systemApp字段。使用了entryDir需要进行修改,该字段在HAP不解压特性中属于多余字段。 - -## cl.bundlemanager.2 API9的HapModuleInfo结构体字段变更,删除moduleSourceDir字段。 - -API9的HapModuleInfo结构体[bundleManager/hapModuleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)字段变更,删除moduleSourceDir字段。 - -**变更影响**
-对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块和新接口。 - -**关键的接口/组件变更**
-HapModuleInfo结构体发生变化的字段内容如下表所示。 -| 删除 | API9新增或变更 | 类型 | -| --- | --- | --- | -| moduleSourceDir | 无 | string | - -**适配指导**
-导入包管理查询的模块,在API9 version的HapModuleInfo结构体时不能使用moduleSourceDir字段。使用了moduleSourceDir需要进行修改,该字段在HAP不解压特性中属于多余字段。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-account_os_account.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-account_os_account.md deleted file mode 100644 index 8b8cad7dbf..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-account_os_account.md +++ /dev/null @@ -1,96 +0,0 @@ -# 帐号子系统changeLog - -## cl.account_os_account.1 createOsAccountForDomain错误码变更 - -使用createOsAccountForDomain重复创建域帐号时,变更前返回的错误码为12300001,变更后返回的错误码为12300004。 -错误信息由通用系统报错细化为帐号已存在报错。 - -**变更影响** - -基于此前版本开发的应用,需适配变更后的错误码,否则会影响原有业务逻辑。 - -**关键接口/组件变更** -- AccountManager - - createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo, callback: AsyncCallback<OsAccountInfo>); - - createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo): Promise<OsAccountInfo>; - -**适配指导** - -重复创建域帐号的示例代码如下: - -```ts -import account_osAccount from "@ohos.account.osAccount" - -let accountMgr = account_osAccount.getAccountManager(); -let domainInfo = { - accountName: "zhangsan", - domain: "china.example.com" -}; -try { - await accountMgr.createOsAccountForDomain(account_osAccount.OsAccountType.NORMAL, domainInfo); - await accountMgr.createOsAccountForDomain(account_osAccount.OsAccountType.NORMAL, domainInfo); -} catch (err) { - console.log("activateOsAccount err: " + JSON.stringify(err)); // error.code = 12300004; -} -``` - -## cl.account_os_account.2 应用帐号getAllAccounts接口权限场景变更 - -应用使用getAllAccounts接口查询自己可访问的帐号列表时,不需要申请权限ohos.permission.GET_ALL_APP_ACCOUNTS。 - -**变更影响** - -基于此后版本开发的应用,查询自己可访问的帐号列表时,无需申请权限。 - -**关键接口/组件变更** -- AccountManager - - getAllAccounts(callback: AsyncCallback<Array<AppAccountInfo>>): void; - - getAllAccounts(): Promise<Array<AppAccountInfo>>; - -**适配指导** - -应用未申请ohos.permission.GET_ALL_APP_ACCOUNTS,查询自己可访问的帐号列表示例代码如下: - -```ts -import account_appAccount from "@ohos.account.appAccount" - -let accountMgr = account_appAccount.createAppAccountManager(); -try { - await accountMgr.addAccount("accessibleAccount_promise_nopermission"); - var data = await accountMgr.getAllAccounts(); - if (data[0].name == "accessibleAccount_promise_nopermission") { - console.log("getAllAccounts successfully"); - } -} catch (err) { - console.log("getAllAccounts err: " + JSON.stringify(err)); -} -``` - -## cl.account_os_account.3 应用帐号getAccountsByOwner接口权限场景变更 - -应用使用getAccountsByOwner接口查询可访问的指定应用的帐号列表时,不需要申请权限ohos.permission.GET_ALL_APP_ACCOUNTS。 - -**变更影响** - -基于此后版本开发的应用,查询指定应用可访问的帐号列表时,无需申请权限。 - -**关键接口/组件变更** -- AccountManager - - getAccountsByOwner(owner: string, callback: AsyncCallback<Array<AppAccountInfo>>): void; - - getAccountsByOwner(owner: string): Promise<Array<AppAccountInfo>>; - -**适配指导** - -应用未申请ohos.permission.GET_ALL_APP_ACCOUNTS,查询指定应用可访问的帐号列表示例代码如下: - -```ts -import account_appAccount from "@ohos.account.appAccount" - -let accountMgr = account_appAccount.createAppAccountManager(); -try { - var ownerName = "com.example.owner"; - var data = await accountMgr.getAllAccounts(ownerName); -} catch (err) { - console.log("getAllAccounts err: " + JSON.stringify(err)); -} -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-bundlemanager.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-bundlemanager.md deleted file mode 100644 index 13e8296b97..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-bundlemanager.md +++ /dev/null @@ -1,17 +0,0 @@ -# 包管理子系统ChangeLog - -## cl.bundlemanager.1 包管理分布式查询模块名称变更,由ohos.bundle.distributedBundle变更为ohos.bundle.distributedBundleManager,接口未发生变更。 - -API9的包管理分布式查询模块名称变更,由ohos.bundle.distributedBundle变更为[ohos.bundle.distributedBundleManager](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.distributedBundleManager.d.ts),接口未发生变更。 - -**变更影响**
-对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块。 - -**关键的接口/组件变更**
-包管理分布式查询模块名称由ohos.bundle.distributedBundle修改为ohos.bundle.distributedBundleManager,接口未发生变更。 - -**适配指导**
-原有导入模块@ohos.bundle.distributedBundle代码需要修改为@ohos.bundle.distributedBundleManager。 -```ts -import distributedBundle form '@ohos.bundle.distributedBundleManager'; -``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-camera-sync.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-camera-sync.md deleted file mode 100644 index cd2a570296..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-camera-sync.md +++ /dev/null @@ -1,522 +0,0 @@ -# 媒体子系统 JS API 变更 Changelog - -OpenHarmony3.2.10.3 相对 OpenHarmony3.2 Beta4 版本,媒体子系统 camera 部件 API 变更如下 - -## cl.subsystemname.1 camera 接口变更 -1. camera 部件在 API9 版本全量改为 SystemAPI -2. 基于以下原因新增部分功能接口以及废弃部分接口: - -提升开发者使用相机接口的便利。 -帮助开发者快速掌握相机开发接口,快速投入到开发当中。 -易于后续版本中框架功能的扩展,降低框架模块之间的耦合度。 - -具体参考下方变更内容,开发者需要根据以下说明对应用进行适配。 - -**变更影响** - -影响 API9 版本的 JS 接口,应用需要进行适配才可以在新版本 SDK 环境正常实现功能。 - -**关键的接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 是否为 SystemApi | 变更类型 | -| ---------------------- | ----------------------- | ------------------------------------------------------------ | --------------- | -------- | -| ohos.multimedia.camera | camera | function getCameraManager(context: Context): CameraManager; | 是 | 新增 | -| ohos.multimedia.camera | camera | function getCameraManager(context: Context, callback: AsyncCallback): void;
function getCameraManager(context: Context): Promise; | 是 | 废弃 | -| ohos.multimedia.camera | CameraErrorCode | INVALID_ARGUMENT = 7400101,
OPERATION_NOT_ALLOWED = 7400102,
SESSION_NOT_CONFIG = 7400103,
SESSION_NOT_RUNNING = 7400104,
SESSION_CONFIG_LOCKED = 7400105,
DEVICE_SETTING_LOCKED = 7400106,
CONFILICT_CAMERA = 7400107,
DEVICE_DISABLED = 7400108,
SERVICE_FATAL_ERROR = 7400201 | 是 | 新增 | -| ohos.multimedia.camera | CameraManager | getSupportedCameras(): Array;
getSupportedOutputCapability(camera: CameraDevice): CameraOutputCapability;
createCameraInput(camera: CameraDevice): CameraInput;
createCameraInput(position: CameraPosition, type: CameraType): CameraInput;
createPreviewOutput(profile: Profile, surfaceId: string): PreviewOutput;
createPhotoOutput(profile: Profile, surfaceId: string): PhotoOutput;
createVideoOutput(profile: VideoProfile, surfaceId: string): VideoOutput;
createMetadataOutput(metadataObjectTypes: Array): MetadataOutput;
createCaptureSession(): CaptureSession; | 是 | 新增 | -| ohos.multimedia.camera | CameraManager | getSupportedCameras(callback: AsyncCallback>): void;
getSupportedCameras(): Promise>;
getSupportedOutputCapability(camera: CameraDevice, callback: AsyncCallback): void;
getSupportedOutputCapability(camera: CameraDevice): Promise;
createCameraInput(camera: CameraDevice, callback: AsyncCallback): void;
createCameraInput(camera: CameraDevice): Promise;
createCameraInput(position: CameraPosition, type: CameraType, callback: AsyncCallback): void;
createCameraInput(position: CameraPosition, type: CameraType): Promise;
createPreviewOutput(profile: Profile, surfaceId: string, callback: AsyncCallback): void;
createPreviewOutput(profile: Profile, surfaceId: string): Promise;
createPhotoOutput(profile: Profile, surfaceId: string, callback: AsyncCallback): void;
createPhotoOutput(profile: Profile, surfaceId: string): Promise;
createVideoOutput(profile: VideoProfile, surfaceId: string, callback: AsyncCallback): void;
createVideoOutput(profile: VideoProfile, surfaceId: string): Promise;
createMetadataOutput(metadataObjectTypes: Array, callback: AsyncCallback): void;
createMetadataOutput(metadataObjectTypes: Array): Promise;
createCaptureSession(callback: AsyncCallback): void;
createCaptureSession(): Promise; | 是 | 废弃 | -| ohos.multimedia.camera | CameraType | CAMERA_TYPE_DEFAULT = 0 | 是 | 新增 | -| ohos.multimedia.camera | CameraType | CAMERA_TYPE_UNSPECIFIED = 0 | 是 | 废弃 | -| ohos.multimedia.camera | CameraInput | on(type: 'error', camera: CameraDevice, callback: ErrorCallback): void; | 是 | 新增 | -| ohos.multimedia.camera | CameraInput | release(callback: AsyncCallback): void;
release(): Promise;
on(type: 'error', camera: CameraDevice, callback: ErrorCallback): void; | 是 | 废弃 | -| ohos.multimedia.camera | CameraInputErrorCode | ERROR_UNKNOWN = -1
ERROR_NO_PERMISSION = 0
ERROR_DEVICE_PREEMPTED = 1
ERROR_DEVICE_DISCONNECTED = 2
ERROR_DEVICE_IN_USE = 3
ERROR_DRIVER_ERROR = 4 | 是 | 废弃 | -| ohos.multimedia.camera | CameraInputError | code: CameraInputErrorCode | 是 | 废弃 | -| ohos.multimedia.camera | CaptureSession | beginConfig(): void;
addInput(cameraInput: CameraInput): void;
removeInput(cameraInput: CameraInput): void;
addOutput(cameraOutput: CameraOutput): void;
removeOutput(cameraOutput: CameraOutput): void;
hasFlash(): boolean;
isFlashModeSupported(flashMode: FlashMode): boolean;
getFlashMode(): FlashMode;
setFlashMode(flashMode: FlashMode): void;
isExposureModeSupported(aeMode: ExposureMode): boolean;
getExposureMode(): ExposureMode;
setExposureMode(aeMode: ExposureMode): void;
getMeteringPoint(): Point;
setMeteringPoint(point: Point): void;
getExposureBiasRange(): Array;
setExposureBias(exposureBias: number): void;
getExposureValue(): number;
isFocusModeSupported(afMode: FocusMode): boolean;
getFocusMode(): FocusMode;
setFocusMode(afMode: FocusMode): void;
setFocusPoint(point: Point): void;
getFocusPoint(): Point;
getFocalLength(): number;
getZoomRatioRange(): Array;
getZoomRatio(): number;
setZoomRatio(zoomRatio: number): void;
isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean;
getActiveVideoStabilizationMode(): VideoStabilizationMode;
setVideoStabilizationMode(mode: VideoStabilizationMode): void;
on(type: 'error', callback: ErrorCallback): void; | 是 | 新增 | -| ohos.multimedia.camera | CaptureSession | beginConfig(callback: AsyncCallback): void;
beginConfig(): Promise;
addInput(cameraInput: CameraInput, callback: AsyncCallback): void;
addInput(cameraInput: CameraInput): Promise;
removeInput(cameraInput: CameraInput, callback: AsyncCallback): void;
removeInput(cameraInput: CameraInput): Promise;
addOutput(cameraOutput: CameraOutput, callback: AsyncCallback): void;
addOutput(cameraOutput: CameraOutput): Promise;
removeOutput(cameraOutput: CameraOutput, callback: AsyncCallback): void;
removeOutput(cameraOutput: CameraOutput): Promise;
hasFlash(callback: AsyncCallback): void;
hasFlash(): Promise;
isFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback): void;
isFlashModeSupported(flashMode: FlashMode): Promise;
getFlashMode(callback: AsyncCallback): void;
getFlashMode(): Promise;
setFlashMode(flashMode: FlashMode, callback: AsyncCallback): void;
setFlashMode(flashMode: FlashMode): Promise;
isExposureModeSupported(aeMode: ExposureMode, callback: AsyncCallback): void;
isExposureModeSupported(aeMode: ExposureMode): Promise;
getExposureMode(callback: AsyncCallback): void;
getExposureMode(): Promise;
setExposureMode(aeMode: ExposureMode, callback: AsyncCallback): void;
setExposureMode(aeMode: ExposureMode): Promise;
getMeteringPoint(callback: AsyncCallback): void;
getMeteringPoint(): Promise;
setMeteringPoint(point: Point, callback: AsyncCallback): void;
setMeteringPoint(point: Point): Promise;
getExposureBiasRange(callback: AsyncCallback>): void;
getExposureBiasRange(): Promise>;
setExposureBias(exposureBias: number, callback: AsyncCallback): void;
setExposureBias(exposureBias: number): Promise;
getExposureValue(callback: AsyncCallback): void;
getExposureValue(): Promise;
isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback): void;
isFocusModeSupported(afMode: FocusMode): Promise;
getFocusMode(callback: AsyncCallback): void;
getFocusMode(): Promise;
setFocusMode(afMode: FocusMode, callback: AsyncCallback): void;
setFocusMode(afMode: FocusMode): Promise;
setFocusPoint(point: Point, callback: AsyncCallback): void;
setFocusPoint(point: Point): Promise;
getFocusPoint(callback: AsyncCallback): void;
getFocusPoint(): Promise;
getFocalLength(callback: AsyncCallback): void;
getFocalLength(): Promise;
getZoomRatioRange(callback: AsyncCallback>): void;
getZoomRatioRange(): Promise>;
getZoomRatio(callback: AsyncCallback): void;
getZoomRatio(): Promise;
setZoomRatio(zoomRatio: number, callback: AsyncCallback): void;
setZoomRatio(zoomRatio: number): Promise;
isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode, callback: AsyncCallback): void;
isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): Promise;
getActiveVideoStabilizationMode(callback: AsyncCallback): void;
getActiveVideoStabilizationMode(): Promise;
setVideoStabilizationMode(mode: VideoStabilizationMode, callback: AsyncCallback): void;
setVideoStabilizationMode(mode: VideoStabilizationMode): Promise;
on(type: 'error', callback: ErrorCallback): void; | 是 | 废弃 | -| ohos.multimedia.camera | CaptureSessionErrorCode | ERROR_UNKNOWN = -1
ERROR_INSUFFICIENT_RESOURCES = 0
ERROR_TIMEOUT = 1 | 是 | 废弃 | -| ohos.multimedia.camera | CaptureSessionError | code: CaptureSessionErrorCode | 是 | 废弃 | -| ohos.multimedia.camera | PreviewOutput | on(type: 'error', callback: ErrorCallback): void; | 是 | 新增 | -| ohos.multimedia.camera | PreviewOutput | on(type: 'error', callback: ErrorCallback): void; | 是 | 废弃 | -| ohos.multimedia.camera | PreviewOutputErrorCode | ERROR_UNKNOWN = -1 | 是 | 废弃 | -| ohos.multimedia.camera | PreviewOutputError | code: PreviewOutputErrorCode | 是 | 废弃 | -| ohos.multimedia.camera | PhotoOutput | capture(): Promise;
isMirrorSupported(): boolean;
on(type: 'error', callback: ErrorCallback): void; | 是 | 新增 | -| ohos.multimedia.camera | PhotoOutput | isMirrorSupported(callback: AsyncCallback): void;
isMirrorSupported(): Promise;
on(type: 'error', callback: ErrorCallback): void; | 是 | 废弃 | -| ohos.multimedia.camera | PhotoOutputErrorCode | ERROR_UNKNOWN = -1
ERROR_DRIVER_ERROR = 0
ERROR_INSUFFICIENT_RESOURCES = 1
ERROR_TIMEOUT = 2 | 是 | 废弃 | -| ohos.multimedia.camera | PhotoOutputError | code: PhotoOutputErrorCode | 是 | 废弃 | -| ohos.multimedia.camera | VideoOutput | on(type: 'error', callback: ErrorCallback): void; | 是 | 新增 | -| ohos.multimedia.camera | VideoOutput | on(type: 'error', callback: ErrorCallback): void; | 是 | 废弃 | -| ohos.multimedia.camera | VideoOutputErrorCode | ERROR_UNKNOWN = -1
ERROR_DRIVER_ERROR = 0 | 是 | 废弃 | -| ohos.multimedia.camera | VideoOutputError | code: VideoOutputErrorCode | 是 | 废弃 | -| ohos.multimedia.camera | MetadataObject | readonly type: MetadataObjectType;
readonly timestamp: number; | 是 | 新增 | -| ohos.multimedia.camera | MetadataObject | getType(callback: AsyncCallback): void;
getType(): Promise;
getTimestamp(callback: AsyncCallback): void;
getTimestamp(): Promise;
getBoundingBox(callback: AsyncCallback): void;
getBoundingBox(): Promise; | 是 | 废弃 | -| ohos.multimedia.camera | MetadataFaceObject | readonly boundingBox: Rect | 是 | 新增 | -| ohos.multimedia.camera | MetadataOutput | on(type: 'error', callback: ErrorCallback): void; | 是 | 新增 | -| ohos.multimedia.camera | MetadataOutput | on(type: 'error', callback: ErrorCallback): void; | 是 | 废弃 | -| ohos.multimedia.camera | MetadataOutputErrorCode | ERROR_UNKNOWN = -1
ERROR_INSUFFICIENT_RESOURCES = 0 | 是 | 废弃 | -| ohos.multimedia.camera | MetadataOutputError | code: MetadataOutputErrorCode | 是 | 废弃 | - -**适配指导** - -除新增接口,和废弃接口之外,开发者需要关注变更的接口的适配: - -从 Beta4 版本开始,对以下接口进行调整: - -**新增接口** - -1. CameraErrorCode 枚举 - - 枚举值名称:INVALID_ARGUMENT, 值:7400101; - - 枚举值名称:OPERATION_NOT_ALLOWED, 值:7400102; - - 枚举值名称:SESSION_NOT_CONFIG, 值:7400103; - - 枚举值名称:SESSION_NOT_RUNNING, 值:7400104; - - 枚举值名称:SESSION_CONFIG_LOCKED, 值:7400105; - - 枚举值名称:DEVICE_SETTING_LOCKED, 值:7400106; - - 枚举值名称:CONFILICT_CAMERA, 值:7400107; - - 枚举值名称:DEVICE_DISABLED, 值:7400108; - - 枚举值名称:SERVICE_FATAL_ERROR, 值:7400201; - -2. PhotoOutput 接口新增 capture(): Promise; - -3. MetadataObject 接口中新增 readonly type: MetadataObjectType; - -4. MetadataObject 接口中新增 readonly timestamp: number; - -5. MetadataObject 接口中新增 readonly boundingBox: Rect; - -**废弃接口** - -1. CameraInput 中废弃接口 release(callback: AsyncCallback): void; 以及 release(): Promise; - -2. 废弃枚举 CameraInputErrorCode 以及所有它里边的枚举值(ERROR_UNKNOWN = -1,ERROR_NO_PERMISSION = 0,ERROR_DEVICE_PREEMPTED = 1,ERROR_DEVICE_DISCONNECTED = 2,ERROR_DEVICE_IN_USE = 3,ERROR_DRIVER_ERROR = 4); - -3. 废弃接口 CameraInputError 以及接口属性 code:CameraInputErrorCode; - -4. 废弃枚举 CaptureSessionErrorCode 以及所有它里边的枚举值(ERROR_UNKNOWN = -1,ERROR_INSUFFICIENT_RESOURCES = 0,ERROR_TIMEOUT = 1); - -5. 废弃接口 CaptureSessionError 以及接口属性 code: CaptureSessionErrorCode; - -6. 废弃枚举 PreviewOutputErrorCode 以及所有它里边的枚举值(ERROR_UNKNOWN = -1); - -7. 废弃接口 PreviewOutputError 以及接口属性 code: PreviewOutputErrorCode; - -8. 废弃枚举 PhotoOutputErrorCode 以及所有它里边的枚举值(ERROR_UNKNOWN = -1,ERROR_DRIVER_ERROR = 0,ERROR_INSUFFICIENT_RESOURCES = 1,ERROR_TIMEOUT = 2); - -9. 废弃接口 PhotoOutputError 以及接口属性 code:PhotoOutputErrorCode; - -10. 废弃枚举 VideoOutputErrorCode 以及所有它里边的枚举值(ERROR_UNKNOWN = -1,ERROR_DRIVER_ERROR = 0); - -11. 废弃接口 VideoOutputError 以及接口属性 code:VideoOutputErrorCode; - -12. 废弃接口 MetadataObject 中 getType(callback: AsyncCallback): void; - -13. 废弃接口 MetadataObject 中 getType(): Promise; - -14. 废弃接口 MetadataObject 中 getTimestamp(callback: AsyncCallback): void; - -15. 废弃接口 MetadataObject 中 getTimestamp(): Promise; - -16. 废弃接口 MetadataObject 中 getBoundingBox(callback: AsyncCallback): void; - -17. 废弃接口 MetadataObject 中 getBoundingBox(): Promise; - -18. 废弃枚举 MetadataOutputErrorCode 以及所有它里边的枚举值(ERROR_UNKNOWN = -1,ERROR_INSUFFICIENT_RESOURCES = 0); - -19. 废弃接口 MetadataOutputError 以及接口属性 code:MetadataOutputErrorCode; - -**接口变更** - -1. camera 模块中接口 getCameraManager 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 getCameraManager(context: Context, callback: AsyncCallback): void; 以及 getCameraManager(context: Context): Promise; 变更为 getCameraManager(context: Context): CameraManager; - - 参考代码如下: - - ``` - let cameraManager = camera.getCameraManager(context); - ``` - -2. CameraManager 中接口 getSupportedCameras 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 getSupportedCameras(callback: AsyncCallback>): void; 以及 getSupportedCameras(): Promise>; 变更为 getSupportedCameras(): Array; - - 参考代码如下: - - ``` - let cameras = cameraManager.getSupportedCameras(); - ``` - -3. CameraManager 中接口 getSupportedOutputCapability 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 getSupportedOutputCapability(camera: CameraDevice, callback: AsyncCallback): void; 以及 getSupportedOutputCapability(camera: CameraDevice): Promise; 变更为 getSupportedOutputCapability(camera: CameraDevice): CameraOutputCapability; - - 参考代码如下: - - ``` - let cameraDevice = cameras[0]; - let CameraOutputCapability = cameraManager.getSupportedOutputCapability(cameraDevice); - ``` - -4. CameraManager 中接口 createCameraInput(camera: CameraDevice) 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 createCameraInput(camera: CameraDevice, callback: AsyncCallback): void; 以及 createCameraInput(camera: CameraDevice): Promise; 变更为 createCameraInput(camera: CameraDevice): CameraInput; - - 参考代码如下: - - ``` - let cameraDevice = cameras[0]; - let cameraInput = cameraManager.createCameraInput(cameraDevice); - ``` - -5. CameraManager 中接口 createCameraInput(position: CameraPosition, type: CameraType) 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 createCameraInput(position: CameraPosition, type: CameraType, callback: AsyncCallback): void; 以及 createCameraInput(position: CameraPosition, type: CameraType): Promise; 变更为 createCameraInput(position: CameraPosition, type: CameraType): CameraInput; - - 参考代码如下: - - ``` - let cameraDevice = cameras[0]; - let position = cameraDevice.cameraPosition; - let type = cameraDevice.cameraType; - let cameraInput = cameraManager.createCameraInput(position, type); - ``` - -6. CameraManager 中接口 createPreviewOutput 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 createPreviewOutput(profile: Profile, surfaceId: string, callback: AsyncCallback): void; 以及 createPreviewOutput(profile: Profile, surfaceId: string): Promise; 变更为 createPreviewOutput(profile: Profile, surfaceId: string): PreviewOutput; - - 参考代码如下: - - ``` - let profile = cameraoutputcapability.previewProfiles[0]; - let previewOutput = cameraManager.createPreviewOutput(profile, surfaceId); - ``` - -7. CameraManager 中接口 createPhotoOutput 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 createPhotoOutput(profile: Profile, surfaceId: string, callback: AsyncCallback): void; 以及 createPhotoOutput(profile: Profile, surfaceId: string): Promise; 变更为 createPhotoOutput(profile: Profile, surfaceId: string): PhotoOutput; - - 参考代码如下: - - ``` - let profile = cameraoutputcapability.photoProfiles[0]; - let photoOutput = cameraManager.createPhotoOutput(profile, surfaceId); - ``` - -8. CameraManager 中接口 createVideoOutput 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 createVideoOutput(profile: VideoProfile, surfaceId: string, callback: AsyncCallback): void; 以及 createVideoOutput(profile: VideoProfile, surfaceId: string): Promise; 变更为 createVideoOutput(profile: VideoProfile, surfaceId: string): VideoOutput; - - 参考代码如下: - - ``` - let profile = cameraoutputcapability.videoProfiles[0]; - let videoOutput = cameraManager.createVideoOutput(profile, surfaceId); - ``` - -9. CameraManager 中接口 createMetadataOutput 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 createMetadataOutput(metadataObjectTypes: Array, callback: AsyncCallback): void; 以及 createMetadataOutput(metadataObjectTypes: Array): Promise; 变更为 createMetadataOutput(metadataObjectTypes: Array): MetadataOutput; - - 参考代码如下: - - ``` - let metadataObjectTypes = cameraoutputcapability.supportedMetadataObjectTypes; - let metadataOutput = cameraManager.createMetadataOutput(metadataObjectTypes); - ``` - -10. CameraManager 中接口 createCaptureSession 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 createCaptureSession(callback: AsyncCallback): void; 以及 createCaptureSession(): Promise; 变更为 createCaptureSession(): CaptureSession; - - 参考代码如下: - - ``` - let captureSession = cameraManager.createCaptureSession(); - ``` - -11. 枚举 CameraType 中,枚举值名称 CAMERA_TYPE_UNSPECIFIED 变更为 CAMERA_TYPE_DEFAULT。 - -12. CameraInput 中,on 接口返回值类型由 CameraInputError 变更为 BusinessError,因此旧接口 on(type: 'error', camera: CameraDevice, callback: ErrorCallback): void; 变更为 on(type: 'error', camera: CameraDevice, callback: ErrorCallback): void; - - 参考代码如下: - - ``` - let cameraDevice = cameras[0]; - cameraInput.on('error', cameraDevice, (BusinessError) => { - - }) - ``` - -13. CaptureSession 中接口 beginConfig 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 beginConfig(callback: AsyncCallback): void; 以及 beginConfig(): Promise; 变更为 beginConfig(): void; - - 参考代码如下: - - ``` - captureSession.beginConfig(); - ``` - -14. CaptureSession 中接口 addInput 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 addInput(cameraInput: CameraInput, callback: AsyncCallback): void; 以及 addInput(cameraInput: CameraInput): Promise; 变更为 addInput(cameraInput: CameraInput): void; - - 参考代码如下: - - ``` - captureSession.addInput(cameraInput); - ``` - -15. CaptureSession 中接口 removeInput 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 removeInput(cameraInput: CameraInput, callback: AsyncCallback): void; 以及 removeInput(cameraInput: CameraInput): Promise; 变更为 removeInput(cameraInput: CameraInput): void; - - 参考代码如下: - - ``` - captureSession.removeInput(cameraInput); - ``` - -16. CaptureSession 中接口 addOutput 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 addOutput(cameraOutput: CameraOutput, callback: AsyncCallback): void; 以及 addOutput(cameraOutput: CameraOutput): Promise; 变更为 addOutput(cameraOutput: CameraOutput): void; - - 参考代码如下: - - ``` - captureSession.addOutput(previewOutput); - ``` - -17. CaptureSession 中接口 removeOutput 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 removeOutput(cameraOutput: CameraOutput, callback: AsyncCallback): void; 以及 removeOutput(cameraOutput: CameraOutput): Promise; 变更为 removeOutput(cameraOutput: CameraOutput): void; - - 参考代码如下: - - ``` - captureSession.removeOutput(previewOutput); - ``` - -18. CaptureSession 中接口 hasFlash 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 hasFlash(callback: AsyncCallback): void; 以及 hasFlash(): Promise; 变更为 hasFlash(): boolean; - - 参考代码如下: - - ``` - let status = captureSession.hasFlash(); - ``` - -19. CaptureSession 中接口 isFlashModeSupported 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 isFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback): void; 以及 isFlashModeSupported(flashMode: FlashMode): Promise; 变更为 isFlashModeSupported(flashMode: FlashMode): boolean; - - 参考代码如下: - - ``` - let status = captureSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO); - ``` - -20. CaptureSession 中接口 getFlashMode 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 getFlashMode(callback: AsyncCallback): void; 以及 getFlashMode(): Promise; 变更为 getFlashMode(): FlashMode; - - 参考代码如下: - - ``` - let flashMode = captureSession.getFlashMode(); - ``` - -21. CaptureSession 中接口 isExposureModeSupported 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 isExposureModeSupported(aeMode: ExposureMode, callback: AsyncCallback): void; 以及 isExposureModeSupported(aeMode: ExposureMode): Promise; 变更为 isExposureModeSupported(aeMode: ExposureMode): boolean; - - 参考代码如下: - - ``` - let isSupported = captureSession.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKED); - ``` - -22. CaptureSession 中接口 getExposureMode 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 getExposureMode(callback: AsyncCallback): void; 以及 getExposureMode(): Promise; 变更为 getExposureMode(): ExposureMode; - - 参考代码如下: - - ``` - let exposureMode = captureSession.getExposureMode(); - ``` - -23. CaptureSession 中接口 setExposureMode 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 setExposureMode(aeMode: ExposureMode, callback: AsyncCallback): void; 以及 setExposureMode(aeMode: ExposureMode): Promise; 变更为 setExposureMode(aeMode: ExposureMode): void; - - 参考代码如下: - - ``` - captureSession.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKED); - ``` - -24. CaptureSession 中接口 getMeteringPoint 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 getMeteringPoint(callback: AsyncCallback): void; 以及 getMeteringPoint(): Promise; 变更为 getMeteringPoint(): Point; - - 参考代码如下: - - ``` - let exposurePoint = captureSession.getMeteringPoint(); - ``` - -25. CaptureSession 中接口 setMeteringPoint 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 setMeteringPoint(point: Point, callback: AsyncCallback): void; 以及 setMeteringPoint(point: Point): Promise; 变更为 setMeteringPoint(point: Point): void; - - 参考代码如下: - - ``` - let Point2 = {x: 2, y: 2}; - captureSession.setMeteringPoint(Point2); - ``` - -26. CaptureSession 中接口 getExposureBiasRange 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 getExposureBiasRange(callback: AsyncCallback>): void; 以及 getExposureBiasRange(): Promise>; 变更为 getExposureBiasRange(): Array; - - 参考代码如下: - - ``` - let biasRangeArray = captureSession.getExposureBiasRange(); - ``` - -27. CaptureSession 中接口 setExposureBias 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 setExposureBias(exposureBias: number, callback: AsyncCallback): void; 以及 setExposureBias(exposureBias: number): Promise; 变更为 setExposureBias(exposureBias: number): void; - - 参考代码如下: - - ``` - let exposureBias = biasRangeArray[0]; - captureSession.setExposureBias(exposureBias); - ``` - -28. CaptureSession 中接口 getExposureValue 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 getExposureValue(callback: AsyncCallback): void; 以及 getExposureValue(): Promise; 变更为 getExposureValue(): number; - - 参考代码如下: - - ``` - let exposureValue = captureSession.getExposureValue(); - ``` - -29. CaptureSession 中接口 isFocusModeSupported 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback): void; 以及 isFocusModeSupported(afMode: FocusMode): Promise; 变更为 isFocusModeSupported(afMode: FocusMode): boolean; - - 参考代码如下: - - ``` - let status = captureSession.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO); - ``` - -30. CaptureSession 中接口 getFocusMode 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 getFocusMode(callback: AsyncCallback): void; 以及 getFocusMode(): Promise; 变更为 getFocusMode(): FocusMode; - - 参考代码如下: - - ``` - let afMode = captureSession.getFocusMode(); - ``` - -31. CaptureSession 中接口 setFocusMode 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 setFocusMode(afMode: FocusMode, callback: AsyncCallback): void; 以及 setFocusMode(afMode: FocusMode): Promise; 变更为 setFocusMode(afMode: FocusMode): void; - - 参考代码如下: - - ``` - captureSession.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO); - ``` - -32. CaptureSession 中接口 setFocusPoint 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 setFocusPoint(point: Point, callback: AsyncCallback): void; 以及 setFocusPoint(point: Point): Promise; 变更为 setFocusPoint(point: Point): void; - - 参考代码如下: - - ``` - let Point2 = {x: 2, y: 2}; - captureSession.setFocusPoint(Point2); - ``` - -33. CaptureSession 中接口 getFocusPoint 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 getFocusPoint(callback: AsyncCallback): void; 以及 getFocusPoint(): Promise; 变更为 getFocusPoint(): Point; - - 参考代码如下: - - ``` - let point = captureSession.getFocusPoint(); - ``` - -34. CaptureSession 中接口 getFocalLength 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 getFocalLength(callback: AsyncCallback): void; 以及 getFocalLength(): Promise; 变更为 getFocalLength(): number; - - 参考代码如下: - - ``` - let focalLength = captureSession.getFocalLength(); - ``` - -35. CaptureSession 中接口 getZoomRatioRange 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 getZoomRatioRange(callback: AsyncCallback>): void; 以及 getZoomRatioRange(): Promise>; 变更为 getZoomRatioRange(): Array; - - 参考代码如下: - - ``` - let zoomRatioRange = captureSession.getZoomRatioRange(); - ``` - -36. CaptureSession 中接口 getZoomRatio 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 getZoomRatio(callback: AsyncCallback): void; 以及 getZoomRatio(): Promise; 变更为 getZoomRatio(): number; - - 参考代码如下: - - ``` - let zoomRatio = captureSession.getZoomRatio(); - ``` - -37. CaptureSession 中接口 setZoomRatio 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 setZoomRatio(zoomRatio: number, callback: AsyncCallback): void; 以及 setZoomRatio(zoomRatio: number): Promise; 变更为 setZoomRatio(zoomRatio: number): void; - - 参考代码如下: - - ``` - let zoomRatio = zoomRatioRange[0]; - captureSession.setZoomRatio(zoomRatio); - ``` - -38. CaptureSession 中接口 isVideoStabilizationModeSupported 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode, callback: AsyncCallback): void; 以及 isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): Promise; 变更为 isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean; - - 参考代码如下: - - ``` - let isSupported = captureSession.isVideoStabilizationModeSupported(camera.VideoStabilizationMode.OFF); - ``` - -39. CaptureSession 中接口 getActiveVideoStabilizationMode 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 getActiveVideoStabilizationMode(callback: AsyncCallback): void; 以及 getActiveVideoStabilizationMode(): Promise; 变更为 getActiveVideoStabilizationMode(): VideoStabilizationMode; - - 参考代码如下: - - ``` - let vsMode = captureSession.getActiveVideoStabilizationMode(); - ``` - -40. CaptureSession 中接口 setVideoStabilizationMode 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 setVideoStabilizationMode(mode: VideoStabilizationMode, callback: AsyncCallback): void; 以及 setVideoStabilizationMode(mode: VideoStabilizationMode): Promise; 变更为 setVideoStabilizationMode(mode: VideoStabilizationMode): void; - - 参考代码如下: - - ``` - captureSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF); - ``` - -41. CaptureSession 中,on(type: 'error') callback 类型由 ErrorCallback 变更为 ErrorCallback,因此旧接口 on(type: 'error', callback: ErrorCallback): void; 变更为 on(type: 'error', callback: ErrorCallback): void; - - 参考代码如下: - - ``` - captureSession.on('error', (BusinessError) => { - - }) - ``` - -42. PreviewOutput 中,on(type: 'error') callback 类型由 ErrorCallback 变更为 ErrorCallback,因此旧接口 on(type: 'error', callback: ErrorCallback): void; 变更为 on(type: 'error', callback: ErrorCallback): void; - - 参考代码如下: - - ``` - previewOutput.on('error', (BusinessError) => { - - }) - ``` - -43. PhotoOutput 中接口 isMirrorSupported 返回方式由异步 callback 跟异步 promise 变更为同步返回,因此旧接口 isMirrorSupported(callback: AsyncCallback): void; 以及 isMirrorSupported(): Promise; 变更为 isMirrorSupported(): boolean; - - 参考代码如下: - - ``` - let isSupported = photoOutput.isMirrorSupported(); - ``` - -44. PhotoOutput 中,on(type: 'error') callback 类型由 ErrorCallback 变更为 ErrorCallback,因此旧接口 on(type: 'error', callback: ErrorCallback): void; 变更为 on(type: 'error', callback: ErrorCallback): void; - - 参考代码如下: - - ``` - PhotoOutput.on('error', (BusinessError) => { - - }) - ``` - -45. VideoOutput 中,on(type: 'error') callback 类型由 ErrorCallback 变更为 ErrorCallback,因此旧接口 on(type: 'error', callback: ErrorCallback): void; 变更为 on(type: 'error', callback: ErrorCallback): void; - - 参考代码如下: - - ``` - VideoOutput.on('error', (BusinessError) => { - - }) - ``` - -46. MetadataOutput 中,on(type: 'error') callback 类型由 ErrorCallback 变更为 ErrorCallback,因此旧接口 on(type: 'error', callback: ErrorCallback): void; 变更为 on(type: 'error', callback: ErrorCallback): void; - - 参考代码如下: - - ``` - MetadataOutput.on('error', (BusinessError) => { - - }) - ``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-nfc.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-nfc.md deleted file mode 100644 index 506de8014a..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-nfc.md +++ /dev/null @@ -1,61 +0,0 @@ -# 公共通信子系统NFC JS API变更Changelog - -OpenHarmony 3.2.10.2(Mr)版本相较于OpenHarmony 3.2.beta4版本,分布式数据管理子系统的API变更如下 - -## cl.nfc.1 接口变更 -NFC部分API6到API8部分JS接口不支持抛出错误码,需要删除废弃,然后使用新的API9替换。 - -开发者需要根据以下说明对应用进行适配。 - - **变更影响** - -影响部分API6到API8部分JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 - -**关键的接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| ------------------------- | ------------------- | ------------------------------------------------------------ | -------- | -| api/@ohos.nfc.cardEmulation.d.ts | cardEmulation | FeatureType | 废弃 | -| api/@ohos.nfc.cardEmulation.d.ts | cardEmulation | isSupported | 废弃 | -| api/@ohos.nfc.cardEmulation.d.ts | cardEmulation | hasHceCapability | 新增 | -| api/@ohos.nfc.controller.d.ts | nfcController | isNfcAvailable | 废弃 | -| api/@ohos.nfc.controller.d.ts | nfcController | openNfc | 废弃 | -| api/@ohos.nfc.controller.d.ts | nfcController | closeNfc | 废弃 | -| api/@ohos.nfc.controller.d.ts | nfcController | enableNfc | 新增 | -| api/@ohos.nfc.controller.d.ts | nfcController | disableNfc | 新增 | -| api/@ohos.nfc.tag.d.ts | tag | getNfcATag | 废弃 | -| api/@ohos.nfc.tag.d.ts | tag | getNfcBTag | 废弃 | -| api/@ohos.nfc.tag.d.ts | tag | getNfcFTag | 废弃 | -| api/@ohos.nfc.tag.d.ts | tag | getNfcVTag | 废弃 | -| api/@ohos.nfc.tag.d.ts | tag | getNfcA | 新增 | -| api/@ohos.nfc.tag.d.ts | tag | getNfcB | 新增 | -| api/@ohos.nfc.tag.d.ts | tag | getNfcF | 新增 | -| api/@ohos.nfc.tag.d.ts | tag | getNfcV | 新增 | -| api/tag/tagSession.d.ts | TagSession | getTagInfo | 废弃 | -| api/tag/tagSession.d.ts | TagSession | connectTag | 废弃 | -| api/tag/tagSession.d.ts | TagSession | reset | 废弃 | -| api/tag/tagSession.d.ts | TagSession | isTagConnected | 废弃 | -| api/tag/tagSession.d.ts | TagSession | setSendDataTimeout | 废弃 | -| api/tag/tagSession.d.ts | TagSession | getSendDataTimeout | 废弃 | -| api/tag/tagSession.d.ts | TagSession | sendData | 废弃 | -| api/tag/tagSession.d.ts | TagSession | getMaxSendLength | 废弃 | -| api/tag/tagSession.d.ts | TagSession | connect | 新增 | -| api/tag/tagSession.d.ts | TagSession | resetConnection | 新增 | -| api/tag/tagSession.d.ts | TagSession | isConnected | 新增 | -| api/tag/tagSession.d.ts | TagSession | setTimeout | 新增 | -| api/tag/tagSession.d.ts | TagSession | getTimeout | 新增 | -| api/tag/tagSession.d.ts | TagSession | transmit | 新增 | -| api/tag/tagSession.d.ts | TagSession | getMaxTransmitSize | 新增 | - -**适配指导** - -查看API开发指南: -[cardEmulation-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cardEmulation.md) - -[nfcController-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-nfcController.md) - -[tag-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-nfcTag.md) - -[TagSession-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-tagSession.md) -``` - diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelog-resourceschedule.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelog-resourceschedule.md deleted file mode 100644 index 1a0c485de9..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelog-resourceschedule.md +++ /dev/null @@ -1,111 +0,0 @@ -# 资源调度子系统ChangeLog - -## cl.resourceschedule.backgroundTaskManager -对资源调度子系统backgroundTaskManager仓原有接口进行整改,原有@ohos.backgroundTaskManager.d.ts中的API9接口删除,需要使用@ohos.resourceschedule.backgroundTaskManager.d.ts中的API9新接口。新的API9接口符合错误码规范。 - -**变更影响** - -基于OpenHarmony3.2.10.5及之后的SDK版本开发的应用,需适配API9的模块和接口,以及的API异常处理返回方式,否则会影响原有业务逻辑。 - -**关键接口/组件变更** - -以下方法、属性、枚举和常量均从API9变更。@ohos.backgroundTaskManager.d.ts文件中的接口移植到@ohos.resourceschedule.backgroundTaskManager.d.ts文件。 - -| 类名 | 接口类型 | 接口声明 | 说明 | -| -- | -- | -- | -- | -| backgroundTaskManager | method | function resetAllEfficiencyResources(): void; | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager | method | function applyEfficiencyResources(request: EfficiencyResourcesRequest): bool; | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts,修改为function applyEfficiencyResources(request: EfficiencyResourcesRequest): void; | -| backgroundTaskManager.ResourceType | enum | export enum ResourceType | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.ResourceType | enum | CPU = 1 | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.ResourceType | enum | COMMON_EVENT = 1 << 1 | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.ResourceType | enum | TIMER = 1 << 2 | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.ResourceType | enum | WORK_SCHEDULER = 1 << 3 | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.ResourceType | enum | BLUETOOTH = 1 << 4 | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.ResourceType | enum | GPS = 1 << 5 | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.ResourceType | enum | AUDIO = 1 << 6 | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.EfficiencyResourcesRequest | interface | export interface EfficiencyResourcesRequest | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.EfficiencyResourcesRequest | field | reason: string | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.EfficiencyResourcesRequest | field | isProcess?: bool | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.EfficiencyResourcesRequest | field | isPersist?: bool | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.EfficiencyResourcesRequest | field | timeOut: number | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.EfficiencyResourcesRequest | field | isApply: bool | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.EfficiencyResourcesRequest | field | resourceTypes: number | 接口API9删除,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | - - -**适配指导**
- -导入backgroundTaskManager模块。 -``` -import bundle form '@ohos.resourceschedule.backgroundTaskManager' -``` -此外还需要适配异常处理,具体参考[backgroundTaskManager接口文档](../../../application-dev/reference/apis/js-apis-resourceschedule-backgroundTaskManager.md)。 - -## c2.resourceschedule.workScheduler -对资源调度子系统workScheduler仓原有接口进行整改,原有@ohos.workScheduler.d.ts中的API9接口删除,需要使用@ohos.resourceschedule.workScheduler.d.ts中的API9新接口。新的API9接口符合错误码规范。 - -**变更影响** - -基于OpenHarmony3.2.10.5及之后的SDK版本开发的应用,需适配API9的模块和接口,以及的API异常处理返回方式,否则会影响原有业务逻辑。 - -**关键接口/组件变更** - -以下方法、属性、枚举和常量均从API9变更。删除@ohos.workScheduler.d.ts文件,相关接口变更至@ohos.resourceschedule.workScheduler.d.ts文件中。 - -| 类名 | 接口类型 | 接口声明 | 变更类型 | -| -- | -- | -- | -- | -| workScheduler | namespace | declare namespace workScheduler | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | interface | export interface WorkInfo | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | parameters?: {[key: string]: any} | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | idleWaitTime?: number | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | isDeepIdle?: boolean | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | repeatCount?: number | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | isRepeat?: boolean | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | repeatCycleTime?: number | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | storageRequest?: StorageRequest | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | batteryStatus?: BatteryStatus | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | batteryLevel?: number | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | chargerType?: ChargingType | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | isCharging?: boolean | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | networkType?: NetworkType | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | isPersisted?: boolean | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | abilityName: string | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | bundleName: string | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | workId: number | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler | method | function isLastWorkTimeOut(workId: number): Promise; | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler | method | function isLastWorkTimeOut(workId: number, callback: AsyncCallback): boolean; | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler | method | function stopAndClearWorks(): boolean; | 接口API8变更,移植到ohos.resourceschedule.workScheduler.d.ts,修改为function stopAndClearWorks(): boolean; | -| workScheduler | method | function obtainAllWorks(): Promise>; | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler | method | function obtainAllWorks(callback: AsyncCallback): Array; | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler | method | function getWorkStatus(workId: number): Promise; | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler | method | function getWorkStatus(workId: number, callback: AsyncCallback): void; | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler | method | function stopWork(work: WorkInfo, needCancel?: boolean): boolean; | 接口API8变更,移植到ohos.resourceschedule.workScheduler.d.ts,修改为function stopWork(work: WorkInfo, needCancel?: boolean): void; | -| workScheduler | method | function startWork(work: WorkInfo): boolean; | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts,修改为function startWork(work: WorkInfo): void; | -| workScheduler.NetworkType | enum | export enum NetworkType | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.NetworkType | enum | NETWORK_TYPE_ANY = 0 | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.NetworkType | enum | NETWORK_TYPE_MOBILE | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.NetworkType | enum | NETWORK_TYPE_WIFI | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.NetworkType | enum | NETWORK_TYPE_BLUETOOTH | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.NetworkType | enum | NETWORK_TYPE_WIFI_P2P | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.NetworkType | enum | NETWORK_TYPE_ETHERNET | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.ChargingType | enum | export enum ChargingType | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.ChargingType | enum | CHARGING_PLUGGED_ANY = 0 | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.ChargingType | enum | CHARGING_PLUGGED_AC | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.ChargingType | enum | CHARGING_PLUGGED_USB | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.ChargingType | enum | CHARGING_PLUGGED_WIRELESS | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.BatteryStatus | enum | export enum BatteryStatus | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.BatteryStatus | enum | BATTERY_STATUS_LOW = 0 | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.BatteryStatus | enum | BATTERY_STATUS_OKAY | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.BatteryStatus | enum | BATTERY_STATUS_LOW_OR_OKAY | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.StorageRequest | enum | export enum StorageRequest | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.BatteryStatus | enum | STORAGE_LEVEL_LOW = 0 | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.BatteryStatus | enum | STORAGE_LEVEL_OKAY | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.BatteryStatus | enum | STORAGE_LEVEL_LOW_OR_OKAY | 接口API9删除,移植到ohos.resourceschedule.workScheduler.d.ts | - - -**适配指导**
- -导入workScheduler模块。 -``` -import bundle form '@ohos.resourceschedule.workScheduler' -``` -此外还需要适配异常处理,具体参考[workScheduler接口文档](../../../application-dev/reference/apis/js-apis-resourceschedule-workScheduler.md)。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-arkui.md deleted file mode 100644 index 52c24e47ea..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-arkui.md +++ /dev/null @@ -1,215 +0,0 @@ -# arkui子系统ChangeLog - -## cl.arkui.1 状态变量数据类型声明使用限制。 - -1. 所有的状态装饰器变量需要显式声明变量类型,不允许声明any,不支持Date数据类型。 - - 示例: - - ```ts - // xxx.ets - @Entry - @Component - struct DatePickerExample { - // 错误写法: @State isLunar: any = false - @State isLunar: boolean = false - // 错误写法: @State selectedDate: Date = new Date('2021-08-08') - private selectedDate: Date = new Date('2021-08-08') - - build() { - Column() { - Button('切换公历农历') - .margin({ top: 30 }) - .onClick(() => { - this.isLunar = !this.isLunar - }) - DatePicker({ - start: new Date('1970-1-1'), - end: new Date('2100-1-1'), - selected: this.selectedDate - }) - .lunar(this.isLunar) - .onChange((value: DatePickerResult) => { - this.selectedDate.setFullYear(value.year, value.month, value.day) - console.info('select current date is: ' + JSON.stringify(value)) - }) - - }.width('100%') - } - } - ``` - - ![datePicker](../../../application-dev/reference/arkui-ts/figures/datePicker.gif) - -2. @State、@Provide、 @Link和@Consume四种状态变量的数据类型声明只能由简单数据类型或引用数据类型的其中一种构成。 - - 类型定义中的Length、ResourceStr、ResourceColor三个类型是简单数据类型或引用数据类型的组合,所以不能被以上四种状态装饰器变量使用。 - Length、ResourceStr、ResourceColor的定义请看文档[arkui-ts类型定义](../../../application-dev/reference/arkui-ts/ts-types.md)。 - - 示例: - - ```ts - // xxx.ets - @Entry - @Component - struct IndexPage { - // 错误写法: @State message: string | Resource = 'Hello World' - @State message: string = 'Hello World' - // 错误写法: @State message: ResourceStr = $r('app.string.hello') - @State resourceStr: Resource = $r('app.string.hello') - - build() { - Row() { - Column() { - Text(`${this.message}`) - .fontSize(50) - .fontWeight(FontWeight.Bold) - } - .width('100%') - } - .height('100%') - } - } - ``` - - ![hello](../../../application-dev/quick-start/figures/hello.PNG) - -**变更影响** - -1. 如果状态装饰器变量没有显式声明变量类型,声明any,编译拦截报错; - ```ts - // ArkTS:ERROR Please define an explicit type, not any. - @State isLunar: any = false - ``` -2. 状态装饰器变量声明变量类型为Date,编译拦截报错; - ```ts - // ArkTS:ERROR The @State property 'selectedDate' cannot be a 'Date' object. - @State selectedDate: Date = new Date('2021-08-08') - ``` -3. @State、@Provide、 @Link和@Consume四种状态变量使用框架提供的Length、ResourceStr、ResourceColor, - 编译拦截报错。 - ```ts - /* ArkTS:ERROR The state variable type here is 'ResourceStr', it contains both a simple type and an object type, - which are not allowed to be defined for state variable of a struct.*/ - @State message: ResourceStr = $r('app.string.hello') - ``` - -**关键的接口/组件变更** - -不涉及。 - -**适配指导** - -1. 状态装饰器变量声明具体的变量类型替代any; -2. 使用Date对象的状态装饰器变量,修改为不加状态装饰器修饰的常规变量; -3. 因为Length(string|number|Resource), ResourceStr(string|Resource), ResourceColor(string|number|Color|Resource) - 的三个类型是简单数据类型或引用数据类型的组合,使用@State、@Provide、 @Link和@Consume四种状态变量场景参考以下修改: - ```ts - // 错误写法: - @State message: ResourceStr = $r('app.string.hello') - // 修正后的写法: - @State resourceStr: Resource = $r('app.string.hello') - ``` - -## cl.arkui.2 自定义组件成员变量初始化的规则与约束。 - -通过构造函数方法初始化成员变量,需要遵循如下规则: - -| **从父组件中的变量(右)到子组件中的变量(下)** | **regular** | **@State** | **@Link** | **@Prop** | **@Provide** | **@Consume** | **@ObjectLink** | -| -------------------------- | ----------- | ---------- | --------- | --------- | ------------ | ------------ | --------------- | -| **regular** | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 支持 | -| **@State** | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | -| **@Link** | 不支持 | 支持(1) | 支持(1) | 支持(1) | 支持(1) | 支持(1) | 支持(1) | -| **@Prop** | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | -| **@Provide** | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | -| **@Consume** | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | -| **@ObjectLink** | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | - -| **从父组件中的变量(右)到子组件中的变量(下)** | **@StorageLink** | **@StorageProp** | **@LocalStorageLink** | **@LocalStorageProp** | -| -------------------------- | ---------------- | ---------------- | --------------------- | --------------------- | -| **regular** | 支持 | 不支持 | 不支持 | 不支持 | -| **@State** | 支持 | 支持 | 支持 | 支持 | -| **@Link** | 支持(1) | 支持(1) | 支持(1) | 支持(1) | -| **@Prop** | 支持 | 支持 | 支持 | 支持 | -| **@Provide** | 支持 | 支持 | 支持 | 支持 | -| **@Consume** | 不支持 | 不支持 | 不支持 | 不支持 | -| **@ObjectLink** | 不支持 | 不支持 | 不支持 | 不支持 | - -> **说明** -> -> **支持(1)**:必须使用`$`, 例如 `this.$varA`。 -> **regular**:未加修饰的常规变量。 - -不允许从父组件初始化`@StorageLink`, `@StorageProp`, `@LocalStorageLink`, `@LocalStorageProp`修饰的变量。 - -**变更影响** - -1. 不允许从父组件初始化`@LocalStorageLink`, `@LocalStorageProp`修饰的变量。 - ```ts - @Entry - @Component - struct LocalStorageComponent { - build() { - Column() { - Child({ - /* ArkTS:ERROR Property 'simpleVarName' in the custom component 'Child' cannot - initialize here (forbidden to specify). */ - simpleVarName: 1, - /* ArkTS:ERROR Property 'objectName' in the custom component 'Child' cannot - initialize here (forbidden to specify). */ - objectName: new ClassA("x") - }) - } - } - } - @Component - struct Child { - @LocalStorageLink("storageSimpleProp") simpleVarName: number = 0; - @LocalStorageProp("storageObjectProp") objectName: ClassA = new ClassA("x"); - build() {} - } - ``` -2. 子组件的@ObjectLink变量不支持父组件装饰器变量的直接赋值,其父组件的源必须是数组的项或对象的属性,该数组或对象必现用`@State`、`@Link`、`@Provide`、`@Consume`或`@ObjectLink`装饰器修饰。 - ```ts - let NextID : number = 0; - - @Observed class ClassA { - public id : number; - public c: number; - constructor(c: number) { - this.id = NextID++; - this.c = c; - } - } - - @Component - struct Child { - @ObjectLink varA : ClassA; - build() { - Row() { - Text('ViewA-' + this.varA.id) - } - } - } - - @Component - struct Parent { - @Link linkValue: ClassA - build() { - Column() { - /* ArkTS:ERROR The @Link property 'linkValue' cannot be assigned to - the @ObjectLink property 'varA'.*/ - Child({ varA: this.linkValue }) - } - } - } - ``` - -**关键的接口/组件变更** - -不涉及。 - -**适配指导** -1. 构造子组件时,不对子组件的`@LocalStorageLink`, `@LocalStorageProp`修饰的变量进行。 - 如果需要在父组件中修改子组件的`@LocalStorageLink`, `@LocalStorageProp`修饰的变量,则使用LocalStorage提供的API接口方法(比如set方法)赋值。 -2. @ObjectLink的使用指导请参考文档[@ObjectLink使用指导](../../../application-dev/quick-start/arkts-observed-and-objectlink.md)。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md deleted file mode 100644 index 5476037708..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md +++ /dev/null @@ -1,94 +0,0 @@ -# 包管理子系统ChangeLog - -## cl.bundlemanager.1 底层能力变更,安装应用时增加签名证书中bundle-name的校验,需要与应用的bundleName相同,否则会安装失败。 - -安装应用时增加了对[签名证书profile文件](../../../application-dev/security/app-provision-structure.md)中bundle-name字段的校验,该字段内容需要配置为对应应用的bundleName。 - -如果bundle-name的内容与应用配置文件中的bundleName不一致,会出现安装失败。具体报错为: -``` -error: verify signature failed. -``` - -**变更影响**
-对之前的版本镜像无影响,对使用3.2.10.5版本及之后的系统镜像,如果未修改签名证书中的bundle-name字段,会出现应用安装失败问题。 - -**关键的接口/组件变更**
-不涉及接口及组件变更 - -**适配指导**
-原有应用在新的系统镜像上出现'error: verify signature failed',可以修改签名证书profile文件中的bundle-name为对应应用的bundleName,生成新的签名证书(后缀为.p7b),重新给应用签名即可。 -签名工具及签名证书的生成方式可以参考:[签名工具指导](../../../application-dev/security/hapsigntool-guidelines.md) - -## cl.bundlemanager.2 底层能力变更,增加对无图标应用的管控,如果应用未配置入口图标,则会在桌面上显示一个默认图标,点击后跳转至应用详情页。 - -增加对无图标应用的管控,如果应用未配置入口图标且未申请隐藏图标特权(AllowHideDesktopIcon),则会在桌面上显示一个默认图标,点击后跳转至应用详情页。此处的未配置入口图标规则如下: -1. 应用中未配置abilities字段 -2. 应用中配置了abilities字段,但是没有任何一个page类型的ability中skills如下,即同时包含"ohos.want.action.home"和"entity.system.home": - ```json - "skills": [ - { - "actions": [ - "ohos.want.action.home" - ], - "entities": [ - "entity.system.home" - ] - } - ] - ``` -对于符合上面规则的应用,均属于无图标应用,通过hdc_std install 或者 bm install的方式安装,均会在桌面上显示一个默认图标。 - -如果应用不需要再桌面显示图标,需要申请相应的隐藏图标特权AllowHideDesktopIcon,并在签名证书文件中或者白名单(install_list_capability.json)配置,可以参考:[应用特权配置指南](../../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。 - -如果应该需要在桌面显示图标,则需要在abilities中选择一个ability配置skills,同时包含"ohos.want.action.home"和"entity.system.home"。 - -**变更影响**
-对之前的版本镜像无影响,对使用3.2.10.5版本及之后的系统镜像,如果应用未配置图标,通过命令行的安装方式会在桌面显示默认图标。 - -**关键的接口/组件变更**
-不涉及接口及组件变更 - -**适配指导**
-如果应用不需要再桌面显示图标,需要申请相应的隐藏图标特权AllowHideDesktopIcon,并在签名证书文件中或者白名单(install_list_capability.json)配置,可以参考:[应用特权配置指南](../../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。 - -如果应该需要在桌面显示图标,则需要在abilities中选择一个ability配置skills,同时包含"ohos.want.action.home"和"entity.system.home"。 - -## cl.bundlemanager.3 底层能力变更,特权AllowAppUsePrivilegeExtension、AllowAppMultiProcess和AllowFormVisibleNotify不支持通过签名证书配置,仅支持通过白名单install_list_capability.json申请这三个特权。 - -特权AllowAppUsePrivilegeExtension、AllowAppMultiProcess和AllowFormVisibleNotify不支持通过签名证书配置,仅支持通过白名单install_list_capability.json申请这三个特权。对于在签名证书中申请使用上面三个特权的应用,在新版本上可能出现安装失败或者配置特权无效的问题。 - -如果出现了下面的报错,可能是因为特权整改导致的,应用需要适配新的规则,可以参考:[应用特权配置指南](../../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。 -``` -error: install parse profile prop check error. -``` - -对于xts或者本地调试的demo,无法修改板子上install_list_capability.json的,可以修改应用的bundleName,需要以"com.acts."为开头,同时在签名证书中申请对应的特权。 - -申请特权AllowAppUsePrivilegeExtension,通常是在应用的配置文件中使用了extensionAbilities字段,且其中的type属性为dataShare或者service。如果未配置特权,就会出现安装失败问题。 - -**变更影响**
-对之前的版本镜像无影响,对使用3.2.10.5版本及之后的系统镜像,如果未在白名单install_list_capability.json中申请所需的特权,可能会出现应用安装失败问题。 - -**关键的接口/组件变更**
-不涉及接口及组件变更 - -**适配指导**
-如果出现了下面的报错,可能是因为特权整改导致的,应用需要适配新的规则,可以参考:[应用特权配置指南](../../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。 -``` -error: install parse profile prop check error. -``` - -对于xts或者本地调试的demo,无法修改开发板上install_list_capability.json的,可以修改应用的bundleName,需要以"com.acts."为开头,同时在签名证书中申请对应的特权。 - -## cl.bundlemanager.4 底层能力变更,安装hap时,hap中的文件不再解压到安装目录。 - -安装hap后,安装目录下只会存在hap文件,应用不能再使用拼接路径访问解压后的资源文件,应用想要访问资源文件,需要使用标准的资源管理接口。 - -**变更影响**
-如果应用使用拼接路径的形式访问资源文件,会访问失败。需要修改成使用资源管理接口访问资源文件。 - -**关键的接口/组件变更**
-不涉及接口及组件变更 - -**适配指导**
-资源管理子系统提供Js接口访问资源文件。参考[访问资源文件](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-resource-manager.md#getrawfilecontent9) diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-filemanagement.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-filemanagement.md deleted file mode 100644 index 8f57e2fe80..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-filemanagement.md +++ /dev/null @@ -1,189 +0,0 @@ -# 文件管理子系统ChangeLog - -## cl.filemanagement.1 environment模块变更 - -文件管理子系统d.ts归档整改,现统一整改到file一层目录下。environment模块支持错误码处理。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现environment模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../OpenHarmony_3.2.8.1/changelogs-filemanagement.md) - -**关键接口/组件变更** - -原environment使用的是@ohos.environment,以以下方式import: - -```js -import environment from '@ohos.environment'; -``` - -现environment使用的是@ohos.file.environment,以以下方式import: - -```js -import environment from '@ohos.file.environment'; -``` - -## cl.filemanagement.2 securityLabel模块变更 - -文件管理子系统d.ts归档整改,现统一整改到file一层目录下。securityLabel模块支持错误码处理。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现securityLabel模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../OpenHarmony_3.2.8.1/changelogs-filemanagement.md) - -**关键接口/组件变更** - -原securityLabel使用的是@ohos.securityLabel,以以下方式import: - -```js -import securityLabel from '@ohos.securityLabel'; -``` - -现securityLabel使用的是@ohos.file.securityLabel,以以下方式import: - -```js -import securityLabel from '@ohos.file.securityLabel'; -``` - -## cl.filemanagement.3 fs模块变更 - -fs模块下Stat接口ino属性类型变更。 - -**变更影响** - -fs模块下Stat接口ino属性类型变更,由number变更为bigint,以适配文件系统下所有类型文件的inode范围。 - -**关键接口/组件变更** - -原Stat接口ino属性类型为number,现变更为bigint。 - -## cl.filemanagement.4 fileAccess模块变更 - -文件管理子系统d.ts归档整改,现统一整改到file一层目录下。fileAccess模块支持错误码处理。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现fileAccess模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../OpenHarmony_3.2.8.1/changelogs-filemanagement.md) - -**关键接口/组件变更** - -原fileAccess使用的是@ohos.data.fileAccess,以以下方式import: - -```js -import fileAccess from '@ohos.data.fileAccess'; -``` - -现fileAccess使用的是@ohos.file.fileAccess,以以下方式import: - -```js -import fileAccess from '@ohos.file.fileAccess'; -``` - -## cl.filemanagement.5 fileExtensionInfo模块变更 - -文件管理子系统d.ts归档整改,现统一整改到file一层目录下。fileExtensionInfo模块支持错误码处理。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现fileExtensionInfo模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../OpenHarmony_3.2.8.1/changelogs-filemanagement.md) - -**关键接口/组件变更** - -原fileExtensionInfo使用的是@ohos.fileExtensionInfo,以以下方式import: - -```js -import fileExtensionInfo from '@ohos.fileExtensionInfo'; -``` - -现fileExtensionInfo使用的是@ohos.file.fileExtensionInfo,以以下方式import: - -```js -import fileExtensionInfo from '@ohos.file.fileExtensionInfo'; -``` - -## cl.filemanagement.6 storageStatistics模块变更 - -文件管理子系统d.ts归档整改,现统一整改到file一层目录下。fileExtensionInfo模块支持错误码处理。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现storageStatistics模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../OpenHarmony_3.2.8.1/changelogs-filemanagement.md) - -**关键接口/组件变更** - -原storageStatistics使用的是@ohos.storageStatistics,以以下方式import: - -```js -import storageStatistics from '@ohos.storageStatistics'; -``` - -现storageStatistics使用的是@ohos.file.storageStatistics,以以下方式import: - -```js -import storageStatistics from '@ohos.file.storageStatistics'; -``` - -## cl.filemanagement.7 volumeManager模块变更 - -文件管理子系统d.ts归档整改,现统一整改到file一层目录下。fileExtensionInfo模块支持错误码处理。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现volumeManager模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../OpenHarmony_3.2.8.1/changelogs-filemanagement.md) - -**关键接口/组件变更** - -原volumeManager使用的是@ohos.volumeManager,以以下方式import: - -```js -import volumeManager from '@ohos.volumeManager'; -``` - -现volumeManager使用的是@ohos.file.volumeManager,以以下方式import: - -```js -import volumeManager from '@ohos.file.volumeManager'; -``` - -## cl.filemanagement.8 fileio相关接口异常处理方式变更 - -file_api部件fileio接口返回值不包含错误码error.code,现进行错误码整改,废弃原有相关接口,新增相关接口。 - -**变更影响** - -基于此前版本开发的应用,需注意废弃接口的迭代更新。新接口在接口规格上进行了微调,需注意新接口使用方法。 - -**关键接口/组件变更** - -为适配统一的API异常处理方式,对fileio相关接口进行废弃,并新增对应接口,原接口位于@ohos.fileio,新接口位于@ohos.file.fs。新增接口支持统一的错误码异常处理规范,功能上与原接口保持一致,参数上有微调,以下为规格调整的接口列表。 -废弃与新增方法同名,请在列表中对应查看。 - -| 模块名 | 方法/属性/枚举/常量 | 变更类型 | -| ------------------------- | ------------------------------------------------------------ | -------- | -| @ohos.fileio | **function** access(path: string, mode?: number, callback?: AsyncCallback\): void \| Promise\ | 废弃 | -| @ohos.fileio | **function** accessSync(path: string, mode?: number): void | 废弃 | -| @ohos.file.fs | **function** access(path: string, callback?: AsyncCallback\): void \| Promise\ | 新增 | -| @ohos.file.fs | **function** accessSync(path: string): boolean | 新增 | -| @ohos.fileio | **function** close(fd: number, callback?: AsyncCallback\): void \| Promise\ | 废弃 | -| @ohos.fileio | **function** closeSync(fd: number): void | 废弃 | -| @ohos.file.fs | **function** close(file: File \| number, callback?: AsyncCallback\): void \| Promise\ | 新增 | -| @ohos.file.fs | **function** closeSync(file: File \| number): void | 新增 | -| @ohos.fileio | **function** mkdir(path: string, mode?: number, callback?: AsyncCallback\): void \| Promise\ | 废弃 | -| @ohos.fileio | **function** mkdirSync(path: string, mode?: number): void | 废弃 | -| @ohos.file.fs | **function** mkdir(path: string, callback?: AsyncCallback\): void \| Promise\ | 新增 | -| @ohos.file.fs | **function** mkdirSync(path: string): void | 新增 | -| @ohos.fileio | **function** readText(filePath: string, options?: { position?: number; length?: number; encoding?: string; }, callback?: AsyncCallback\): void \| Promise\ | 废弃 | -| @ohos.fileio | **function** readTextSync(filePath: string, options?: { position?: number; length?: number; encoding?: string; }): string | 废弃 | -| @ohos.file.fs | **function** readText(filePath: string, options?: { offset?: number; length?: number; encoding?: string; }, callback?: AsyncCallback\): void \| Promise\ | 新增 | -| @ohos.file.fs | **function** readTextSync(filePath: string, options?: { offset?: number; length?: number; encoding?: string; }): string | 新增 | -| @ohos.fileio | **function** Stream.read(buffer: ArrayBuffer, options?: { offset?: number; length?: number; position?: number; }, callback?: AsyncCallback\): void \| Promise\ | 废弃 | -| @ohos.fileio | **function** Stream.readSync(buffer: ArrayBuffer, options?: { offset?: number; length?: number; position?: number; }): number | 废弃 | -| @ohos.file.fs | **function** Stream.read(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; }, callback?: AsyncCallback\): void \| Promise\ | 新增 | -| @ohos.file.fs | **function** Stream.readSync(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): number | 新增 | -| @ohos.fileio | **function** Stream.write(buffer: ArrayBuffer \| string, options?: { offset?: number; length?: number; position?: number; encoding?: string; }, callback?: AsyncCallback\): void \| Promise\ | 废弃 | -| @ohos.fileio | **function** Stream.writeSync(buffer: ArrayBuffer \| string, options?: { offset?: number; length?: number; position?: number; encoding?: string; }): number | 废弃 | -| @ohos.file.fs | **function** Stream.write(buffer: ArrayBuffer \| string, options?: { offset?: number; length?: number; encoding?: string; }, callback?: AsyncCallback\): void \| Promise\ | 新增 | -| @ohos.file.fs | **function** Stream.writeSync(buffer: ArrayBuffer \| string, options?: { offset?: number; length?: number; encoding?: string; }): number | 新增 | - -**适配指导** - -@ohos.file.fs新增统一的API异常处理方式,具体示例代码请参考[接口文档](../../../application-dev/reference/apis/js-apis-file-fs.md)。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-inputmethod-framworks.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-inputmethod-framworks.md deleted file mode 100644 index ba3fbf1df4..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-inputmethod-framworks.md +++ /dev/null @@ -1,30 +0,0 @@ -# 输入法框架changeLog - -## cl.inputmethod_frameworks.1 API文件名变更 - -下列模块不符合OpenHarmony接口文件名命名规范。在API9进行变更。 - - **变更影响** - - 修改后的SDK与先前已发布版本不兼容,影响在此前版本已开发的应用,应用需要进行适配改动才可以在新版本SDK环境正常编译通过。 - - **关键的接口/组件变更** - -| 模块 | 变更前文件名 | 变更后文件名 | -|------|--------------|--------------| -| 输入法框架模块 | @ohos.inputmethod.d.ts |@ohos.inputMethod.d.ts | -| 输入法服务模块 |@ohos.inputmethodengine.d.ts | @ohos.inputMethodEngine.d.ts | -| 输入法ExtentionAbility模块 | @ohos.inputmethodextensionability.d.ts | @ohos.InputMethodExtensionAbility.d.ts | -| 输入法ExtentionContext模块 |@ohos.inputmethodextensioncontext.d.ts | @ohos.InputMethodExtensionContext.d.ts | -| 输入法子类型模块 | @ohos.inputMethodSubtype.d.ts | @ohos.InputMethodSubtype.d.ts | - - **适配指导** - - 应用中对输入法框架d.ts文件的import后的文件名要写为变更后文件名,即小驼峰/大驼峰命名格式。 - 如: - -```js -import inputMethodEngine from '@ohos.inputMethodEngine'; -``` - - \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-ohos-geoLocationManager.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-ohos-geoLocationManager.md deleted file mode 100644 index a509d85620..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-ohos-geoLocationManager.md +++ /dev/null @@ -1,107 +0,0 @@ -# 位置服务子系统ChangeLog - -## cl.location.1 @ohos.geolocation.d.ts接口迁移到新增的@ohos.geoLocationManager.d.ts - -@ohos.geolocation.d.ts接口不支持抛出错误码,为了支持错误码功能,把@ohos.geolocation.d.ts中所有接口,迁移到新增的@ohos.geoLocationManager.d.ts中,并增加错误码描述。 - -后续需要import @ohos.geoLocationManager才能使用位置服务的接口: - -import geoLocationManager from '@ohos.geoLocationManager'; - - -**变更影响** - -对位置服务所有接口的使用有影响,需要import @ohos.geoLocationManager才能使用位置服务接口: - -import geoLocationManager from '@ohos.geoLocationManager'; - -**关键的接口/组件变更** - -| 类名 | 接口类型 | 接口声明 | 变更类型 | -| -- | -- | -- | -- | -|geolocation| method | function on(type: 'locationChange', request: LocationRequest, callback: Callback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function off(type: 'locationChange', callback?: Callback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function on(type: 'locationServiceState', callback: Callback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,type: 'locationServiceState'更改为type: 'locationEnabledChange' | -|geolocation| method | function off(type: 'locationServiceState', callback?: Callback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,type: 'locationServiceState'更改为type: 'locationEnabledChange' | -|geolocation| method | function on(type: 'cachedGnssLocationsReporting', request: CachedGnssLocationsRequest, callback: Callback>): void; | 接口迁移到@ohos.geoLocationManager.d.ts,type: 'cachedGnssLocationsReporting'更改为type: 'cachedGnssLocationsChange' | -|geolocation| method | function off(type: 'cachedGnssLocationsReporting', callback?: Callback>): void; | 接口迁移到@ohos.geoLocationManager.d.ts,type: 'cachedGnssLocationsReporting'更改为type: 'cachedGnssLocationsChange' | -|geolocation| method | function on(type: 'gnssStatusChange', callback: Callback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,type: 'gnssStatusChange'更改为type: 'satelliteStatusChange' | -|geolocation| method | function off(type: 'gnssStatusChange', callback?: Callback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,type: 'gnssStatusChange'更改为type: 'satelliteStatusChange' | -|geolocation| method | function on(type: 'nmeaMessageChange', callback: Callback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,type: 'nmeaMessageChange'更改为type: 'nmeaMessage' | -|geolocation| method | function off(type: 'nmeaMessageChange', callback?: Callback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,type: 'nmeaMessageChange'更改为type: 'nmeaMessage' | -|geolocation| method | function on(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent): void; | 接口迁移到@ohos.geoLocationManager.d.ts,type: 'fenceStatusChange'更改为type: 'gnssFenceStatusChange' | -|geolocation| method | function off(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent): void; | 接口迁移到@ohos.geoLocationManager.d.ts,type: 'fenceStatusChange'更改为type: 'gnssFenceStatusChange' | -|geolocation| method | function getCurrentLocation(request: CurrentLocationRequest, callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getCurrentLocation(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getCurrentLocation(request?: CurrentLocationRequest): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getLastLocation(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function getLastLocation(): Location; | -|geolocation| method | function getLastLocation(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function getLastLocation(): Location; | -|geolocation| method | function isLocationEnabled(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function isLocationEnabled(): boolean; | -|geolocation| method | function isLocationEnabled(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function isLocationEnabled(): boolean; | -|geolocation| method | function requestEnableLocation(callback: AsyncCallback): void; | 接口删除 | -|geolocation| method | function requestEnableLocation(): Promise; | 接口删除 | -|geolocation| method | function enableLocation(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function enableLocation(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function disableLocation(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function disableLocation(): void; | -|geolocation| method | function disableLocation(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function disableLocation(): void; | -|geolocation| method | function getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback>): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getAddressesFromLocation(request: ReverseGeoCodeRequest): Promise>; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getAddressesFromLocationName(request: GeoCodeRequest, callback: AsyncCallback>): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getAddressesFromLocationName(request: GeoCodeRequest): Promise>; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function isGeoServiceAvailable(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function isGeocoderAvailable(): boolean; | -|geolocation| method | function isGeoServiceAvailable(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function isGeocoderAvailable(): boolean; | -|geolocation| method | function getCachedGnssLocationsSize(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getCachedGnssLocationsSize(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function flushCachedGnssLocations(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function flushCachedGnssLocations(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function sendCommand(command: LocationCommand, callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function sendCommand(command: LocationCommand): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function enableLocationMock(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function enableLocationMock(): void; | -|geolocation| method | function enableLocationMock(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function enableLocationMock(): void; | -|geolocation| method | function disableLocationMock(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function disableLocationMock(): void; | -|geolocation| method | function disableLocationMock(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function disableLocationMock(): void; | -|geolocation| method | function setMockedLocations(config: LocationMockConfig, callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function setMockedLocations(config: LocationMockConfig): void; | -|geolocation| method | function setMockedLocations(config: LocationMockConfig): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function setMockedLocations(config: LocationMockConfig): void; | -|geolocation| method | function enableReverseGeocodingMock(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function enableReverseGeocodingMock(): void; | -|geolocation| method | function enableReverseGeocodingMock(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function enableReverseGeocodingMock(): void; | -|geolocation| method | function disableReverseGeocodingMock(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function disableReverseGeocodingMock(): void; | -|geolocation| method | function disableReverseGeocodingMock(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function disableReverseGeocodingMock(): void; | -|geolocation| method | function setReverseGeocodingMockInfo(mockInfos: Array, callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function setReverseGeocodingMockInfo(mockInfos: Array): void; | -|geolocation| method | function setReverseGeocodingMockInfo(mockInfos: Array): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function setReverseGeocodingMockInfo(mockInfos: Array): void; | -|geolocation| method | function isLocationPrivacyConfirmed(type: LocationPrivacyType, callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function isLocationPrivacyConfirmed(type: LocationPrivacyType): boolean; | -|geolocation| method | function isLocationPrivacyConfirmed(type: LocationPrivacyType,): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function isLocationPrivacyConfirmed(type: LocationPrivacyType): boolean; | -|geolocation| method | function setLocationPrivacyConfirmStatus(type: LocationPrivacyType, isConfirmed: boolean, callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function setLocationPrivacyConfirmStatus(type: LocationPrivacyType, isConfirmed: boolean): void; | -|geolocation| method | function setLocationPrivacyConfirmStatus(type: LocationPrivacyType, isConfirmed: boolean): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts,更改为function setLocationPrivacyConfirmStatus(type: LocationPrivacyType, isConfirmed: boolean): void; | -|geolocation| interface | SatelliteStatusInfo | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | CachedGnssLocationsRequest | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | GeofenceRequest | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | Geofence | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | ReverseGeoCodeRequest | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | GeoCodeRequest | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | GeoAddress | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | LocationRequest | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | CurrentLocationRequest | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | Location | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| enum | LocationRequestPriority | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| enum | LocationRequestScenario | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| enum | GeoLocationErrorCode | 接口废弃 | -|geolocation| enum | LocationPrivacyType | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| enum | LocationCommand | 接口迁移到@ohos.geoLocationManager.d.ts | - - -**适配指导(可选,不涉及则可以删除)** - -以enableLocation为例,在新版本上需要使用如下方式进行调用: - - ```ts - import geoLocationManager from '@ohos.geoLocationManager'; - try { - geoLocationManager.enableLocation((err, data) => { - if (err) { - console.log('enableLocation: err=' + JSON.stringify(err)); - } - }); - } catch (err) { - console.error("errCode:" + err.code + ",errMessage:" + err.message); - } - ``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-ohos-geolocation.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-ohos-geolocation.md deleted file mode 100644 index 5d127ca0d1..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-ohos-geolocation.md +++ /dev/null @@ -1,92 +0,0 @@ -# 位置服务子系统ChangeLog - -## cl.location.1 @ohos.geolocation.d.ts接口迁移到新增的@ohos.geoLocationManager.d.ts - -@ohos.geolocation.d.ts接口不支持抛出错误码,为了支持错误码功能,把@ohos.geolocation.d.ts中所有接口,迁移到新增的@ohos.geoLocationManager.d.ts中,并增加错误码描述。 - -后续需要import @ohos.geoLocationManager才能使用位置服务的接口: - -import geoLocationManager from '@ohos.geoLocationManager'; - - -**变更影响** - -对位置服务所有接口的使用有影响,需要import @ohos.geoLocationManager才能使用位置服务接口: - -import geoLocationManager from '@ohos.geoLocationManager'; - -**关键的接口/组件变更** - -| 类名 | 接口类型 | 接口声明 | 变更类型 | -| -- | -- | -- | -- | -|geolocation| namespace | declare namespace geolocation| 迁移到@ohos.geoLocationManager.d.ts,使用namespace geoLocationManager代替 | -|geolocation| method | function on(type: 'locationChange', request: LocationRequest, callback: Callback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function off(type: 'locationChange', callback?: Callback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function on(type: 'locationServiceState', callback: Callback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function off(type: 'locationServiceState', callback?: Callback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function on(type: 'cachedGnssLocationsReporting', request: CachedGnssLocationsRequest, callback: Callback>): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function off(type: 'cachedGnssLocationsReporting', callback?: Callback>): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function on(type: 'gnssStatusChange', callback: Callback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function off(type: 'gnssStatusChange', callback?: Callback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function on(type: 'nmeaMessageChange', callback: Callback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function off(type: 'nmeaMessageChange', callback?: Callback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function on(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function off(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getCurrentLocation(request: CurrentLocationRequest, callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getCurrentLocation(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getCurrentLocation(request?: CurrentLocationRequest): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getLastLocation(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getLastLocation(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function isLocationEnabled(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function isLocationEnabled(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function requestEnableLocation(callback: AsyncCallback): void; | 接口删除 | -|geolocation| method | function requestEnableLocation(): Promise; | 接口删除 | -|geolocation| method | function enableLocation(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function enableLocation(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function disableLocation(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function disableLocation(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback>): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getAddressesFromLocation(request: ReverseGeoCodeRequest): Promise>; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getAddressesFromLocationName(request: GeoCodeRequest, callback: AsyncCallback>): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getAddressesFromLocationName(request: GeoCodeRequest): Promise>; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function isGeoServiceAvailable(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function isGeoServiceAvailable(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getCachedGnssLocationsSize(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function getCachedGnssLocationsSize(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function flushCachedGnssLocations(callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function flushCachedGnssLocations(): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function sendCommand(command: LocationCommand, callback: AsyncCallback): void; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| method | function sendCommand(command: LocationCommand): Promise; | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | SatelliteStatusInfo | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | CachedGnssLocationsRequest | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | GeofenceRequest | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | Geofence | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | ReverseGeoCodeRequest | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | GeoCodeRequest | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | GeoAddress | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | LocationRequest | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | CurrentLocationRequest | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| interface | Location | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| enum | LocationRequestPriority | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| enum | LocationRequestScenario | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| enum | GeoLocationErrorCode | 接口废弃 | -|geolocation| enum | LocationPrivacyType | 接口迁移到@ohos.geoLocationManager.d.ts | -|geolocation| enum | LocationCommand | 接口迁移到@ohos.geoLocationManager.d.ts | - - -**适配指导(可选,不涉及则可以删除)** - -以enableLocation为例,在新版本上需要使用如下方式进行调用: - - ```ts - import geoLocationManager from '@ohos.geoLocationManager'; - try { - geoLocationManager.enableLocation((err, data) => { - if (err) { - console.log('enableLocation: err=' + JSON.stringify(err)); - } - }); - } catch (err) { - console.error("errCode:" + err.code + ",errMessage:" + err.message); - } - ``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-system-geolocation.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-system-geolocation.md deleted file mode 100644 index 4494940d23..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-system-geolocation.md +++ /dev/null @@ -1,50 +0,0 @@ -# 位置服务子系统ChangeLog - -## cl.location.1 @system.geolocation.d.ts接口迁移到新增的@ohos.geoLocationManager.d.ts - -@system.geolocation.d.ts接口不支持抛出错误码,为了支持错误码功能,把@system.geolocation.d.ts中所有接口,迁移到新增的@ohos.geoLocationManager.d.ts中,并增加错误码描述。 - -后续需要import @ohos.geoLocationManager才能使用位置服务的接口: - -import geoLocationManager from '@ohos.geoLocationManager'; - - -**变更影响** - -对位置服务所有接口的使用有影响,需要import @ohos.geoLocationManager才能使用位置服务接口: - -import geoLocationManager from '@ohos.geoLocationManager'; - -**关键的接口/组件变更** - -| 类名 | 接口类型 | 接口声明 | 变更类型 | -| -- | -- | -- | -- | -|Geolocation| class | Geolocation | 接口迁移到@ohos.geoLocationManager.d.ts,使用ohos.geoLocationManager/geoLocationManager代替 | -|Geolocation| interface | static getLocation(options?: GetLocationOption): void; | 接口迁移到@ohos.geoLocationManager.d.ts,使用ohos.geoLocationManager/geoLocationManager.getCurrentLocation代替 | -|Geolocation| interface | static getLocationType(options?: GetLocationTypeOption): void; | 接口废弃 | -|Geolocation| interface | static subscribe(options: SubscribeLocationOption): void; | 接口迁移到@ohos.geoLocationManager.d.ts,使用ohos.geoLocationManager/geoLocationManager.on#event:locationChange代替 | -|Geolocation| interface | static unsubscribe(): void; | 接口迁移到@ohos.geoLocationManager.d.ts,使用ohos.geoLocationManager/geoLocationManager.off#event:locationChange代替 | -|Geolocation| interface | static getSupportedCoordTypes(): Array; | 接口废弃 | -|| interface | GeolocationResponse| 迁移到@ohos.geoLocationManager.d.ts,使用ohos.geoLocationManager/geoLocationManager.Location代替 | -|| interface | GetLocationOption | 接口迁移到@ohos.geoLocationManager.d.ts,使用ohos.geoLocationManager/geoLocationManager.CurrentLocationRequest代替 | -|| interface | GetLocationTypeResponse | 接口废弃 | -|| interface | GetLocationTypeOption | 接口废弃 | -|| interface | SubscribeLocationOption | 接口迁移到@ohos.geoLocationManager.d.ts,使用ohos.geoLocationManager/geoLocationManager.LocationRequest代替 | - - -**适配指导(可选,不涉及则可以删除)** - -以enableLocation为例,在新版本上需要使用如下方式进行调用: - - ```ts - import geoLocationManager from '@ohos.geoLocationManager'; - try { - geoLocationManager.enableLocation((err, data) => { - if (err) { - console.log('enableLocation: err=' + JSON.stringify(err)); - } - }); - } catch (err) { - console.error("errCode:" + err.code + ",errMessage:" + err.message); - } - ``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-useriam.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-useriam.md deleted file mode 100644 index 0444bab523..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-useriam.md +++ /dev/null @@ -1,17 +0,0 @@ -# 用户IAM子系统Changelog - -## cl.useriam.1 API9返回值命名变更 - -用户IAM API9的返回值枚举类类名发生变更,从 ResultCodeV9 更名为 UserAuthResultCode - -**变更影响** - -基于此版本以前开发的应用不受影响,以后的需适配错误码的类名,否则会影响业务逻辑。 - -**关键接口/组件变更** - -无接口/组件变更 - -**适配指导** - -需要修改返回值调用类名从 ResultCodeV9 改为 UserAuthResultCode \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-window.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-window.md deleted file mode 100644 index 697060fe9c..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-window.md +++ /dev/null @@ -1,63 +0,0 @@ -# 窗口子系统ChangeLog - -## cl.window.1 WindowStage生命周期监听类型名称变更 - -WindowStage生命周期的监听类型枚举定义自3.2.10.5版本起进行了变更。 - -**变更影响** - -3.2.10.5版本之前使用FOREGROUND/BACKGROUND类型开发的应用生命周期监听,在3.2.10.5版本之后失效。 - -**关键接口/组件变更** - -## WindowStageEventType9+ - -变更前: - -| 名称 | 值 | 说明 | -| ---------- | ---- | ---------- | -| FOREGROUND | 1 | 切到前台。 | -| BACKGROUND | 4 | 切到后台。 | - -变更后: -| 名称 | 值 | 说明 | -| ------ | ---- | ---------- | -| SHOWN | 1 | 切到前台。 | -| HIDDEN | 4 | 切到后台。 | - -**适配指导** - -在注册生命周期监听回调时,将前后台事件类型改为SHOWN/HIDDEN: - -``` -import Ability from '@ohos.application.Ability'; - -class myAbility extends Ability { - onWindowStageCreate(windowStage) { - console.log('onWindowStageCreate'); - try { - windowStage.on('windowStageEvent', (stageEventType) => { - switch (stageEventType) { - case window.WindowStageEventType.SHOWN: - console.log("windowStage shown"); - break; - case window.WindowStageEventType.ACTIVE: - console.log("windowStage active"); - break; - case window.WindowStageEventType.INACTIVE: - console.log("windowStage inActive"); - break; - case window.WindowStageEventType.HIDDEN: - console.log("windowStage hidden"); - break; - default: - break; - } - } ) - } catch (exception) { - console.error('Failed to enable the listener for window stage event changes. Cause:' + - JSON.stringify(exception)); - }; - } -}; -``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.6/changelogs-ability.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.6/changelogs-ability.md deleted file mode 100644 index 903fbad8c7..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.6/changelogs-ability.md +++ /dev/null @@ -1,36 +0,0 @@ -# 元能力子系统ChangeLog - -## cl.ability.1 appRecovery接口中RestartFlag属性名称变更,删除了未支持的属性 - -appRecovery接口中RestartFlag枚举命名从特定故障发生后**不重启**改成了特定故障发生后**重启**。 -删除了CPP_CRASH_NO_RESTART。 - -**变更影响** - -3.2.10.6版本之前使用CPP_CRASH_NO_RESTART/JS_CRASH_NO_RESTART/APP_FREEZE_NO_RESTART类型开发的应用,在3.2.10.6版本之后行为会发生变化。 - -**关键接口/组件变更** - -**RestartFlag** 9+ - -变更前: -| 名称 | 值 | 说明 | -| ----------------------------- | ---- | ------------------------------------------------------------ | -| ALWAYS_RESTART | 0 | 总是重启应用。 | -| CPP_CRASH_NO_RESTART | 0x0001 | 发生CPP_CRASH时**不重启**应用。 | -| JS_CRASH_NO_RESTART | 0x0002 | 发生JS_CRASH时**不重启**应用。 | -| APP_FREEZE_NO_RESTART | 0x0004 | 发生APP_FREEZE时**不重启**应用。 | -| NO_RESTART | 0xFFFF | 总是不重启应用。 | - -变更后: -| 名称 | 值 | 说明 | -| ---------- | ---- | ---------- | -| ALWAYS_RESTART | 0 | 总是重启应用。 | -| CPP_CRASH_NO_RESTART | NA | **删除**,不支持该场景的重启。 | -| RESTART_WHEN_JS_CRASH | 0x0001 | 发生JS_CRASH时**重启**应用。 | -| RESTART_WHEN_APP_FREEZE | 0x0002 | 发生APP_FREEZE时**重启**应用。 | -| NO_RESTART | 0xFFFF | 总是不重启应用。 | - -**适配指导** - -按新的语义进行适配。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.6/changelogs-mediaLibrary.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.6/changelogs-mediaLibrary.md deleted file mode 100644 index 92e005e1e1..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.6/changelogs-mediaLibrary.md +++ /dev/null @@ -1,272 +0,0 @@ -# 文件子系统ChangeLog - -## cl.file.1 mediaLibrary相关接口变更 - -multimedia 部件 mediaLibrary所有接口废弃。 - -**变更影响** - -[mediaLibrary](../../../application-dev/reference/apis/js-apis-medialibrary.md)所有接口废弃。系统只对三方应用开放公共目录下文件资源选择和保存功能,由[FilePicker](../../../application-dev/reference/apis/js-apis-file-picker.md)提供能力。 -基于此前版本开发的应用,需注意废弃接口的迭代更新。 - -**关键接口/组件变更** - -以下为可以使用FilePicker替代的接口。 - -| 模块名 | 方法/属性/枚举/常量 | 变更类型 | -| ------------------------- | ------------------------------------------------------------ | -------- | -| medialibrary | **function** getMediaLibrary(context: Context): MediaLibrary; | 废弃 | -| medialibrary | **function** getFileAssets(options: MediaFetchOptions, callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** getFileAssets(options: MediaFetchOptions): Promise\ | 废弃 | -| medialibrary | **function** createAsset(mediaType: MediaType, displayName: string, relativePath: string, callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** createAsset(mediaType: MediaType, displayName: string, relativePath: string): Promise\ | 废弃 | -| medialibrary | **function** getPublicDirectory(type: DirectoryType, callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** getPublicDirectory(type: DirectoryType): Promise\ | 废弃 | -| medialibrary | **function** release(callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** release(): Promise\ | 废弃 | -| medialibrary | **function** FileAsset.open(mode: string, callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** FileAsset.open(mode: string): Promise\ | 废弃 | -| medialibrary | **function** FileAsset.close(fd: number, callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** FileAsset.close(fd: number): Promise\ | 废弃 | -| medialibrary | **function** FetchFileResult.getCount(): number | 废弃 | -| medialibrary | **function** FetchFileResult.isAfterLast(): boolean | 废弃 | -| medialibrary | **function** FetchFileResult.close(): void | 废弃 | -| medialibrary | **function** FetchFileResult.getFirstObject(callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** FetchFileResult.getFirstObject(): Promise\ | 废弃 | -| medialibrary | **function** FetchFileResult.getNextObject(callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** FetchFileResult.getNextObject(): Promise\ | 废弃 | -| medialibrary | **function** FetchFileResult.getLastObject(callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** FetchFileResult.getLastObject(): Promise\ | 废弃 | -| medialibrary | **function** FetchFileResult.getPositionObject(index: number, callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** FetchFileResult.getPositionObject(index: number): Promise\ | 废弃 | -| medialibrary | **function** FetchFileResult.getAllObject(callback: AsyncCallback\\>): void | 废弃 | -| medialibrary | **function** FetchFileResult.getAllObject(): Promise\\> | 废弃 | -| medialibrary | **function** Album.getFileAssets(options: MediaFetchOptions, callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** Album.getFileAssets(options?: MediaFetchOptions): Promise\ | 废弃 | -| medialibrary | **enum** FileKey | 废弃 | -| medialibrary | **enum** DirectoryType | 废弃 | -| medialibrary | **enum** MediaType | 废弃 | -| medialibrary | **interface** MediaFetchOptions | 废弃 | -| medialibrary | **interface** FileAsset | 废弃 | - -**适配指导** - -**使用mediaLibrary接口编辑公共目录下的文件示例:** - -1. 使用getMediaLibrary接口获取媒体库实例。 -2. 创建MediaFetchOptions检索条件使用mediaLibrary实例调用getFileAssets接口获取公共目录下的文件。 -3. 使用FetchFileResult相应接口获取目的文件的fileAsset。 -4. 使用fileAsset.open接口打开这个文件得到fd。 -5. 通过fd使用[fs.writeSync](../../../application-dev/reference/apis/js-apis-file-fs.md#writesync)接口对这个文件进行编辑修改。 -6. 修改完成后使用fileAsset.close接口关闭这个文件的fd。 -7. 使用fetchFileResult.close接口释放getFileAssets时占用的资源。 -8. 使用release接口释放媒体库实例。 - -**示例:** - -```js -import mediaLibrary from '@ohos.multimedia.mediaLibrary'; -import fs from '@ohos.file.fs'; - -async function example() { - try { - let context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - let fileKeyObj = mediaLibrary.FileKey; - let imageType = mediaLibrary.MediaType.IMAGE; - let getImageOp = { - selections: fileKeyObj.MEDIA_TYPE + '= ?', - selectionArgs: [imageType.toString()], - order: fileKeyObj.DATE_ADDED + ' DESC', - }; - const fetchFileResult = await media.getFileAssets(getImageOp); - const fileAsset = await fetchFileResult.getFirstObject(); - console.info('mediaLibrary fileAsset displayName: ' + fileAsset.displayName); - let fd = await fileAsset.open('rw'); - console.info('mediaLibrary fileAsset open fd: ' + fd); - let writeLen = fs.writeSync(fd, 'hello, world'); - console.info('write data to file succeed and size is: ' + writeLen); - fileAsset.close(fd); - fetchFileResult.close(); - media.release(); - } catch (err) { - console.error('mediaLibrary fail, err: ' + err); - } -} -``` - -**使用FilePicker编辑公共目录下的文件示例:** - -1. 获取DocumentViewPicker文件选择器对象。 -2. 拉起DocumentViewPicker.select接口选择目的文件。 -3. 用户选择完后返回目的文件的uri。 -4. 待界面从DocumentViewPicker返回后在其他函数中使用[fs.openSync](../../../application-dev/reference/apis/js-apis-file-fs.md#fsopensync)接口通过uri打开这个文件得到fd。 -5. 通过fd使用[fs.writeSync](../../../application-dev/reference/apis/js-apis-file-fs.md#writesync)接口对这个文件进行编辑修改。 -6. 编辑修改完毕后使用[fs.closeSync](../../../application-dev/reference/apis/js-apis-file-fs.md#closesync)接口关闭这个fd。 - -**示例:** - -```js -import mediaLibrary from '@ohos.multimedia.mediaLibrary'; -import picker from '@ohos.file.picker'; -import fs from '@ohos.file.fs'; - -let uri; - -async function example() { - try { - let DocumentSelectOptions = new picker.DocumentSelectOptions(); - let documentPicker = new picker.DocumentViewPicker(); - documentPicker.select(DocumentSelectOptions).then((DocumentSelectResult) => { - console.info('DocumentViewPicker.select successfully, DocumentSelectResult uri: ' + JSON.stringify(DocumentSelectResult)); - uri = DocumentSelectResult[0]; - }).catch((err) => { - console.error('DocumentViewPicker.select failed with err: ' + err); - }); - } catch (err) { - console.error('DocumentViewPicker failed with err: ' + err); - } -} - -async function writeFile() { - try { - let file = fs.openSync(uri, fs.OpenMode.READ_WRITE); - console.info('DocumentViewPicker file fd: ' + file.fd); - let writeLen = fs.writeSync(file.fd, 'hello, world'); - console.info('write data to file succeed and size is: ' + writeLen); - fs.closeSync(file); - } catch (err) { - console.error('DocumentViewPicker fail, err: ' + err); - } -} -``` - -**使用mediaLibrary接口在公共目录下创建文件示例:** - -1. 使用getMediaLibrary接口获取媒体库实例。 -2. 使用getPublicDirectory接口获取公共目录路径。 -3. 使用createAsset接口创建文件得到这个文件的fileAsset。 -4. 使用fileAsset.open接口打开这个文件得到fd。 -5. 通过fd使用fs.write接口对这个文件进行编辑修改。 -6. 修改完成后使用fileAsset.close接口关闭这个文件的fd。 -7. 使用release接口释放媒体库实例。 - -**示例:** - -```js -import mediaLibrary from '@ohos.multimedia.mediaLibrary'; -import fs from '@ohos.file.fs'; - -async function example() { - try { - let context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - let mediaType = mediaLibrary.MediaType.FILE; - let DIR_DOWNLOAD = mediaLibrary.DirectoryType.DIR_DOWNLOAD; - const path = await media.getPublicDirectory(DIR_DOWNLOAD); - const fileAsset = await media.createAsset(mediaType, 'test.txt', path); - console.info('mediaLibrary fileAsset displayName: ' + fileAsset.displayName); - let fd = await fileAsset.open('rw'); - console.info('mediaLibrary fileAsset open fd: ' + fd); - let writeLen = fs.writeSync(fd, 'hello, world'); - console.info('write data to file succeed and size is: ' + writeLen); - fileAsset.close(fd); - media.release(); - } catch (err) { - console.error('mediaLibrary fail, err: ' + err); - } -} -``` - -**使用FilePicker在公共目录下创建文件示例:** - -1. 获取DocumentViewPicker文件选择器对象。 -2. 拉起DocumentViewPicker.save接口创建保存一个空的文件。 -3. 用户保存完后返回目的文件的uri。 -4. 待界面从DocumentViewPicker返回后在其他函数中使用[fs.openSync](../../../application-dev/reference/apis/js-apis-file-fs.md#fsopensync)接口通过uri打开这个文件得到fd。 -5. 通过fd使用[fs.writeSync](../../../application-dev/reference/apis/js-apis-file-fs.md#writesync)接口对这个文件进行编辑修改。 -6. 编辑修改完毕后使用[fs.closeSync](../../../application-dev/reference/apis/js-apis-file-fs.md#closesync)接口关闭这个fd。 - -**示例:** - -```js -import mediaLibrary from '@ohos.multimedia.mediaLibrary'; -import picker from '@ohos.file.picker'; -import fs from '@ohos.file.fs'; - -let uri; - -async function example() { - try { - let DocumentSaveOptions = new picker.DocumentSaveOptions(); - DocumentSaveOptions.newFileNames = ['DocumentViewPicker01.txt']; - let documentPicker = new picker.DocumentViewPicker(); - documentPicker.save(DocumentSaveOptions).then((DocumentSaveResult) => { - console.info('DocumentViewPicker.save successfully, DocumentSaveResult uri: ' + JSON.stringify(DocumentSaveResult)); - uri = DocumentSaveResult[0]; - }).catch((err) => { - console.error('DocumentViewPicker.save failed with err: ' + err); - }); - } catch (err) { - console.error('DocumentViewPicker failed with err: ' + err); - } -} - -async function writeFile() { - try { - let file = fs.openSync(uri, fs.OpenMode.READ_WRITE); - console.info('DocumentViewPicker file fd: ' + file.fd); - let writeLen = fs.writeSync(file.fd, 'hello, world'); - console.info('write data to file succeed and size is: ' + writeLen); - fs.closeSync(file); - } catch (err) { - console.error('DocumentViewPicker fail, err: ' + err); - } -} -``` - -**关键接口/组件变更** - -medialibrary以下废弃接口由于功能管控,不对三方应用开放,无替代接口。 - -| 模块名 | 方法/属性/枚举/常量 | 变更类型 | -| ------------------------- | ------------------------------------------------------------ | -------- | -| medialibrary | **function** getMediaLibrary(): MediaLibrary; | 废弃 | -| medialibrary | **function** on(type: 'deviceChange'\|'albumChange'\|'imageChange'\|'audioChange'\|'videoChange'\|'fileChange'\|'remoteFileChange', callback: Callback\): void | 废弃 | -| medialibrary | **function** off(type: 'deviceChange'\|'albumChange'\|'imageChange'\|'audioChange'\|'videoChange'\|'fileChange'\|'remoteFileChange', callback?: Callback\): void | 废弃 | -| medialibrary | **function** deleteAsset(uri: string): Promise\ | 废弃 | -| medialibrary | **function** deleteAsset(uri: string, callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** storeMediaAsset(option: MediaAssetOption, callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** storeMediaAsset(option: MediaAssetOption): Promise\ | 废弃 | -| medialibrary | **function** startImagePreview(images: Array\, index: number, callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** startImagePreview(images: Array\, callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** startImagePreview(images: Array\, index?: number): Promise\ | 废弃 | -| medialibrary | **function** startMediaSelect(option: MediaSelectOption, callback: AsyncCallback\\>): void | 废弃 | -| medialibrary | **function** startMediaSelect(option: MediaSelectOption): Promise\\> | 废弃 | -| medialibrary | **function** getActivePeers(): Promise\\>; | 废弃 | -| medialibrary | **function** getActivePeers(callback: AsyncCallback\\>): void; | 废弃 | -| medialibrary | **function** getAllPeers(): Promise\\>; | 废弃 | -| medialibrary | **function** FileAsset.isDirectory(callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** FileAsset.isDirectory():Promise\ | 废弃 | -| medialibrary | **function** FileAsset.commitModify(callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** FileAsset.commitModify(): Promise\ | 废弃 | -| medialibrary | **function** FileAsset.getThumbnail(callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** FileAsset.getThumbnail(size: Size, callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** FileAsset.getThumbnail(size?: Size): Promise\ | 废弃 | -| medialibrary | **function** FileAsset.favorite(isFavorite: boolean, callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** FileAsset.favorite(isFavorite: boolean): Promise\ | 废弃 | -| medialibrary | **function** FileAsset.isFavorite(callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** FileAsset.isFavorite():Promise\ | 废弃 | -| medialibrary | **function** FileAsset.trash(isTrash: boolean, callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** FileAsset.trash(isTrash: boolean): Promise\ | 废弃 | -| medialibrary | **function** FileAsset.isTrash(callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** FileAsset.isTrash():Promise\ | 废弃 | -| medialibrary | **function** getAlbums(options: MediaFetchOptions, callback: AsyncCallback\\>): void | 废弃 | -| medialibrary | **function** getAlbums(options: MediaFetchOptions): Promise\\> | 废弃 | -| medialibrary | **function** Album.commitModify(callback: AsyncCallback\): void | 废弃 | -| medialibrary | **function** Album.commitModify(): Promise\ | 废弃 | -| medialibrary | **enum** DeviceType | 废弃 | -| medialibrary | **interface** PeerInfo | 废弃 | -| medialibrary | **interface** Size | 废弃 | -| medialibrary | **interface** MediaAssetOption | 废弃 | -| medialibrary | **interface** MediaSelectOption | 废弃 | \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.6/changelogs-request.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.6/changelogs-request.md deleted file mode 100644 index 6d7bc0e05c..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.6/changelogs-request.md +++ /dev/null @@ -1,42 +0,0 @@ -# 上传下载子系统ChangeLog - - -## cl.request.2 request上传下载接口变更 - -- 删除API9-beta接口: -1. function download(context: BaseContext, config: DownloadConfig, callback: AsyncCallback): void; -2. function download(context: BaseContext, config: DownloadConfig): Promise; -3. function upload(context: BaseContext, config: UploadConfig, callback: AsyncCallback): void; -4. function upload(context: BaseContext, config: UploadConfig): Promise; - -**变更影响** - -基于此前版本使用Stage模式开发的应用,需适配变更后的接口,否则会影响原有业务逻辑。 - -**关键的接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -|--------------|--------------|-------------------------------------------------------------------------------------------------------------------|------| -| ohos.request | request | function download(context: BaseContext, config: DownloadConfig, callback: AsyncCallback): void; | 删除 | -| ohos.request | request | function download(context: BaseContext, config: DownloadConfig): Promise; | 删除 | -| ohos.request | request | function upload(context: BaseContext, config: UploadConfig, callback: AsyncCallback): void; | 删除 | -| ohos.request | request | function upload(context: BaseContext, config: UploadConfig): Promise; | 删除 | - - -**适配指导** - -以download为例,在新版本上需要使用downloadFile, 如下方式进行调用: - -```ts -try { - request.downloadFile(globalThis.abilityContext, { url: 'https://xxxx/xxxxx.hap', - filePath: 'xxx/xxxxx.hap'}, (err, data) => { - if (err) { - console.error('Failed to request the download. Cause: ' + JSON.stringify(err)); - return; - } - }); -} catch (err) { - console.log("downloadFile callback fail." + "errCode:" + err.code + ",errMessage:" + err.message); -} -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.6/changelogs-telephony.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.6/changelogs-telephony.md deleted file mode 100644 index e4a4c1fc70..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.6/changelogs-telephony.md +++ /dev/null @@ -1,59 +0,0 @@ -# 电话子系统ChangeLog - - - -## cl.telephony.1 radio模块接口变更 - - -### 电话子系统radio模块 `isNrSupported` 接口存在变更: - -NR是专有名词,需要全部大写。 - -开发者需要根据以下说明对应用进行适配。 - - - -**变更影响** - -基于此前版本开发的应用,需适配变更的js接口,变更前的接口已经不能正常使用了,否则会影响原有功能。 - - - -**关键的接口/组件变更** - -- 涉及接口 - - isNrSupported(): boolean; - isNrSupported(slotId: number): boolean; - -- 变更前: - -```js -function isNrSupported(): boolean; -function isNrSupported(slotId: number): boolean; -``` - -- 变更后: - -```js -function isNRSupported(): boolean; -function isNRSupported(slotId: number): boolean; -``` - - - -**适配指导** - -使用变更后的接口,示例代码如下: - -```js -let result = radio.isNrSupported(); -console.log("Result: "+ result); -``` - - -```js -let slotId = 0; -let result = radio.isNRSupported(slotId); -console.log("Result: "+ result); -``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-resourceschedule.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-resourceschedule.md deleted file mode 100644 index b7cc677780..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-resourceschedule.md +++ /dev/null @@ -1,21 +0,0 @@ -# 资源调度子系统ChangeLog - -## cl.resourceschedule.workScheduler -修改parameters属性值的数据类型,不允许使用any类型,支持number、string、boolean三种类型。 - -**变更影响** - -基于OpenHarmony3.2.10.7及之后的SDK版本开发的应用,parameters属性值的数据类型不允许使用any类型,仅支持number、string、boolean三种类型,否则将编译报错。 - -**关键接口/组件变更** - -@ohos.resourceschedule.workScheduler.d.ts中的parameters属性变更。 - -| 类名 | 接口类型 | 变更前声明 | 变更后声明 | -| -- | -- | -- | -- | -| workScheduler.WorkInfo | field | parameters?: {[key: string]: any} | parameters?: {[key: string]: number | string | boolean} | - - -**适配指导**
- -parameters属性使用{[key: string]: number | string | boolean}数据类型。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-telephony.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-telephony.md deleted file mode 100644 index cd74291d37..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-telephony.md +++ /dev/null @@ -1,223 +0,0 @@ -# 电话子系统ChangeLog - - - -## cl.telephony.1 call模块reject接口变更 -从API9开始,废弃此接口,改为使用rejectCall接口。 - -开发者需要根据以下说明对应用进行适配。 - -**变更影响** - -该接口删除无法再使用,请使用新增的接口rejectCall替换,否则会影响原有功能。 - -- 涉及接口 - -```js - function reject(callId: number, callback: AsyncCallback): void; - function reject(callId: number, options: RejectMessageOptions, callback: AsyncCallback): void; - function reject(callId?: number, options?: RejectMessageOptions): Promise; - function reject(callback: AsyncCallback): void; - function reject(options: RejectMessageOptions, callback: AsyncCallback): void; -``` - -- 变更前: - -```js - function reject(callId: number, callback: AsyncCallback): void; - function reject(callId: number, options: RejectMessageOptions, callback: AsyncCallback): void; - function reject(callId?: number, options?: RejectMessageOptions): Promise; - function reject(callback: AsyncCallback): void; - function reject(options: RejectMessageOptions, callback: AsyncCallback): void; -``` - -- 变更后: - -```js - function rejectCall(callId: number, callback: AsyncCallback): void; - function rejectCall(callId: number, options: RejectMessageOptions, callback: AsyncCallback): void; - function rejectCall(callId?: number, options?: RejectMessageOptions): Promise; - function rejectCall(callback: AsyncCallback): void; - function rejectCall(options: RejectMessageOptions, callback: AsyncCallback): void; -``` - - -**适配指导** - -该接口删除无法再使用,请使用新增的接口rejectCall替换。 -使用变更后的接口,示例代码如下: - -```js -call.rejectCall("138xxxxxxxx", (err, data) => { - console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); -}); -``` - - -```js -let rejectMessageOptions={ - messageContent: "拦截陌生号码" -} -let promise = call.rejectCall(1, rejectMessageOptions); -promise.then(data => { - console.log(`rejectCall success, promise: data->${JSON.stringify(data)}`); -}).catch(err => { - console.error(`rejectCall fail, promise: err->${JSON.stringify(err)}`); -}); -``` - - -```js -let rejectMessageOptions={ - messageContent: "拦截陌生号码" -} -let promise = call.rejectCall(1, rejectMessageOptions); -promise.then(data => { - console.log(`rejectCall success, promise: data->${JSON.stringify(data)}`); -}).catch(err => { - console.error(`rejectCall fail, promise: err->${JSON.stringify(err)}`); -}); -``` - - -```js -call.rejectCall((err, data) => { - console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); -}); -``` - - -```js -let rejectMessageOptions={ - messageContent: "拦截陌生号码" -} -call.rejectCall(rejectMessageOptions, (err, data) => { - console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); -}); -``` - - -## cl.telephony.2 call模块answer接口变更 -从API9开始,废弃此接口,改为使answerCall接口。 - -开发者需要根据以下说明对应用进行适配。 - -**变更影响** - -该接口删除无法再使用,请使用新增的接口answerCall替换,否则会影响原有功能。 - -- 涉及接口 - -```js - function answer(callId: number, callback: AsyncCallback): void; - function answer(callId?: number): Promise; - function answer(callback: AsyncCallback): void; -``` - -- 变更前: - -```js - function answer(callId: number, callback: AsyncCallback): void; - function answer(callId?: number): Promise; - function answer(callback: AsyncCallback): void; -``` - -- 变更后: - -```js - function answerCall(callId: number, callback: AsyncCallback): void; - function answerCall(callId?: number): Promise; - function answerCall(callback: AsyncCallback): void; -``` - - -**适配指导** - -该接口删除无法再使用,请使用新增的接口answerCall替换。 -使用变更后的接口,示例代码如下: - -```js -call.answerCall(1, (err, data) => { - console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); -}); -``` - - -```js -let promise = call.answerCall(1); -promise.then(data => { - console.log(`answerCall success, promise: data->${JSON.stringify(data)}`); -}).catch(err => { - console.error(`answerCall fail, promise: err->${JSON.stringify(err)}`); -}); -``` - - -```js -call.answerCall((err, data) => { - console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); -}); -``` - - -## cl.telephony.1 call模块hangup接口变更 -从API9开始,废弃此接口,改为使用hangUpCall接口。 - -开发者需要根据以下说明对应用进行适配。 - -**变更影响** - -该接口删除无法再使用,请使用新增的接口hangUpCall替换,否则会影响原有功能。 - -- 涉及接口 - -```js - function hangup(callId: number, callback: AsyncCallback): void; - function hangup(callId?: number): Promise; - function hangup(callback: AsyncCallback): void; -``` - -- 变更前: - -```js - function hangup(callId: number, callback: AsyncCallback): void; - function hangup(callId?: number): Promise; - function hangup(callback: AsyncCallback): void; -``` - -- 变更后: - -```js - function hangUpCall(callId: number, callback: AsyncCallback): void; - function hangUpCall(callId?: number): Promise; - function hangUpCall(callback: AsyncCallback): void; -``` - - -**适配指导** - -该接口删除无法再使用,请使用新增的接口hangUpCall替换。 -使用变更后的接口,示例代码如下: - -```js -call.hangUpCall(1, (err, data) => { - console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); -}); -``` - - -```js -let promise = call.hangUpCall(1); -promise.then(data => { - console.log(`hangUpCall success, promise: data->${JSON.stringify(data)}`); -}).catch(err => { - console.error(`hangUpCall fail, promise: err->${JSON.stringify(err)}`); -}); -``` - - -```js -call.hangUpCall((err, data) => { - console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); -}); -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-web.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-web.md deleted file mode 100644 index 19090618fe..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-web.md +++ /dev/null @@ -1,528 +0,0 @@ -# web子系统ChangeLog - -OpenHarmony 3.2.10.7 版本相较于OpenHarmony 之前的版本,web的API变更如下。 - -## cl.web.1 HitTestTypeV9命名变更 - -枚举类HitTestTypeV9由于命名规范问题,名称变更为WebHitTestType。 - -**变更影响** - -枚举类HitTestTypeV9,以及使用HitTestTypeV9作为参数或返回值的接口,在3.2.10.7版本及后续版本中无法继续正常使用。 - -**关键的接口/组件变更** - -- 涉及接口 - - enum HitTestTypeV9 - -- 变更前: - - ```ts - enum HitTestTypeV9 - ``` - -- 变更后: - - ```ts - enum WebHitTestType - ``` - -**适配指导** - -请使用WebHitTestType替换HitTestTypeV9。 - -## cl.web.2 HeaderV9命名变更 - -结构体HeaderV9由于命名规范问题,名称变更为WebHeader。 - -**变更影响** - -结构体HeaderV9,以及使用HeaderV9作为参数或返回值的接口,在3.2.10.7版本及后续版本中无法继续正常使用。 - -**关键的接口/组件变更** - -- 涉及接口 - - interface HeaderV9 - -- 变更前: - - ```ts - interface HeaderV9 - ``` - -- 变更后: - - ```ts - interface WebHeader - ``` - -**适配指导** - -请使用WebHeader替换HeaderV9。 - -## cl.web.3 HitTestValue结构体成员类型变更 - -结构体HitTestValue中的成员变量HitTestTypeV9由于命名规范问题,名称变更为WebHitTestType。 - -**变更影响** - -结构体HitTestValue,以及使用HitTestValue作为参数或返回值的接口,在3.2.10.7版本及后续版本中无法继续正常使用。 - -**关键的接口/组件变更** - -- 涉及接口 - - interface HitTestValue - -- 变更前: - - ```ts - interface HitTestValue { - - /** - * Get the hit test type. - * - * @since 9 - */ - type: HitTestTypeV9; - - /** - * Get the hit test extra data. - * - * @since 9 - */ - extra: string; - } - ``` - -- 变更后: - - ```ts - interface HitTestValue { - - /** - * Get the hit test type. - * - * @since 9 - */ - type: WebHitTestType; - - /** - * Get the hit test extra data. - * - * @since 9 - */ - extra: string; - } - ``` - -**适配指导** - -请使用WebHitTestType替换HitTestTypeV9。 - -## cl.web.4 loadUrl参数类型变更 - -loadUrl接口中的参数headers,由于其类型的命名规范问题,类型变更为WebHeader。 - -**变更影响** - -loadUrl接口若使用了headers参数,则在3.2.10.7版本及后续版本中无法继续正常使用。 - -**关键的接口/组件变更** - -- 涉及接口 - - loadUrl(url: string | Resource, headers?: Array): void - -- 变更前: - - ```ts - loadUrl(url: string | Resource, headers?: Array): void - ``` - -- 变更后: - - ```ts - loadUrl(url: string | Resource, headers?: Array): void - ``` - -**适配指导** - -在loadUrl中设置headers参数时,请使用WebHeader类型替换HeaderV9类型。 - -## cl.web.5 getHitTest返回值类型变更 - -getHitTest接口中的返回值,由于其类型的命名规范问题,变更为WebHitTest。 - -**变更影响** - -getHitTest接口,在3.2.10.7版本及后续版本中无法继续正常使用。 - -**关键的接口/组件变更** - -- 涉及接口 - - getHitTest(): HitTestTypeV9 - -- 变更前: - - ```ts - getHitTest(): HitTestTypeV9 - ``` - -- 变更后: - - ```ts - getHitTest(): WebHitTestType - ``` - -**适配指导** - -在使用getHitTest接口的返回值时,请使用WebHitTestType类型替换HitTestTypeV9类型。 - -## cl.web.6 WebMessagePort类迁移 - -WebMessagePort类迁移至@ohos.web.webview.d.ts,并新增错误码抛出。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。 - -**关键的接口/组件变更** - -- 涉及接口 - - postMessageEvent(message: WebMessageEvent): void; - onMessageEvent(callback: (result: string) => void): void; - -- 变更前: - - ```ts - postMessageEvent(message: WebMessageEvent): void; - onMessageEvent(callback: (result: string) => void): void; - ``` - -- 变更后: - - ```ts - postMessageEvent(message: WebMessage): void; - onMessageEvent(callback: (result: WebMessage) => void): void; - ``` - -**适配指导** - -原WebMessagePort类不需要import,现WebMessagePort类使用的是@ohos.web.webview,以下方式import: - - ```ts - import web_webview from '@ohos.web.webview'; - ``` - -## cl.web.7 HitTestValue类迁移 - -HitTestValue类迁移至@ohos.web.webview.d.ts,HitTestValue类变更为接口,getType,getExtra变更为属性。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。 - -**关键的接口/组件变更** - -- 涉及接口 - - getType(): HitTestType; - getExtra(): string; - -- 变更前: - - ```ts - getType(): HitTestType; - getExtra(): string; - ``` - -- 变更后: - - ```ts - type: WebHitTestType; - extra: string; - ``` - -**适配指导** - -原HitTestValue类不需要import,现HitTestValue类使用的是@ohos.web.webview,以下方式import: - - ```ts - import web_webview from '@ohos.web.webview'; - ``` - -## cl.web.8 WebCookie类下api9接口迁移 - -WebCookie类下api9接口迁移,WebCookie类下api9接口迁移到web.webview.webview.WebCookieManager。 -并新增接口错误码抛出。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。 -该类方法变为静态方法。 - -**关键的接口/组件变更** - -- 涉及接口 - - isCookieAllowed(): boolean; - isThirdPartyCookieAllowed(): boolean; - putAcceptCookieEnabled(accept: boolean): void; - putAcceptThirdPartyCookieEnabled(accept: boolean): void; - setCookie(url: string, value: string): boolean; - saveCookieSync(): boolean; - getCookie(url: string): string; - existCookie(): boolean; - deleteEntireCookie(): void; - deleteSessionCookie(): void; - -- 变更前: - - ```ts - isCookieAllowed(): boolean; - isThirdPartyCookieAllowed(): boolean; - putAcceptCookieEnabled(accept: boolean): void; - putAcceptThirdPartyCookieEnabled(accept: boolean): void; - setCookie(url: string, value: string): boolean; - saveCookieSync(): boolean; - getCookie(url: string): string; - existCookie(): boolean; - deleteEntireCookie(): void; - deleteSessionCookie(): void; - ``` - -- 变更后: - - ```ts - static isCookieAllowed(): boolean; - static isThirdPartyCookieAllowed(): boolean; - static putAcceptCookieEnabled(accept: boolean): void; - static putAcceptThirdPartyCookieEnabled(accept: boolean): void; - static setCookie(url: string, value: string): void; - static saveCookieAsync(): Promise; - static saveCookieAsync(callback: AsyncCallback): void; - static getCookie(url: string): string; - static existCookie(): boolean; - static deleteEntireCookie(): void; - static deleteSessionCookie(): void; - ``` - -**适配指导** - -原WebCookie类不需要import,现WebCookieManager使用的是@ohos.web.webview,以下方式import: - - ```ts - import web_webview from '@ohos.web.webview'; - ``` - -## cl.web.9 WebController类下api9接口迁移 - -WebController类下api9接口迁移至web.webview.webview.WebviewController,并新增接口错误码抛出。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。 -getDefaultUserAgent接口更名为getUserAgent。 - -**关键的接口/组件变更** - -- 涉及接口 - - zoomIn(): boolean; - zoomOut(): boolean; - createWebMessagePorts(): Array; - postMessage(options: { message: WebMessageEvent, uri: string}): void; - getHitTestValue(): HitTestValue; - getWebId(): number; - getDefaultUserAgent(): string; - getTitle(): string; - getPageHeight(): number; - backOrForward(step: number): void; - searchAllAsync(searchString: string): void; - clearMatches(): void; - searchNext(forward: boolean): void; - clearSslCache(): void; - clearClientAuthenticationCache(): void; - getUrl(): string; - -- 变更前: - - ```ts - zoomIn(): boolean; - zoomOut(): boolean; - createWebMessagePorts(): Array; - postMessage(options: { message: WebMessageEvent, uri: string}): void; - getHitTestValue(): HitTestValue; - getWebId(): number; - getDefaultUserAgent(): string; - getTitle(): string; - getPageHeight(): number; - backOrForward(step: number): void; - searchAllAsync(searchString: string): void; - clearMatches(): void; - searchNext(forward: boolean): void; - clearSslCache(): void; - clearClientAuthenticationCache(): void; - getUrl(): string; - ``` - -- 变更后: - - ```ts - zoomIn(): void; - zoomOut(): void; - createWebMessagePorts(): Array; - postMessage(name: string, ports: Array, uri: string): void; - getHitTestValue(): HitTestValue; - getWebId(): number; - getUserAgent(): string; - getTitle(): string; - getPageHeight(): number; - backOrForward(step: number): void; - searchAllAsync(searchString: string): void; - clearMatches(): void; - searchNext(forward: boolean): void; - clearSslCache(): void; - clearClientAuthenticationCache(): void; - getUrl(): string; - ``` - -**适配指导** - -原WebController类不需要import,现WebviewController类使用的是@ohos.web.webview,以下方式import: - - ```ts - import web_webview from '@ohos.web.webview'; - ``` - -## cl.web.10 WebAsyncController类迁移 - -WebAsyncController类下接口迁移至web.webview.webview.WebviewController,并新增接口错误码抛出。 - -**变更影响** - -基于此前版本开发的应用,需注意错误码处理的使用。 - -**关键的接口/组件变更** - -- 涉及接口 - - storeWebArchive(baseName: string, autoName: boolean): Promise; - storeWebArchive(baseName: string, autoName: boolean, callback : AsyncCallback): void; - -- 变更前: - - ```ts - storeWebArchive(baseName: string, autoName: boolean): Promise; - storeWebArchive(baseName: string, autoName: boolean, callback : AsyncCallback): void; - ``` - -- 变更后: - - ```ts - storeWebArchive(baseName: string, autoName: boolean): Promise; - storeWebArchive(baseName: string, autoName: boolean, callback : AsyncCallback): void; - ``` - -**适配指导** - -使用示例: - - ```ts - // xxx.ets - import web_webview from '@ohos.web.webview' - - @Entry - @Component - struct WebComponent { - controller: web_webview.WebviewController = new web_webview.WebviewController(); - - build() { - Column() { - Button('saveWebArchive') - .onClick(() => { - try { - this.controller.storeWebArchive("/data/storage/el2/base/", true, (error, filename) => { - if (error) { - console.info(`save web archive error: ` + JSON.stringify(error)) - return; - } - if (filename != null) { - console.info(`save web archive success: ${filename}`) - } - }); - } catch (error) { - console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); - } - }) - Web({ src: 'www.example.com', controller: this.controller }) - } - } - } - ``` - -## cl.web.11 删除webDebuggingAccess接口 - -该接口定义不合理,该属性对所有web实例生效的,属于全局配置。用本次新增的接口setWebDebuggingAccess替换。 - -**变更影响** - -该接口删除无法再使用,请使用新增的接口setWebDebuggingAccess替换。 - -**关键的接口/组件变更** - -| 类名 | 接口类型 | 接口声明 | 变更类型 | -| -- | -- | -- | -- | -|WebAttribute | method | webDebugggingAccess(webDebugggingAccess: boolean): WebAttribute| 删除 | - -**适配指导** - -该接口删除无法再使用,请使用新增的接口setWebDebuggingAccess替换。 - -## cl.web.12 新增setWebDebuggingAccess接口 - -WebviewController提供静态方法来设置调试模式开关,该设置对所有web实例生效。 - -**变更影响** - -原有webDebugggingAccess属性定义不合理,因此新增该静态接口来设置调试模式开关。应用侧需要使用该接口来打开调试模式开关。 - -**关键的接口/组件变更** - -| 类名 | 接口类型 | 接口声明 | 变更类型 | -| -- | -- | -- | -- | -|webview.WebviewController | method | static setWebDebugggingAccess(webDebugggingAccess: boolean): void| 新增 | - -**适配指导** - -以打开调试开关为例,示例代码如下: - -```ts -// xxx.ets -import web_webview from '@ohos.web.webview'; - -@Entry -@Component -struct WebComponent { - controller: web_webview.WebviewController = new web_webview.WebviewController(); - - aboutToAppear():void { - try { - web_webview.WebviewController.setWebDebuggingAccess(true); - } catch(error) { - console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); - } - } - - build() { - Column() { - Web({ src: 'www.example.com', controller: this.controller }) - } - } -} -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelogs-ability.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelogs-ability.md deleted file mode 100644 index b5289610ac..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelogs-ability.md +++ /dev/null @@ -1,291 +0,0 @@ -# 元能力子系统JS API变更Changelog - -## cl.ability.1 AreaMode接口变更 -AreaMode接口有多个重复,删除掉重复的AreaMode。 - -**变更影响** - -影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 - -**关键的接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| ------------------------- | ------------------- | ------------------------------------------------------------ | -------- | -| @ohos.app.ability.common.d.ts | common.AreaMode | | 删除 | -| application/Context.d.ts | AreaMode | | 删除 | - - -**适配指导** - -使用@ohos.app.ability.contextConstant.d.ts中的AreaMode - -```ts -import contextConstant from '@ohos.app.ability.contextConstant'; -let area: contextConstant.AreaMode = contextConstant.AreaMode.EL1; -``` - - - -## cl.ability.2 killProcessesBySelf接口变更 - -killProcessesBySelf接口命名不合理,修改为killAllProcesses。 - -**变更影响** - -影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 - -**关键接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| ------------------------------ | ------------------ | ----------------------------------------------------- | -------- | -| application/ApplicationContext | ApplicationContext | killProcessesBySelf(): Promise\; | 删除 | -| application/ApplicationContext | ApplicationContext | killProcessesBySelf(callback: AsyncCallback\); | 删除 | -| application/ApplicationContext | ApplicationContext | killAllProcesses(): Promise\; | 新增 | -| application/ApplicationContext | ApplicationContext | killAllProcesses(callback: AsyncCallback\); | 新增 | - - -**适配指导** - -应用中调用killProcessesBySelf可参考下列代码 - -变更前代码: - -```ts -let context: common.UIAbilityContext = globalThis.abilityContext; -let appContext = context.getApplicationContext(); -appContext.killProcessesBySelf() -``` - -变更后代码: - -```ts -let context: common.UIAbilityContext = globalThis.abilityContext; -let appContext = context.getApplicationContext(); -appContext.killAllProcesses() -``` - - - -## cl.ability.3 getProcessRunningInformation接口变更 - -getProcessRunningInformation接口命名不合理,修改为getRunningProcessInformation。 - -**变更影响** - -影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 - -**关键接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| ----------------------------------- | ------------------ | ------------------------------------------------------------ | -------- | -| @ohos.app.ability.appManager.d.ts | appManager | function getProcessRunningInformation(): Promise\\>; | 删除 | -| @ohos.app.ability.appManager.d.ts | appManager | function getProcessRunningInformation(callback: AsyncCallback\\>): void; | 删除 | -| @ohos.app.ability.appManager.d.ts | appManager | function getRunningProcessInformation(): Promise\\>; | 新增 | -| @ohos.app.ability.appManager.d.ts | appManager | function getRunningProcessInformation(callback: AsyncCallback\\>): void; | 新增 | -| application/ApplicationContext.d.ts | ApplicationContext | getProcessRunningInformation(): Promise\\>; | 删除 | -| application/ApplicationContext.d.ts | ApplicationContext | getProcessRunningInformation(callback: AsyncCallback\\>): void; | 删除 | -| application/ApplicationContext.d.ts | ApplicationContext | getRunningProcessInformation(): Promise\\>; | 新增 | -| application/ApplicationContext.d.ts | ApplicationContext | getRunningProcessInformation(callback: AsyncCallback\\>): void; | 新增 | - -**适配指导** - -应用中调用getProcessRunningInformation可参考下列代码 - -变更前代码: - -```ts -let context: common.UIAbilityContext = globalThis.abilityContext; -let appContext = context.getApplicationContext(); -appContext.getProcessRunningInformation() -``` - -变更后代码: - -```ts -let context: common.UIAbilityContext = globalThis.abilityContext; -let appContext = context.getApplicationContext(); -appContext.getRunningProcessInformation() -``` - - - -## cl.ability.4 WantConstant.Flags接口变更 -WantConstant.Flags接口有多个无效Flag定义,删除掉无效的Flag。 - -**变更影响** - -影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 - -**关键的接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| ------------------------- | ------------------- | ------------------------------------------------------------ | -------- | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Flags | FLAG_ABILITY_FORWARD_RESULT | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Flags | FLAG_ABILITY_CONTINUATION | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Flags | FLAG_NOT_OHOS_COMPONENT | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Flags | FLAG_ABILITY_FORM_ENABLED | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Flags | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Flags | FLAG_AUTH_PREFIX_URI_PERMISSION | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Flags | FLAG_ABILITYSLICE_MULTI_DEVICE | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Flags | FLAG_START_FOREGROUND_ABILITY | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Flags | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Flags | FLAG_INSTALL_WITH_BACKGROUND_MODE | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Flags | FLAG_ABILITY_CLEAR_MISSION | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Flags | FLAG_ABILITY_NEW_MISSION | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Flags | FLAG_ABILITY_MISSION_TOP | 删除 | - - - -## cl.ability.5 WantConstant.Action接口变更 -WantConstant.Action接口有多个无效Action定义,删除掉无效的Action。 - -**变更影响** - -影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 - -**关键的接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| ------------------------- | ------------------- | ------------------------------------------------------------ | -------- | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Action | ACTION_APP_ACCOUNT_AUTH | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Action | ACTION_MARKET_DOWNLOAD | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Action | ACTION_MARKET_CROWDTEST | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Action | DLP_PARAMS_SANDBOX | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Action | DLP_PARAMS_BUNDLE_NAME | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Action | DLP_PARAMS_MODULE_NAME | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Action | DLP_PARAMS_ABILITY_NAME | 删除 | - - - -## cl.ability.6 Caller相关接口变更 -Caller相关接口使用RPC废弃的Sequenceable和MessageParcel对象,使用RPC在API9提供的Parcelable和MessageSequence对象替代。 - -**变更影响** - -影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 - -**关键的接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| ------------------------- | ------------------- | ------------------------------------------------------------ | -------- | -| api/@ohos.app.ability.UIAbility.d.ts | CalleeCallback | (indata: rpc.MessageParcel): rpc.Sequenceable; | 变更,修改为 (indata: rpc.MessageSequence): rpc.Parcelable; | -| api/@ohos.app.ability.UIAbility.d.ts | Caller | call(method: string, data: rpc.Sequenceable): Promise; | 变更,修改为 call(method: string, data: rpc.Parcelable): Promise; | -| api/@ohos.app.ability.UIAbility.d.ts | Caller | callWithResult(method: string, data: rpc.Sequenceable): Promise; | 变更,修改为 callWithResult(method: string, data: rpc.Parcelable): Promise; | - -**适配指导** - -应用中调用Caller相关接口可参考下列代码 - -变更前代码: - -```ts - class MyMessageAble{ - name:"" - str:"" - num: 1 - constructor(name, str) { - this.name = name; - this.str = str; - } - marshalling(messageParcel) { - messageParcel.writeInt(this.num); - messageParcel.writeString(this.str); - console.log('MyMessageAble marshalling num[' + this.num + '] str[' + this.str + ']'); - return true; - } - unmarshalling(messageParcel) { - this.num = messageParcel.readInt(); - this.str = messageParcel.readString(); - console.log('MyMessageAble unmarshalling num[' + this.num + '] str[' + this.str + ']'); - return true; - } - }; - let method = 'call_Function'; - function funcCallBack(pdata) { - console.log('Callee funcCallBack is called ' + pdata); - let msg = new MyMessageAble("test", ""); - pdata.readSequenceable(msg); - return new MyMessageAble("test1", "Callee test"); - } - export default class MainUIAbility extends UIAbility { - onCreate(want, launchParam) { - console.log('Callee onCreate is called'); - try { - this.callee.on(method, funcCallBack); - } catch (error) { - console.log('Callee.on catch error, error.code: ' + error.code + - ' error.message: ' + error.message); - } - } - } -``` - -变更后代码: - -```ts - class MyMessageAble{ - name:"" - str:"" - num: 1 - constructor(name, str) { - this.name = name; - this.str = str; - } - marshalling(messageSequence) { - messageSequence.writeInt(this.num); - messageSequence.writeString(this.str); - console.log('MyMessageAble marshalling num[' + this.num + '] str[' + this.str + ']'); - return true; - } - unmarshalling(messageSequence) { - this.num = messageSequence.readInt(); - this.str = messageSequence.readString(); - console.log('MyMessageAble unmarshalling num[' + this.num + '] str[' + this.str + ']'); - return true; - } - }; - let method = 'call_Function'; - function funcCallBack(pdata) { - console.log('Callee funcCallBack is called ' + pdata); - let msg = new MyMessageAble("test", ""); - pdata.readParcelable(msg); - return new MyMessageAble("test1", "Callee test"); - } - export default class MainUIAbility extends UIAbility { - onCreate(want, launchParam) { - console.log('Callee onCreate is called'); - try { - this.callee.on(method, funcCallBack); - } catch (error) { - console.log('Callee.on catch error, error.code: ' + error.code + - ' error.message: ' + error.message); - } - } - } -``` - - - -## cl.ability.7 WantConstant.Flags接口变更 - -wantConstant接口有两个类似的枚举,合并成一个。 - -**变更影响** - -影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 - -**关键的接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| ----------------------------------- | ---------------------- | ----------------------------------- | -------- | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Parameter | ABILITY_BACK_TO_OTHER_MISSION_STACK | 删除 | -| @ohos.app.ability.wantConstant.d.ts | wantConstant.Params | ABILITY_BACK_TO_OTHER_MISSION_STACK | 新增 | - -**适配指导** - -使用@ohos.app.ability.wantConstant.d.ts中的ABILITY_BACK_TO_OTHER_MISSION_STACK - -```ts -import wantConstant from '@ohos.app.ability.wantConstant'; -let backToOtherMissionStack: wantConstant.Params = wantParam.Params.ABILITY_BACK_TO_OTHER_MISSION_STACK; -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelogs-arkui.md deleted file mode 100644 index 2b4e4e962d..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelogs-arkui.md +++ /dev/null @@ -1,306 +0,0 @@ -# arkui子系统ChangeLog - -## cl.arkui.1 getInspectorTree接口返回值从string修改为Object。 - -**变更影响** - -3.2.10.7之前使用getInspectorTree接口的代码需要适配 - -**关键的接口/组件变更** - -getInspectorTree接口返回值从string修改为Object - -**适配指导** - -将getInspectorTree返回值作为string使用的代码需要修改,比如以下示例代码: - -```typescript -console.info(getInspectorTree()) -``` - -需要修改成 - -```typescript -console.info(JSON.stringify(getInspectorTree())) -``` - -## cl.arkui.2 废弃GridItem的forceRebuild属性 - -**变更影响** - -无,该属性无作用 - -**关键的接口/组件变更** - -GridItem的forceRebuild属性废弃 - -**适配指导** - -如有使用可以直接删除,不影响GridItem功能 - -## cl.arkui.3 Plugin模块接口变更 - - -### 1. arkui子系统Plugin模块 `PluginComponentTemplate` 接口存在变更: - -ability命名无法准确表达对应参数的语义,修改为bundleName。 - -开发者需要根据以下说明对应用进行适配。 - - - -**变更影响** - -基于此前版本开发的应用,需适配变更接口,变更前的接口已经不能正常使用,会在编译过程中报错。 - - - -**关键的接口/组件变更** - -- 涉及接口 - - interface PluginComponentTemplate { - source: string; - bundleName: string; - } - - interface PluginComponentInterface { - (value: { template: PluginComponentTemplate; data: any }): PluginComponentAttribute; -} - -- 变更前: - -```js - interface PluginComponentTemplate { source: string; ability: string; } - interface PluginComponentInterface { - (value: { template: PluginComponentTemplate; data: any }): PluginComponentAttribute; - } -``` - -- 变更后: - -```js - interface PluginComponentTemplate { source: string; bundleName: string; } - interface PluginComponentInterface { - (value: { template: PluginComponentTemplate; data: any }): PluginComponentAttribute; - } -``` - -**适配指导** - -使用变更后的接口,示例代码如下: - -- 变更前: -```js -PluginComponent({ - template: { source: 'plugincomponent1', ability: 'com.example.plugin' }, - data: { 'countDownStartValue': 'new countDownStartValue' } -}).size({ width: 500, height: 100 }) -``` - -- 变更后: -```js -PluginComponent({ - template: { source: 'plugincomponent1', bundleName: 'com.example.plugin' }, - data: { 'countDownStartValue': 'new countDownStartValue' } -}).size({ width: 500, height: 100 }) -``` - -### 2. arkui子系统Plugin模块 `pluginComponentManager` 接口存在变更: - -want命名无法准确表达对应参数的语义,修改为target。 - -开发者需要根据以下说明对应用进行适配。 - - - -**变更影响** - -基于此前版本开发的应用,需适配变更接口。变更前的接口会出现告警,虽然可以通过编译,但是已经不能正常使用其功能。 - - - -**关键的接口/组件变更** - -- 涉及接口 - - interface PushParameterForStage { - owner: Want; - target: Want; - name: string; - data: KVObject; - extraData: KVObject; - jsonPath?: string; - } - - function push(param: PushParameterForStage, callback: AsyncCallback): void; - - interface RequestParameterForStage { - owner: Want; - target: Want; - name: string; - data: KVObject; - jsonPath?: string; - } - - function request(param: RequestParameterForStage, callback: AsyncCallback): void; - -- 变更前: - -```js - interface PushParameterForStage { - owner: Want; - want: Want; - name: string; - data: KVObject; - extraData: KVObject; - jsonPath?: string; - } - - function push(param: PushParameterForStage, callback: AsyncCallback): void; - - interface RequestParameterForStage { - owner: Want; - want: Want; - name: string; - data: KVObject; - jsonPath?: string; - } - - function request(param: RequestParameterForStage, callback: AsyncCallback): void; -``` - -- 变更后: - -```js - interface PushParameterForStage { - owner: Want; - target: Want; - name: string; - data: KVObject; - extraData: KVObject; - jsonPath?: string; - } - - function push(param: PushParameterForStage, callback: AsyncCallback): void; - - interface RequestParameterForStage { - owner: Want; - target: Want; - name: string; - data: KVObject; - jsonPath?: string; - } - - function request(param: RequestParameterForStage, callback: AsyncCallback): void; -``` - -**适配指导** - -使用变更后的接口,示例代码如下: - -- 变更前: -```js -import pluginComponentManager from '@ohos.pluginComponent' - -pluginComponentManager.push({ - owner:{ - bundleName:"com.example.provider", - abilityName:"com.example.provider.MainAbility" - }, - want: { - bundleName: "com.example.provider", - abilityName: "com.example.provider.MainAbility", - }, - name: "ets/pages/plugin2.js", - data: { - "js": "ets/pages/plugin.js", - "key_1": 1111, - }, - extraData: { - "extra_str": "this is push event" - }, - jsonPath: "", - }, - (err, data) => { - console.log("push_callback:err: " ,JSON.stringify(err)); - console.log("push_callback:data: " , JSON.stringify(data)); - console.log("push_callback: push ok!"); - } -) - -pluginComponentManager.request({ - owner:{ - bundleName:"com.example.provider", - abilityName:"com.example.provider.MainAbility" - }, - want: { - bundleName: "com.example.provider", - abilityName: "ets/pages/plugin2.js", - }, - name: "plugintemplate", - data: { - "key_1": " myapplication plugin component test", - "key_2": 123456 - }, - jsonPath: "", -}, - (err, data) => { - console.log("request_callback: componentTemplate.ability=" + data.componentTemplate.ability) - console.log("request_callback: componentTemplate.source=" + data.componentTemplate.source) - } -) -``` - -- 变更后: -```js -import pluginComponentManager from '@ohos.pluginComponent' - -pluginComponentManager.push({ - owner:{ - bundleName:"com.example.provider", - abilityName:"com.example.provider.MainAbility" - }, - target: { - bundleName: "com.example.provider", - abilityName: "com.example.provider.MainAbility", - }, - name: "ets/pages/plugin2.js", - data: { - "js": "ets/pages/plugin.js", - "key_1": 1111, - }, - extraData: { - "extra_str": "this is push event" - }, - jsonPath: "", - }, - (err, data) => { - console.log("push_callback:err: " ,JSON.stringify(err)); - console.log("push_callback:data: " , JSON.stringify(data)); - console.log("push_callback: push ok!"); - } -) - -pluginComponentManager.request({ - owner:{ - bundleName:"com.example.provider", - abilityName:"com.example.provider.MainAbility" - }, - target: { - bundleName: "com.example.provider", - abilityName: "ets/pages/plugin2.js", - }, - name: "plugintemplate", - data: { - "key_1": " myapplication plugin component test", - "key_2": 123456 - }, - jsonPath: "", -}, - (err, data) => { - console.log("request_callback: componentTemplate.ability=" + data.componentTemplate.ability) - console.log("request_callback: componentTemplate.source=" + data.componentTemplate.source) - } -) -``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelogs-bundlemanager.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelogs-bundlemanager.md deleted file mode 100644 index 15accb0409..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelogs-bundlemanager.md +++ /dev/null @@ -1,245 +0,0 @@ -# 包管理子系统ChangeLog - -## cl.bundlemanager.1 包管理删除@ohos.bundle.bundleManager.d.ts中的getAbilityIcon接口,可以使用@ohos.resourceManager.d.ts中的getMediaContent替换。 - -包管理删除[@ohos.bundle.bundleManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.bundleManager.d.ts)中的getAbilityIcon接口,可以使用[@ohos.resourceManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.resourceManager.d.ts)中的getMediaContent替换。 - -**变更影响**
-使用之前已发布的API 9各beta版本且使用到了getAbilityIcon接口的,需要改为使用getMediaContent接口。 - -**关键的接口/组件变更**
-删除@ohos.bundle.bundleManager.d.ts中的getAbilityIcon接口。 - -**适配指导**
-使用@ohos.bundle.bundleManager.d.ts下面的getAbilityIcon,需要修改为@ohos.resourceManager.d.ts中的getMediaContent。需要提前获取到图标的资源ID值,可参考该接口的[使用指导](../../../application-dev/reference/apis/js-apis-resource-manager.md#getmediacontent9)。 - -## cl.bundlemanager.2 包管理底层能力变更,仅支持系统资源HAP自定义权限,其它HAP均不支持自定义权限。 - -仅支持系统资源HAP自定义权限,其它HAP均不支持自定义权限。包管理在解析HAP时,仅支持解析资源HAP(包名为:ohos.global.systemres)的配置文件中的definePermissions字段,该字段用来定义权限。其它HAP中配置的definePermissions字段将不会解析。 -如果有应用需要自定义权限,可以在资源HAP的[配置文件](https://gitee.com/openharmony/utils_system_resources/blob/master/systemres/main/config.json)中definePermissions字段下面新增定义权限。格式可参考[定义权限](../../../application-dev/quick-start/module-structure.md#definepermissions对象内部结构)。 - - -**变更影响**
-升级新版本镜像后,应用自定义的权限将不会生效,使用方在申请该权限时,会授权失败。 - -**关键的接口/组件变更**
-包管理底层能力变更,仅支持系统资源HAP自定义权限,其它HAP均不支持自定义权限。 - -**适配指导**
-如果有应用需要自定义权限,可以在资源HAP的[配置文件](https://gitee.com/openharmony/utils_system_resources/blob/master/systemres/main/config.json)中definePermissions字段下面新增定义权限。格式可参考[定义权限](../../../application-dev/quick-start/module-structure.md#definepermissions对象内部结构)。 - -## cl.bundlemanager.3 包管理二级模块文件名称变更,修改为文件内对应的接口名称 - -包管理二级模块文件名称变更,修改为文件内对应的接口名称,变更文件如下: - -| 原文件名称 |变更后文件名称 | -|----|----| -| bundleManager/abilityInfo.d.ts | bundleManager/AbilityInfo.d.ts | -| bundleManager/applicationInfo.d.ts | bundleManager/ApplicationInfo.d.ts | -| bundleManager/bundleInfo.d.ts | bundleManager/BundleInfo.d.ts | -| bundleManager/dispatchInfo.d.ts | bundleManager/DispatchInfo.d.ts | -| bundleManager/elementName.d.ts | bundleManager/ElementName.d.ts | -| bundleManager/extensionAbilityInfo.d.ts | bundleManager/ExtensionAbilityInfo.d.ts | -| bundleManager/hapModuleInfo.d.ts | bundleManager/HapModuleInfo.d.ts | -| bundleManager/launcherAbilityInfo.d.ts | bundleManager/LauncherAbilityInfo.d.ts | -| bundleManager/metadata.d.ts | bundleManager/Metadata.d.ts | -| bundleManager/packInfo.d.ts | bundleManager/BundlePackInfo.d.ts | -| bundleManager/permissionDef.d.ts | bundleManager/PermissionDef.d.ts | -| bundleManager/remoteAbilityInfo.d.ts | bundleManager/RemoteAbilityInfo.d.ts | -| bundleManager/shortcutInfo.d.ts | bundleManager/ShortcutInfo.d.ts | - -除了免安装相关的BundlePackInfo文件名称增加了Bundle,其余文件名称均是修改为大写开头。 - -**变更影响**
-仅修改二级模块文件名称,不会影响一级模块的使用。在使用之前已发布的API 9各beta版本时,如果在ts文件中直接导入了bundleManager下面二级模块接口的,IDE中编译报错的话,需要修改导入的文件名称。 - -**关键的接口/组件变更**
-变更bundleManager文件夹下面的d.ts名称,修改为文件中的接口名称。 - -**适配指导**
-使用新的sdk后,正常情况下应用无需适配该变更。如果在应用中直接导入了bundleManager文件夹下面的文件,则需要修改导入的文件名称。可以按照如下的修改方式: - -**修改前:** -```ts -import {AbilityInfo} from 'bundleManger/abilityInfo'; -import {ExtensionAbilityInfo} from 'bundleManger/extensionAbilityInfo'; -import {BundlePackInfo} from 'bundleManger/packInfo'; -``` -**修改后:** -```ts -import {AbilityInfo} from 'bundleManger/AbilityInfo'; -import {ExtensionAbilityInfo} from 'bundleManger/ExtensionAbilityInfo'; -import {BundlePackInfo} from 'bundleManger/BundlePackInfo'; -``` - -## cl.bundlemanager.4 包管理LaunchType枚举类型名称变更,由STANDARD修改为MULTITON,枚举值不变。 - -包管理[LaunchType](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.bundleManager.d.ts)枚举类型变更,由STANDARD修改为MULTITON,枚举值不变,表示多实例类型。 - -**变更影响**
-使用之前已发布的API 9各beta版本且使用到了LaunchType.STANDARD的,需要改为使用LaunchType.MULTITON接口。 - -**关键的接口/组件变更**
-LaunchType枚举类型名称变更,由LaunchType.STANDARD修改为LaunchType.MULTITON。 - -**适配指导**
-由LaunchType.STANDARD修改为LaunchType.MULTITON。 - -## cl.bundlemanager.5 包管理AbilityInfo结构体中isVisible字段修改为exported,类型不变。 - -包管理[AbilityInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/AbilityInfo.d.ts)结构体中isVisible字段修改为exported,类型不变,表示当前ability是否支持导出,被其他的ability使用。 - -**变更影响**
-使用之前已发布的API 9各beta版本且使用到了isVisible的,需要改为使用exported。 - -**关键的接口/组件变更**
-包管理[AbilityInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/AbilityInfo.d.ts)结构体中isVisible字段修改为exported,类型不变。 - -**适配指导**
-由isVisible修改为exported。 - -## cl.bundlemanager.6 包管理ExtensionAbilityInfo结构体中isVisible字段修改为exported,类型不变。 - -包管理[ExtensionAbilityInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ExtensionAbilityInfo.d.ts)结构体中isVisible字段修改为exported,类型不变,表示当前ability是否支持导出,被其他的ability使用。 - -**变更影响**
-使用之前已发布的API 9各beta版本且使用到了isVisible的,需要改为使用exported。 - -**关键的接口/组件变更**
-包管理[ExtensionAbilityInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ExtensionAbilityInfo.d.ts)结构体中isVisible字段修改为exported,类型不变。 - -**适配指导**
-由isVisible修改为exported。 - -## cl.bundlemanager.7 包管理ModuleAbilityInfo结构体中visible字段修改为exported,类型不变。 - -包管理[ModuleAbilityInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/BundlePackInfo.d.ts)结构体中visible字段修改为exported,类型不变,表示当前ability是否支持导出,被其他的ability使用。 - -**变更影响**
-使用之前已发布的API 9各beta版本且使用到了visible的,需要改为使用exported。 - -**关键的接口/组件变更**
-包管理[ModuleAbilityInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/BundlePackInfo.d.ts)结构体中visible字段修改为exported,类型不变。 - -**适配指导**
-由visible修改为exported。 - -## cl.bundlemanager.8 app.json配置文件删除distributedNotificationEnabled标签 -删除配置文件app.json中[distributedNotificationEnabled](../../../application-dev/quick-start/app-configuration-file.md)标签 - -**变更影响**
-删除配置文件app.json中[distributedNotificationEnabled](../../../application-dev/quick-start/app-configuration-file.md)标签,IDE中不再支持配置该标签,使用该标签会导致IDE编译报错 - -**适配指导**
-删除[distributedNotificationEnabled](../../../application-dev/quick-start/app-configuration-file.md)标签 - -## cl.bundlemanager.9 app.json配置文件删除entityType标签 -删除配置文件app.json中[entityType](../../../application-dev/quick-start/app-configuration-file.md)标签 - -**变更影响**
-删除配置文件app.json中[entityType](../../../application-dev/quick-start/app-configuration-file.md)标签,IDE中不再支持配置该标签,使用该标签会导致IDE编译报错 - -**适配指导**
-删除[entityType](../../../application-dev/quick-start/app-configuration-file.md)标签 - -## cl.bundlemanager.10 app.json配置文件删除keepAlive标签 -删除配置文件app.json中[keepAlive](../../../application-dev/quick-start/app-configuration-file.md)标签 - -**变更影响**
-删除配置文件app.json中[keepAlive](../../../application-dev/quick-start/app-configuration-file.md)标签,IDE中不再支持配置该标签,使用该标签会导致IDE编译报错 - -**适配指导**
-删除[keepAlive](../../../application-dev/quick-start/app-configuration-file.md)标签 - -## cl.bundlemanager.11 app.json配置文件删除removable标签 -删除配置文件app.json中[removable](../../../application-dev/quick-start/app-configuration-file.md)标签 - -**变更影响**
-删除配置文件app.json中[removable](../../../application-dev/quick-start/app-configuration-file.md)标签,IDE中不再支持配置该标签,使用该标签会导致IDE编译报错 - -**适配指导**
-删除[removable](../../../application-dev/quick-start/app-configuration-file.md)标签 - -## cl.bundlemanager.12 app.json配置文件删除singleton标签 -删除配置文件app.json中[singleton](../../../application-dev/quick-start/app-configuration-file.md)标签 - -**变更影响**
-删除配置文件app.json中[singleton](../../../application-dev/quick-start/app-configuration-file.md)标签,IDE中不再支持配置该标签,使用该标签会导致IDE编译报错 - -**适配指导**
-删除[singleton](../../../application-dev/quick-start/app-configuration-file.md)标签 - -## cl.bundlemanager.13 app.json配置文件删除userDataClearable标签 -删除配置文件app.json中[userDataClearable](../../../application-dev/quick-start/app-configuration-file.md)标签 - -**变更影响**
-删除配置文件app.json中[userDataClearable](../../../application-dev/quick-start/app-configuration-file.md)标签,IDE中不再支持配置该标签,使用该标签会导致IDE编译报错 - -**适配指导**
-删除[userDataClearable](../../../application-dev/quick-start/app-configuration-file.md)标签 - -## cl.bundlemanager.14 module.json配置文件中module的name标签不再支持配置中文 -module.json配置文件中的module的[name](../../../application-dev/quick-start/module-configuration-file.md)不再支持配置中文 - -**变更影响**
-删除配置文件module.json中module的[name](../../../application-dev/quick-start/module-configuration-file.md)标签不再支持配置中文,IDE中配置该标签为中文,会导致IDE编译报错 - -**适配指导**
-使用英文语言配置module.json中module的[name](../../../application-dev/quick-start/module-configuration-file.md)标签 - -## cl.bundlemanager.15 module.json配置文件中ability的name标签不再支持配置中文 -module.json配置文件中的ability的[name](../../../application-dev/quick-start/module-configuration-file.md)不再支持配置中文 - -**变更影响**
-删除配置文件module.json中ability的[name](../../../application-dev/quick-start/module-configuration-file.md)标签不再支持配置中文,IDE中配置该标签为中文,会导致IDE编译报错 - -**适配指导**
-使用英文语言配置module.json中ability的[name](../../../application-dev/quick-start/module-configuration-file.md)标签 - -## cl.bundlemanager.16 module.json配置文件删除uiSyntax标签 -删除配置文件module.json中[uiSyntax](../../../application-dev/quick-start/module-configuration-file.md)标签 - -**变更影响**
-删除配置文件module.json中[uiSyntax](../../../application-dev/quick-start/module-configuration-file.md)标签,IDE中不再支持配置该标签,使用该标签会导致IDE编译报错 - -**适配指导**
-删除module.json中[uiSyntax](../../../application-dev/quick-start/module-configuration-file.md)标签 - -## cl.bundlemanager.17 module.json配置文件中module及ability中的srcEntrance标签修改为srcEntry -配置文件module.json中[srcEntrance](../../../application-dev/quick-start/module-configuration-file.md)标签修改为srcEntry - -**变更影响**
-删除配置文件module.json中[srcEntrance](../../../application-dev/quick-start/module-configuration-file.md)标签,IDE中不再支持配置该标签,使用该标签会导致IDE编译报错 - -**适配指导**
-删除module.json中[srcEntrance](../../../application-dev/quick-start/module-configuration-file.md)标签,使用srcEntry替代 - -## cl.bundlemanager.18 删除module.json配置文件中distroFilter的apiVersion标签 -删除配置文件module.json中[distroFilter](../../../application-dev/quick-start/module-configuration-file.md)的apiVersion标签 - -**变更影响**
-删除配置文件module.json[distroFilter](../../../application-dev/quick-start/module-configuration-file.md)的apiVersion标签,IDE中不再支持配置该标签,使用该标签会导致IDE编译报错 - -**适配指导**
-删除module.json中[distroFilter](../../../application-dev/quick-start/module-configuration-file.md)的apiVersion标签 - -## cl.bundlemanager.19 module.json配置文件中distroFilter修改为distributionFilter -配置文件module.json中[distroFilter](../../../application-dev/quick-start/module-configuration-file.md)标签修改为distributionFilter - -**变更影响**
-删除配置文件module.json[distroFilter](../../../application-dev/quick-start/module-configuration-file.md)标签,IDE中不再支持配置该标签,使用该标签会导致IDE编译报错 - -**适配指导**
-删除module.json中[distroFilter](../../../application-dev/quick-start/module-configuration-file.md)标签,使用distributionFilter替代 - -## cl.bundlemanager.20 module.json配置文件中launchType的标签standard模式修改为multiton -删除module.json中[launchType](../../../application-dev/quick-start/module-configuration-file.md)标签的standard模式修改为multiton - -**适配指导**
-删除module.json中[launchType](../../../application-dev/quick-start/module-configuration-file.md)标签的standard模式,使用multiton替代 - -## cl.bundlemanager.21 module.json配置文件中abilities的标签visible修改为exported -module.json中[abilities](../../../application-dev/quick-start/module-configuration-file.md)的标签visible修改为exported,表示当前ability是否支持导出,被其他的ability使用。 - -**适配指导**
-删除module.json中[abilities](../../../application-dev/quick-start/module-configuration-file.md)的visible标签,使用exported标签替代 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelogs-util.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelogs-util.md deleted file mode 100644 index 4b3e484809..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelogs-util.md +++ /dev/null @@ -1,99 +0,0 @@ -# util系统JS API变更Changelog - -OpenHarmony 3.2.10.7(Mr)版本相较于OpenHarmony 3.2.beta4版本,util子系统的API变更如下 - -## cl.util.1.randomUUID接口名变更 -util子系统randomUUID函数名存在变更: - -function randomUUID(entropyCache?: boolean): string 改为 function generateRandomUUID(entropyCache?: boolean): string 函数名由原来的randomUUID改为generateRandomUUID。 - -开发者需要根据以下说明对应用进行适配。 - - **变更影响** - -影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 - -**关键的接口/组件变更** - -| 模块名 | 方法/属性/枚举/常量 | 变更类型 | -| :---------- | ------------------- | ------- | -| @ohos.util | function randomUUID(entropyCache?: boolean): string | 删除 | -| @ohos.util | function generateRandomUUID(entropyCache?: boolean): string| 变更 | - -**适配指导** - -应用中使用generateRandomUUID可参考下列代码 - -示例: - -```ts -import util from '@ohos.util' -let uuid = util.generateRandomUUID(true); -console.log("RFC 4122 Version 4 UUID:" + uuid); -// 输出: -// RFC 4122 Version 4 UUID:88368f2a-d5db-47d8-a05f-534fab0a0045 -``` - -## cl.util.2.randomBinaryUUID接口名变更 -util子系统randomBinaryUUID函数名存在变更: - -function randomBinaryUUID(entropyCache?: boolean): Uint8Array 改为 function generateRandomBinaryUUID(entropyCache?: boolean): Uint8Array 函数名由原来的randomBinaryUUID改为generateRandomBinaryUUID。 - -开发者需要根据以下说明对应用进行适配。 - - **变更影响** - -影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 - -**关键的接口/组件变更** - -| 模块名 | 方法/属性/枚举/常量 | 变更类型 | -| :---------- | ------------------- | ------- | -| @ohos.util | function randomBinaryUUID(entropyCache?: boolean): Uint8Array; | 删除 | -| @ohos.util | function generateRandomBinaryUUID(entropyCache?: boolean): Uint8Array| 变更 | - -**适配指导** - -应用中使用generateRandomBinaryUUID可参考下列代码 - -示例: - -```ts -import util from '@ohos.util' -let uuid = util.generateRandomBinaryUUID(true); -console.log(JSON.stringify(uuid)); -// 输出: -// 138,188,43,243,62,254,70,119,130,20,235,222,199,164,140,150 -``` - -## cl.util.3.LRUCache类contains接口参数类型变更 -util子系统LRUCache类contains接口参数类型变更: - -contains(key: object): boolean 改为 contains(key: K): boolean 参数类型由原来的object改为K。 - -开发者需要根据以下说明对应用进行适配。 - - **变更影响** - -影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 - -**关键的接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| :-------- | ---------| -------------------------------- | -------- | -| @ohos.util | LRUCache | contains(key: object): boolean | 删除 | -| @ohos.util | LRUCache | contains(key: K): boolean | 变更 | - -**适配指导** - -应用中使用contains函数可参考下列代码 - -示例: - -```ts -import util from '@ohos.util' -let pro = new util.LRUCache(); -pro.put(2,10); -let obj = {1:"key"}; -let result = pro.contains(obj); -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.12.2/changelog-ability.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.12.2/changelog-ability.md deleted file mode 100644 index d1494fd160..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.12.2/changelog-ability.md +++ /dev/null @@ -1,35 +0,0 @@ -# 元能力子系统ChangeLog - -OpenHarmony 3.2.12.2版本相较于OpenHarmony3.2release版本,元能力子系统的API新增了更为详细的返回错误码信息,便于开发者更加有效地使用相关API接口。 - -## cl.ability.1 API错误码新增及优化描述 - -相较之前版本,对于接口的错误码描述及接口可能返回的所有错误码均进行了注释说明,开发者可以通过相关错误码进行更为准确的错误流程控制。 - -**变更影响** - -影响API9版本的JS接口对外声明,对实际功能无影响,开发者可选择是否适配。 - -**关键的接口/组件变更** - -本次变更主要涉及如下模块的注释更新,详细请参考对应的对外接口声明及API开发指导文档: - -| 模块 | 主要变更点说明 | -| ----------------------------------- | ------------------------------------------------------------ | -| @ohos.app.ability.UIAbility | 增加16200001、16200002、16200004、16200005、16000050等错误码返回说明 | -| @ohos.app.ability.abilityManager | 增加201、202、16000050等错误码返回说明,调整401等错误码返回说明 | -| @ohos.app.ability.appManager | 增加201、202、16000050等错误码返回说明,调整401等错误码返回说明 | -| @ohos.app.ability.dataUriUtils | 增加401等错误码返回说明 | -| @ohos.app.ability.errorManager | 增加16000003等错误码返回说明 | -| @ohos.app.ability.missionManager | 增加201、202、16300001、16300002、16000009等错误码返回说明,调整401等错误码返回说明 | -| @ohos.app.ability.quickFixManager | 增加201、202、18500001、18500002、18500008等错误码返回说明 | -| @ohos.app.ability.wantAgent | 增加16000007、16000015、16000151等错误码返回说明 | -| application/AbilityDelegator | 增加16000001、16000002、16000004、16000005、16000006、16000008、16000009、16000010、16000011、16000050、16000053、16000055、16200001、16000100等错误码返回说明 | -| application/ApplicationContext | 增加16000011、16000050等错误码返回说明 | -| application/Context | 增加201、202、401等错误码返回说明 | -| application/ServiceExtensionContext | 增加201、202、16000001、16000002、16000004、16000005、16000006、16000008、16000009、16000010、16000011、16000050、16000053、16000055、16200001等错误码返回说明 | -| application/UIAbilityContext | 增加201、16000001、16000002、16000004、16000005、16000006、16000008、16000009、16000010、16000011、16000050、16000053、16000055、16200001、16000100等错误码返回说明 | -| @ohos.app.form.formHost | 增加201、202、16500050、16500060、16501000、16501001、16501003等错误码返回说明,调整401等错误码返回说明 | -| @ohos.app.form.formProvider | 增加202、16500050、16500060、16500100、16501000、16501001、16501002、16501003,调整401等错误码返回说明 | -| application/FormExtensionContext | 增加202、401、16500050、16500100、16500101、16501000等错误码返回说明 | - diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.12.2/changelog-notification.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.12.2/changelog-notification.md deleted file mode 100644 index 2530aad051..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.12.2/changelog-notification.md +++ /dev/null @@ -1,22 +0,0 @@ -# 时间通知子系统ChangeLog - -OpenHarmony 3.2.12.2版本相较于OpenHarmony3.2release版本,事件通知子系统的API新增了更为详细的返回错误码信息,便于开发者更加有效地使用相关API接口。 - -## cl.notification.1 API错误码新增及优化描述 - -相较之前版本,对于接口的错误码描述及接口可能返回的所有错误码均进行了注释说明,开发者可以通过相关错误码进行更为准确的错误流程控制。 - -**变更影响** - -影响API9版本的JS接口对外声明,对实际功能无影响,开发者可选择是否适配。 - -**关键的接口/组件变更** - -本次变更主要涉及如下模块的注释更新,详细请参考对应的对外接口声明及API开发指导文档: - -| 模块 | 主要变更点说明 | -| --------------------------- | ------------------------------------------------------------ | -| @ohos.commonEventManager | 增加801、1500007、1500008等错误码返回说明 | -| @ohos.notificationManager | 增加201、202、1600001、1600002、1600003、1600004、1600005、1600007、1600008、1600009、1600010、17700001等错误码返回说明,调整401等错误码返回说明 | -| @ohos.notificationSubscribe | 增加201、202、1600001、1600002、1600003、1600007、1600008、17700001等错误码返回说明,调整401等错误码返回说明 | - diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.2/changelog-bundlemanager.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.2/changelog-bundlemanager.md deleted file mode 100644 index 277221beff..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.2/changelog-bundlemanager.md +++ /dev/null @@ -1,686 +0,0 @@ -# 包管理子系统ChangeLog - -## cl.bundlemanager.1 包管理API异常处理方式变更,原有API8及之前的接口全部废弃,需要使用新的API9接口 -包管理接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。对原有接口进行整改,原有API8及之前的接口全部废弃,需要使用新的API9接口。 - -**变更影响** - -基于OpenHarmony3.2.8.2及之后的SDK版本开发的应用,需适配API9的模块和接口,以及的API异常处理返回方式,否则会影响原有业务逻辑。 - -**关键接口/组件变更** - -新增接口按照模块进行了划分,将原有的的d.ts分成多个d.ts,可以根据业务需要导入不同的d.ts。新增接口支持统一的错误码异常处理规范,功能上与原接口保持一致。部分功能有变更或者新增的接口会单独列出。 - -为适配统一的API异常处理方式,对包管理API8及之前的接口进行废弃(下表中**原接口**列内容),并新增对应API9接口(下表中**新接口**列内容)。 - -| 原接口(废弃) | 新接口(新增) | -| ------ | ------ | -| @ohos.bundle.d.ts | [@ohos.bundle.bundleManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.bundleManager.d.ts) | -| @ohos.bundle.d.ts | [@ohos.bundle.freeInstall.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.freeInstall.d.ts) | -| @ohos.bundle.d.ts | [@ohos.bundle.installer.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.installer.d.ts) | -| @ohos.bundle.innerBundleManager.d.ts | [@ohos.bundle.launcherBundleManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.launcherBundleManager.d.ts) | -| @ohos.bundle.innerBundleManager.d.ts | [@ohos.bundle.bundleMonitor.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.bundleMonitor.d.ts) | -| @ohos.bundle.defaultAppManager.d.ts | [@ohos.bundle.defaultAppManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.defaultAppManager.d.ts) | -| @ohos.distributedBundle.d.ts | [@ohos.bundle.distributedBundleManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.distributedBundleManager.d.ts) | -| 无 | [@ohos.bundle.appControl.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.appControl.d.ts) | -| @system.package.d.ts | 无 | - -**适配指导**
-1. 调用包管理查询相关接口。 -``` -import bundle form '@ohos.bundle.bundleManager' -``` -2. 调用包管理安装卸载相关接口 -``` -import installer form '@ohos.bundle.installer' -``` -3. 调用包管理免安装相关接口 -``` -import freeInstall form '@ohos.bundle.freeInstall' -``` -4. 调用包管理launcher相关接口 -``` -import launcherBundleManager form '@ohos.bundle.launcherBundleManager' -import bundleMonitor form '@ohos.bundle.bundleMonitor' -``` -6. 调用包管理默认应用相关接口 -``` -import defaultAppManager form '@ohos.bundle.defaultAppManager' -``` -7. 调用包管理分布式相关接口 -``` -import distributedBundle form '@ohos.bundle.distributedBundle' -``` -此外还需要适配异常处理,具体参考新接口的接口文档。 - -## cl.bundlemanager.2 包管理API结构体变更,原有API8及之前的结构体全部废弃,需要使用新的API9结构体 -包管理接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。原有API8及之前的结构体全部废弃,需要使用新的API9结构体。 - -**变更影响** - -基于OpenHarmony3.2.8.2及之后的SDK版本开发的应用,需适配变更结构体,否则会影响原有业务逻辑。原有二级模块的导出功能也会废弃,需要使用新接口的二级模块到处能力,需要导入新的一级d.ts模块。 - -**关键接口/组件变更** - -新增结构体对原有的API8及之前的结构体进行梳理,将原有API8及之前的结构体全部废弃,新增新的API9结构体,变更前后的对比如下表所示,部分结构体进行了合并,例如moduleInfo.d.ts替换为hapModuleInfo.d.ts,customizeData.d.ts替换为metadata.d.ts。结构体功能上与原结构体保持一致。部分功能有变更或者新增的结构体属性会单独列出。 -| 原结构体(废弃) | 新结构体(新增) | -| ------ | ------ | -| bundle/abilityInfo.d.ts | [bundleManager/abilityInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/AbilityInfo.d.ts) | -| bundle/applicationInfo.d.ts | [bundleManager/applicationInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ApplicationInfo.d.ts) | -| bundle/bundleInfo.d.ts | [bundleManager/bundleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/BundleInfo.d.ts) | -| bundle/bundleInstaller.d.ts | [@ohos.bundle.installer.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.installer.d.ts) | -| bundle/bundleStatusCallback.d.ts | [@ohos.bundle.bundleMonitor.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.bundleMonitor.d.ts) | -| bundle/customizeData.d.ts | [bundleManager/metadata.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/Metadata.d.ts) | -| bundle/dispatchInfo.d.ts | [bundleManager/dispatchInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/DispatchInfo.d.ts) | -| bundle/elementName.d.ts | [bundleManager/elementName.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ElementName.d.ts) | -| bundle/extensionAbilityInfo.d.ts | [bundleManager/extensionAbilityInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ExtensionAbilityInfo.d.ts) | -| bundle/hapModuleInfo.d.ts | [bundleManager/hapModuleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts) | -| bundle/launcherAbilityInfo.d.ts | [bundleManager/launcherAbilityInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/LauncherAbilityInfo.d.ts) | -| bundle/metadata.d.ts | [bundleManager/metadata.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/Metadata.d.ts) | -| bundle/moduleInfo.d.ts | [bundleManager/hapModuleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts) | -| bundle/PermissionDef.d.ts | [bundleManager/permissionDef.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/PermissionDef.d.ts) | -| bundle/remoteAbilityInfo.d.ts | [bundleManager/remoteAbilityInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/RemoteAbilityInfo.d.ts) | -| bundle/shortcutInfo.d.ts | [bundleManager/shortcutInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ShortcutInfo.d.ts) | - -**适配指导**
-1. 使用原有结构体的代码需要修改为新结构体。 -2. 原有二级模块的导出功能也会废弃,可以使用新接口的二级模块到处能力,需要导入新的一级d.ts模块。 - -## cl.bundlemanager.3 包管理查询模块接口变更,@ohos.bundle.d.ts中接口全部废弃,新增@ohos.bundle.bundleManager.d.ts、@ohos.bundle.freeInstall.d.ts和@ohos.bundle.installer.d.ts模块,将原有接口新增或者变更至新d.ts中 - -包管理模块查询接口变更,废弃了@ohos.bundle中API8及之前的全部接口,其中的API9接口变更至@ohos.bundle.bundleManager、@ohos.bundle.freeInstall和@ohos.bundle.installer中,@ohos.bundle.bundleManager中新增了之前废弃的大部分接口,修改为systemapi,并增加了异常处理能力。 - -使用方式的变化:由原来的@ohos.bundle修改为@ohos.bundle.bundleManager、@ohos.bundle.freeInstall和@ohos.bundle.installer模块来使用相关的接口。 - -@ohos.bundle.bundleManager和@ohos.bundle.installer模块系统能力为SystemCapability.BundleManager.BundleFramework.Core,@ohos.bundle.freeInstall模块系统能力为SystemCapability.BundleManager.BundleFramework.FreeInstall。 - -**变更影响**
-对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块和新接口。在@ohos.bundle原有的API9接口,变更到新的@ohos.bundle.bundleManager.d.ts、@ohos.bundle.freeInstall和@ohos.bundle.installer文件中。 - -**关键的接口/组件变更**
-@ohos.bundle.d.ts中涉及到的废弃和变更接口如下表所示。未在表格中列出的表明除了增加异常处理和变更导入模块外,接口名称和入参均未发生变化,直接导入新的@ohos.bundle.bundleManager.d.ts、@ohos.bundle.freeInstall和@ohos.bundle.installer就可使用。在表格中列出的均表示在API9接口上发生变更,标记为无的表示在API9上已废弃。 - -| 原接口(废弃) | 新接口(变更或新增)| systemapi|新文件名| -| ---| ---| --- | --| -| BundleFlag | BundleFlag | 否 | @ohos.bundle.bundleManager.d.ts | -| 无 | ApplicationFlag | 是 | @ohos.bundle.bundleManager.d.ts | -| 无 | AbilityFlag | 是 | @ohos.bundle.bundleManager.d.ts | -| ExtensionFlag | ExtensionAbilityFlag | 是 | @ohos.bundle.bundleManager.d.ts | -| ColorMode | 无 | 否 | 无 | -| GrantStatus | PermissionGrantState | 否 | @ohos.bundle.bundleManager.d.ts | -| AbilityType | AbilityType | 否 | @ohos.bundle.bundleManager.d.ts | -| AbilitySubType | 无 | 否 | 无 | -| DisplayOrientation | DisplayOrientation | 否 | @ohos.bundle.bundleManager.d.ts | -| LaunchMode | LaunchType | 否 | @ohos.bundle.bundleManager.d.ts | -| ExtensionAbilityType | ExtensionAbilityType | 是 | @ohos.bundle.bundleManager.d.ts | -| BundleOptions | 无 | 否 | 无 | -| InstallErrorCode | 无 | 否 | 无 | -| UpgradeFlag | UpgradeFlag | 是 | @ohos.bundle.freeInstall.d.ts | -| SupportWindowMode | SupportWindowMode | 否 | @ohos.bundle.bundleManager.d.ts | -| getBundleInfo | getBundleInfo | 是 | @ohos.bundle.bundleManager.d.ts | -| getBundleInstaller | getBundleInstaller | 是 | @ohos.bundle.installer.d.ts | -| getAbilityInfo | queryAbilityInfo | 是 | @ohos.bundle.bundleManager.d.ts | -| getApplicationInfo | getApplicationInfo | 是 | @ohos.bundle.bundleManager.d.ts | -| queryAbilityByWant | queryAbilityInfo | 是 | @ohos.bundle.bundleManager.d.ts | -| getAllBundleInfo | getAllBundleInfo | 是 | @ohos.bundle.bundleManager.d.ts | -| getAllApplicationInfo | getAllApplicationInfo | 是 | @ohos.bundle.bundleManager.d.ts | -| getNameForUid | getBundleNameByUid | 是 | @ohos.bundle.bundleManager.d.ts | -| getBundleArchiveInfo |getBundleArchiveInfo | 是 | @ohos.bundle.bundleManager.d.ts | -| getLaunchWantForBundle | getLaunchWantForBundle | 是 | @ohos.bundle.bundleManager.d.ts | -| cleanBundleCacheFiles | cleanBundleCacheFiles | 是 | @ohos.bundle.bundleManager.d.ts | -| setApplicationEnabled | setApplicationEnabled | 是 | @ohos.bundle.bundleManager.d.ts | -| setAbilityEnabled | setAbilityEnabled | 是 | @ohos.bundle.bundleManager.d.ts | -| queryExtensionAbilityInfos | queryExtensionAbilityInfo | 是 | @ohos.bundle.bundleManager.d.ts | -| getPermissionDef | getPermissionDef | 是 | @ohos.bundle.bundleManager.d.ts | -| getAbilityLabel | getAbilityLabel | 是 | @ohos.bundle.bundleManager.d.ts | -| getAbilityIcon | getAbilityIcon | 是 | @ohos.bundle.bundleManager.d.ts | -| isAbilityEnabled | isAbilityEnabled | 是 | @ohos.bundle.bundleManager.d.ts | -| isApplicationEnabled | isApplicationEnabled | 是 | @ohos.bundle.bundleManager.d.ts | -| setModuleUpgradeFlag | setHapModuleUpgradeFlag | 是 | @ohos.bundle.freeInstall.d.ts | -| isModuleRemovable | isHapModuleRemovable | 是 | @ohos.bundle.freeInstall.d.ts | -| getBundlePackInfo | getBundlePackInfo | 是 | @ohos.bundle.freeInstall.d.ts | -| getDispatcherVersion | getDispatchInfo | 是 | @ohos.bundle.freeInstall.d.ts | -| getProfileByAbility | getProfileByAbility | 否 | @ohos.bundle.bundleManager.d.ts | -| getProfileByExtensionAbility | getProfileByExtensionAbility | 否 | @ohos.bundle.bundleManager.d.ts | -| setDisposedStatus | setDisposedStatus | 是 | @ohos.bundle.appControl.d.ts | -| getDisposedStatus | getDisposedStatus | 是 | @ohos.bundle.appControl.d.ts | -| 无 | deleteDisposedStatus | 是 | @ohos.bundle.appControl.d.ts | -| getBundleInfoSync | getBundleInfoSync | 是 | @ohos.bundle.bundleManager.d.ts | -| getApplicationInfoSync | getApplicationInfoSync | 是 | @ohos.bundle.bundleManager.d.ts | -|无| getBundleInfoForSelf | 否 | @ohos.bundle.bundleManager.d.ts | - - -**适配指导**
-将原接口替换为API9新增的接口,导入相关的模块。 - -旧的导入模块: -``` -import bundle form '@ohos.bundle' -``` -新的导入模块: -``` -import bundle form '@ohos.bundle.bundleManager' -import freeInstall form '@ohos.bundle.freeInstall' -import installer form '@ohos.bundle.installer' -import appControl form '@ohos.bundle.appControl' -``` - -## cl.bundlemanager.4 BundleInfo结构体变更,包管理原有bundle/bundleInfo.d.ts字段全部废弃变更为bundleManager/bundleInfo.d.ts,涉及字段属性变化。 - -包管理原有bundle/bundleInfo.d.ts字段全部废弃。由老的[bundle/bundleInfo.d.ts]((https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundle/bundleInfo.d.ts))变更为[bundleManager/bundleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/BundleInfo.d.ts),涉及字段属性变化。 - - -**变更影响**
-对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块和新接口。使用二级模块导出BundleInfo时,需要导入@ohos.bundle.bundleManager模块。 - -**关键的接口/组件变更**
- -BundleInfo结构体发生变化的字段内容如下表所示。其余字段在bundle/bundleInfo.d.ts中废弃后,在新的[bundleManager/bundleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/BundleInfo.d.ts)中均有对应值。没有对应字段,则表明该字段已经在API9上废弃。 - -| 已废弃 | API9新增或变更 | 类型 | -| --- | --- | --- | -| type | 无 | string | -| appId | 无 | string | -| 无 |signatureInfo | SignatureInfo | -| uid | 无 | number | 无| -| abilityInfos | 无 | Array\ | -| reqPermissions | 无 | Array | -| compatibleVersion | 无 | number | -| isCompressNativeLibs | 无 | boolean | -| entryModuleName | 无 | string | -| cpuAbi | 无 | string | -| isSilentInstallation | 无 | string | -| entryInstallationFree | 无 | boolean | -| reqPermissionStates | permissionGrantStates | Array\ | -| extensionAbilityInfo | 无 |Array\| -| hapModuleInfos | hapModulesInfo | Array\ | - -API9中新增SignatureInfo结构体,该结构体如下: - -| 属性名 | 类型 | -| ----------- | ------ | -| appId | string | -| fingerprint | string | - - -**适配指导**
-导入包管理查询的模块,使用API9 version的BundleInfo结构体,使用二级模块导出时也需要引入下面模块。 -``` -import bundle form '@ohos.bundle.bundleManager' -``` - -## cl.bundlemanager.5 ApplicationInfo结构体变更,包管理原有bundle/applicationInfo.d.ts字段全部废弃,变更为bundleManager/applicationInfo.d.ts,涉及字段属性变化。 -ApplicationInfo结构体变更,包管理原有bundle/applicationInfo.d.ts字段全部废弃,变更为bundleManager/applicationInfo.d.ts,涉及字段属性变化。 - -**变更影响**
-对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块和新接口。使用二级模块导出ApplicationInfo时,需要导入@ohos.bundle.bundleManager模块。 - -**关键的接口/组件变更**
-ApplicationInfo结构体发生变化的字段内容如下表所示。其余字段在bundle/applicationInfo.d.ts中废弃后,在新的[bundleManager/applicationInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ApplicationInfo.d.ts)中均有对应值。没有对应字段,则表明该字段已经在API9上废弃。 - -| 废弃 | API9新增或变更 | 类型 | -| --- | --- | --- | -| systemApp | 无 | boolean | -| labelId | 无 | string | -| labelIndex | labelId | number | -| iconId | 无 | string | -| iconIndex | iconId | number | -| supportedModes | 无 | number | -| moduleSourceDirs | 无 | Array\ | -| moduleInfos | 无 | Array\ | -| metaData | 无 | Map\> | -| entityType | 无 | string | -| fingerprint | 无 | string | - - -**适配指导**
-导入包管理查询的模块,使用API9 version的ApplicationInfo结构体。 - - -## cl.bundlemanager.6 HapModuleInfo结构体字段变更,包管理原有bundle/hapModuleInfo.d.ts 和 moduleInfo.d.ts字段全部废弃,变更为bundleManager/hapModuleInfo.d.ts,涉及字段属性变化。 - -HapModuleInfo结构体字段变更,包管理原有bundle/hapModuleInfo.d.ts 和 moduleInfo.d.ts字段全部废弃,变更为[bundleManager/hapModuleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts),涉及字段属性变化。 - -**变更影响**
-对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块和新接口。使用二级模块导出HapModuleInfo时,需要导入@ohos.bundle.bundleManager模块。 - -**关键的接口/组件变更**
-HapModuleInfo结构体发生变化的字段内容如下表所示。其余字段在bundle/hapModuleInfo.d.ts中废弃后,在新的bundleManager/hapModuleInfo.d.ts中均有对应值。 -| 废弃 | API9新增或变更 | 类型 | -| --- | --- | --- | -| abilityInfo | abilitiesInfo | Array | -| 无 | moduleSourceDir | string | -| backgroundImg | 无 | string | -| supportedModes | 无 | string | -| reqCapabilities | 无 | Array\ | -| moduleName | 无 | string | -| mainAbilityName | 无 | string | -| extensionAbilityInfo | extensionAbilitiesInfo | Array\ | - -**适配指导**
-导入包管理查询的模块,使用API9 version的HapModuleInfo结构体。 - -## cl.bundlemanager.7 ModuleInfo结构体废弃,使用bundleManager/hapModuleInfo.d.ts中的HapModuleInfo代替。 - -包管理原有bundle/hapModuleInfo.d.ts 和 moduleInfo.d.ts字段全部废弃,变更为[bundleManager/hapModuleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts),涉及字段属性变化。 -ModuleInfo结构体废弃,使用[bundleManager/hapModuleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)中的HapModuleInfo代替。 - -**变更影响**
-对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块和新接口。ModuleInfo被废弃,使用HapModuleInfo代替。 - -**关键的接口/组件变更**
- -ModuleInfo结构体被废弃,使用HapModuleInfo代替。 - -**适配指导**
-使用API9 version的HapModuleInfo结构体。 - -## cl.bundlemanager.8 AbilityInfo结构体字段变更,原bundle/abilityInfo.d.ts全部废弃,变更为bundleManager/abilityInfo.d.ts,涉及到字段属性变化 - -AbilityInfo结构体字段变更,原bundle/abilityInfo.d.ts全部废弃,变更为bundleManager/abilityInfo.d.ts,涉及到字段属性变化 - -**变更影响**
-对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块和新接口。 - -**关键的接口/组件变更**
- -包管理AbilityInfo结构体字段变更如下表所示,未在表格中列出的表明废弃后均在新的AbilityInfo中存在,标记为无的表明该字段已在API9废弃,在新的AbilityInfo中不存在。 - -|废弃 | API9新增或变更 | 类型| -|----| --| --| -| launchMode | launchType | number | -| supportWindowMode | supportWindowModes | Array\ | -| targetAbility | 无 | string | -| backgroundModes | 无 | number | -| formEnabled | 无 | boolean | -| subType | 无 | AbilitySubType | -|deviceCapabilities |无| Array\| -| metaData | 无 | Array\| -| maxWindowRatio | 无 | number | -| minWindowRatio | 无 | number | -| maxWindowWidth | 无 | number | -| minWindowWidth | 无 | number | -| maxWindowHeight | 无 | number | -| minWindowHeight | 无 | number | -| 无| windowSize | WindowSize | - -其中API9新增结构体WindowSize属性如下: - -| 属性名 | 类型 | -| :-------------: | :----: | -| maxWindowRatio | number | -| minWindowRatio | number | -| maxWindowWidth | number | -| minWindowWidth | number | -| maxWindowHeight | number | -| minWindowHeight | number | - -**适配指导**
-使用API9 version的AbilityInfo结构体。 - -## cl.bundlemanager.9 BundleFlag变更,变更为@ohos.bundle.bundleManager中的BundleFlag、ApplicationFlag和AbilityFlag,涉及到接口入参修改。 - -BundleFlag变更,变更为@ohos.bundle.bundleManager中的BundleFlag、ApplicationFlag和AbilityFlag,根据新接口的入参,传入不同类型的flag。 - -**变更影响**
- -BundleFlag变更,变更为@ohos.bundle.bundleManager中的BundleFlag、ApplicationFlag和AbilityFlag,根据新接口的入参描述,传入不同类型的flag。直接使用API Version 9之前的BundleFlag,可能查询失败。 - - -**关键的接口/组件变更**
-原@ohos.bundle中的BundleFlag全部废弃,使用新的@ohos.bundle.bundleManager中的BundleFlag、ApplicationFlag和AbilityFlag代替。 - -API9的BundleFlag 如下表所示: - -| BundleFlag |值 |描述| -|---|---| --| -|GET_BUNDLE_INFO_DEFAULT|0x00000000|获取默认BundleInfo,获取到的BundleInfo不包含signatureInfo, hapModuleInfo, appInfo, reqPermissionDetails和permissionGrantStates| -|GET_BUNDLE_INFO_WITH_APPLICATION| 0x00000001|额外获取appInfos| -|GET_BUNDLE_INFO_WITH_HAP_MODULE|0x00000002|额外获取hapModulesInfo| -|GET_BUNDLE_INFO_WITH_ABILITY|0x00000004|指定在获取hapModulesInfo的信息中是否包含abilitiesInfo,需要和GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用,不能单独使用。| -|GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY|0x00000008|指定在获取hapModulesInfo的信息中是否包含extensionAbilitiesInfo,需要和GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用,不能单独使用。| -|GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION|0x00000010|额外获取reqPermissionDetails和permissionGrantStates| -|GET_BUNDLE_INFO_WITH_METADATA|0x00000020|控制返回的ApplicationInfo, AbilityInfo和ExtensionAbilityInfo中是否包含metadata信息,不能单独使用| -|GET_BUNDLE_INFO_WITH_DISABLE|0x00000040|可获取被禁用application的BundleInfo和获取abilitiesInfo中disabled ability信息| -|GET_BUNDLE_INFO_WITH_SIGNATURE_INFO|0x00000080|额外获取signatureInfo| - -API9的 ApplicationFlag 如下表所示 -: -| ApplicationFlag |值 |描述| -|---|---| --| -|GET_APPLICATION_INFO_DEFAULT|0x00000000|获取默认ApplicationInfo,获取的ApplicationInfo不包含permissions和matedata| -|GET_APPLICATION_INFO_WITH_PERMISSION|0x00000001|额外获取permissions| -|GET_APPLICATION_INFO_WITH_METADATA|0x00000002|额外获取metadata| -|GET_APPLICATION_INFO_WITH_DISABLE|0x00000004|获取disabled的application信息| - - -API9的 AbilityFlag 如下表所示: -| AbilityFlag |值 |描述| -|---|---|---| -|GET_ABILITY_INFO_DEFAULT| 0x00000000|用于获取默认的AbilityInfo信息,不包含permission、metadata和 disabled 的 AbilityInfo| -|GET_ABILITY_INFO_WITH_PERMISSION | 0x00000001|用于获取带有permission信息的AbilityInfo| -|GET_ABILITY_INFO_WITH_APPLICATION | 0x00000002|用于获取带有ApplicationInfo结构体信息的AbilityInfo| -| GET_ABILITY_INFO_WITH_METADATA | 0x00000004|用于获取带有metadata信息的AbilityInfo| -|GET_ABILITY_INFO_WITH_DISABLE | 0x00000008|用于获取所有的AbilityInfo,包含被禁用的Ability| -|GET_ABILITY_INFO_ONLY_SYSTEM_APP | 0x00000010| 用于系统应用获取AbilityInfo| - -**适配指导**
-根据调用的@ohos.bundle.bundleManager.d.ts中的接口,使用不同的flag类型。 - -## cl.bundlemanager.10 默认应用模块ApplicationType枚举值变更 -@ohos.bundle.defaultApp模块,相关接口功能未发生变化,使用方式未发生变化。只有ApplicationType的枚举值有变化。 - -**变更影响**
-相关接口版本为API version 9,对API9之前的应用无影响。API9应用需要适配新枚举值。 - -**关键的接口/组件变更**
-ApplicationType的枚举值变化如下: -| ApplicationType | API9新增或变更 | API8及以前 | -| :-----: | :-------------: | :--------: | -| BROWSER | "Web Browser" | "BROWSER" | -| IMAGE | "Image Gallery" | "IMAGE" | -| AUDIO | "Audio Player" | "AUDIO" | -| VIDEO | "Video Player" | "VIDEO" | -| PDF | "PDF Viewer" | "PDF" | -| WORD | "Word Viewer" | "WORD" | -| EXCEL | "Excel Viewer" | "EXCEL" | -| PPT | "PPT Viewer" | "PPT" | - -**适配指导**
-导入默认应用的模块,调用相关的接口。 -``` -import defaultApp form '@ohos.bundle.defaultAppManager' -``` - -## cl.bundlemanager.11 分布式包管理模块变更,原@ohos.distributedBundle.d.ts接口全部废弃,变更为@ohos.bundle.distributedBundle.d.ts,涉及接口变更。 -API异常错误整改,分布式包管理模块变更,原@ohos.distributedBundle.d.ts接口全部废弃,变更为[@ohos.bundle.distributedBundleManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.distributedBundleManager.d.ts)。涉及接口getRemoteAbilityInfos,变更为getRemoteAbilityInfo。相关结构体RemoteAbilityInfo的二级模块导出功能也需要导入新模块才可以继续使用。 - -**变更影响**
-对API version 9之前的应用无影响。分布式模块和getRemoteAbilityInfos名称变更,会导致原有API version 9应用使用新的sdk编译失败。 - -**关键的接口/组件变更**
-@ohos.distributedBundle.d.ts中接口全部废弃,新增@ohos.bundle.distributedBundle.d.ts,其中部分接口保持与原接口功能一致。新接口全部支持异常处理。接口变更如下: -| 废弃 | API9新增或变更 | systemapi | -|----| ----| -- | -| getRemoteAbilityInfos | getRemoteAbilityInfo | 是| - -**适配指导**
-需要导入新的分布式模块: -``` -import distributedBundle form '@ohos.bundle.distributedBundle' -``` - -## cl.bundlemanager.12 免安装模块和接口变更,从@ohos.bundle.d.ts移到@ohos.bundle.freeInstall.d.ts,涉及模块和接口变更 -API支持异常处理整改,免安装模块变更,从@ohos.bundle.d.ts移到@ohos.bundle.freeInstall.d.ts,涉及模块和接口变更,系统能力为SystemCapability.BundleManager.BundleFramework.FreeInstall。 -1. 原导入的@ohos.bundle模块需要变更为@ohos.bundle.freeInstall。 -2. setModuleUpgradeFlag变更为setHapModuleUpgradeFlag。 -3. isModuleRemovable变更为isHapModuleRemovable。 -4. getDispatcher变更为getDispatchInfo - -**变更影响**
-对API version 9之前的应用无影响,使用API9接口的应用会编译失败。 - -**关键的接口/组件变更**
-免安装相关接口变更如下表所示。未在表中列出的表示接口名称和使用方法未发生变更,仅修改了模块名称。 -|废弃 | API9新增或变更 | systemapi | -|----|----|----| -|setModuleUpgradeFlag|setHapModuleUpgradeFlag| 是 | -|isModuleRemovable|isHapModuleRemovable| 是 | -|getDispatcher|getDispatchInfo| 是 | - -**适配指导**
-使用免安装相关接口,需要导入新的模块,按照接口前后对应关系进行修改。 -``` -import freeInstall from '@ohos.bundle.freeInstall' -``` - -## cl.bundlemanager.13 免安装相关结构体DisPatchInfo、AbilityFormInfo、ModuleDistroInfo和ModuleConfigInfo发生字段变更 -免安装相关结构体DisPatchInfo、AbilityFormInfo、ModuleDistroInfo和ModuleConfigInfo发生字段变更: -1. DispatchInfo中字段dispatchAPI名称修改为[dispatchAPIVersion](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/DispatchInfo.d.ts),属性不变,为string。表示免安装接口的版本信息,含义不变。 -2. AbilityFormInfo结构体字段属性变更,原有字段supportDimensions属性由Array\修改为Array\; -3. AbilityFormInfo结构体字段属性变更,原有字段defaultDimension属性由number修改为string。 -4. ModuleDistroInfo结构体废弃mainAbility字段,移至ModuleConfigInfo结构体中。 -5. ModuleConfigInfo结构体新增mainAbility字段。 - -**变更影响**
-对API version 9之前的应用无影响。结构体名称字段属性变更,会导致原有API9应用使用新的sdk编译失败。 - -**关键的接口/组件变更**
-1. DispatchInfo - -| 废弃 | API9新增或变更 | 属性| -|---|----|---| -| dispatchAPI | dispatchAPIVersion | string | - -2. AbilityFormInfo - -| 字段 | API9属性 | 原属性 | -|---|----|---| -| supportDimensions | Array\ | Array\ | -| defaultDimension | string| number | - -3. ModuleDistroInfo - -| 字段 | API9新增或变更 | 属性 | -|---|----|---| -| mainAbility | 无| string | - -4. MooduleConfigInfo - -| 字段 | API9新增或变更 | 属性 | -|---|----|---| -| 无 | mainAbility| string | - - -**适配指导**
-使用免安装相关接口,需要导入新的模块,按照结构体前后对应关系进行修改。 -``` -import freeInstall from '@ohos.bundle.freeInstall' -``` - -## cl.bundlemanager.14 结构体GrantStatus变更为PermissionGrantState -结构体GrantStatus变更为PermissionGrantState,枚举类型和值不变。 - -**变更影响**
-对API version 9之前的应用无影响。结构体名称字变更,会导致原有API9应用使用新的sdk编译失败。 - -**关键的接口/组件变更**
-表示授权状态的GrantStatus结构体变更为@ohos.bundle.bundleManager.d.ts中的PermissionGrantState。 -| 枚举名 | 枚举值 | -| ---| ---| -| PERMISSION_DENIED | -1 | -| PERMISSION_GRANTED | 0 | - -**适配指导**
-需要导入新的模块,修改结构体名称为PermissionGrantState。 -``` -import bundle form '@ohos.bundle.bundleManager' -``` -## cl.bundlemanager.15 包管理ShortcutInfo结构体字段变更 -包管理ShortcutInfo结构体字段变更,原有bundle/shortcutInfo.d.ts字段全部废弃,变更为[bundleManager/shortcutInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ShortcutInfo.d.ts)。ShortcutInfo和ShortWant结构体全部为systemapi。 - -**变更影响**
-对API version 9之前的应用无影响。结构体名称字段属性变更,会导致原有API9应用使用新的sdk编译失败。 - -**关键的接口/组件变更**
-涉及到ShortcutInfo和ShortcutWant结构体。如果需要使用二级模块导出功能,需要导入新模块@ohos.bundle.launcherBundleManager。 -ShortcutInfo结构体变化如下表,未在表格中列出的表明字段在API9上还存在。 -| 废弃 | API9新增或变更 | 属性 | -| ---| ---| ---| -| disableMessage | 无 | string | -| isStatic | 无 | boolean | -| isHomeShortcut | 无 | boolean | -| isEnabled | 无 | boolean | -| disableMessage | 无 | boolean | - -ShortcutWant结构体如下表,未在表格中列出的表明字段在API9上还存在。 -| 废弃 | API9新增或变更 | 属性 | -| ---| ---| ---| -| targetClass | targetAbility | string | - -**适配指导**
-使用免安装相关接口,需要导入新的模块,按照结构体前后对应关系进行修改。 -``` -import launcherBundleManager form '@ohos.bundle.launcherBundleManager' -``` - -## cl.bundlemanager.16 包管理getBundleInstaller接口变更,从@ohos.bundle.d.ts移至@ohos.bundle.installer.d.ts -包管理getBundleInstaller接口变更,从@ohos.bundle.d.ts移至[@ohos.bundle.installer.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.installer.d.ts) -.,系统能力为SystemCapability.BundleManager.BundleFramework.Core。 - -**变更影响**
-对API version 9之前的应用无影响。使用API9的应用需要适配新模块和新接口。 - -**关键的接口/组件变更**
-1. getBundleInstaller,导入模块由@ohos.bundle变更为@ohos.bundle.installer。 - -**适配指导**
-导入新的包管理安装模块,调用getBundleInstaller -``` -import installer form '@ohos.bundle.installer' -``` - -## cl.bundlemanager.17 包管理安装接口变更,从bundle/bundleInstaller.d.ts移至@ohos.bundle.installer.d.ts -包管理安装接口变更,从bundle/bundleInstaller.d.ts移至[@ohos.bundle.installer.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.installer.d.ts),系统能力为SystemCapability.BundleManager.BundleFramework.Core。 - -**变更影响**
-对API version 9之前的应用无影响。使用API9的应用需要适配新模块和新接口。 - -**关键的接口/组件变更**
-1. install/uninstall/recover接口增加了异常处理能力,接口名称和入参均未发生变化,仅修改了模块名称。 -2. HashParam结构体新增字段 - -| API9新增 | 属性 | -|---|---| -| moduleName | string | -| hashValue | string | - -3. InstallParam结构体变更如下: - -| API9新增 | 属性 | -|---|--| -| userId | number | -| installFlag | number | -| isKeepData | boolean | -| hashParams | Array\ | -| crowdtestDeadline | number | - -4. InstallStatus,结构体已废弃。 - -**适配指导**
-导入新的包管理安装模块,调用getBundleInstaller -``` -import installer form '@ohos.bundle.installer' -``` - -## cl.bundlemanager.18 包管理安装功能变更 -包管理安装规格变更,增加了对应用deviceType配置和设备类型的匹配校验,如果两者匹配失败,则安装失败。 - -**变更影响**
-影响在此前版本已开发的应用,应用需要适配才能在新版本镜像安装成功。 - -**关键的接口/组件变更**
-不涉及 - -**适配指导**
-提供指导,在应用配置文件config.json或者module.json的deviceType配置对应的设备类型。 -``` -{ - "module": { - "name": "entry", - "type": "entry", - // ... - "deviceTypes":[ - // 该示例配置了default和tablet,则支持在default和tablet上进行安装。 - "default", - "tablet" - ], - // ... - } -``` -## cl.bundlemanager.19 包管理innerBundleManger模块接口变更,@ohos.bundle.innerBundleManger.d.ts接口全部废弃,移至@ohos.bundle.launcherBundleManager.d.ts。 -innerBundleManager相关接口功能未发生变化,使用方式有变化。需要导入[@ohos.bundle.launcherBundleManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.launcherBundleManager.d.ts)模块来使用innerBundleManager相关的接口,系统能力为SystemCapability.BundleManager.BundleFramework.Core。 - -**变更影响**
-相关接口版本为API version 9,对api9之前的应用无影响。使用了innerBundleManager接口能力的应用需要适配新的模块和接口。 - -**关键的接口/组件变更**
-以下接口功能和入参未发生变化,增加了API异常处理。使用二级模块导出ShortcutInfo和ShortcutWant时,需要导入新模块@ohos.bundle.launcherBundleManager。on/off接口从@ohos.bundle.innerBundleManger.d.ts中废弃,移至@ohos.bundle.bundleMonitor.d.ts中。 -1. getLauncherAbilityInfos
-2. getAllLauncherAbilityInfos
-3. getShortcutInfos - -**适配指导**
-需要导入新模块@ohos.bundle.launcherBundleManage -``` -import launcherBundleManager form '@ohos.bundle.launcherBundleManage' -``` - -## cl.bundlemanager.20 innerBundleManagr模块变更,on, off接口从@ohos.bundle.innerBundleManager模块移到@ohos.bundle.bundleMonitor.d.ts模块 -innerBundleManager相关接口功能未发生变化,使用方式有变化。需要导入[@ohos.bundle.bundleMonitor.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.bundleMonitor.d.ts)模块来使用innerBundleManager相关的接口,均为systemapi。系统能力为SystemCapability.BundleManager.BundleFramework.Core。 - -**变更影响**
-相关接口版本为API version 9,对API9之前的应用无影响。使用了innerBundleManager接口能力的应用需要适配新的模块和接口。 - -**关键的接口/组件变更**
-on/off变更至@ohos.bundle.bundleMonitor.d.ts,使用接口入参与老接口不同。API9函数原型为: -``` -function on(type: BundleChangedEvent, callback: Callback): void; -function off(type: BundleChangedEvent, callback?: Callback): void; -``` -其中BundleChangedEvent为: -``` -type BundleChangedEvent = 'add' | 'update' | 'remove'; -``` -回调函数BundleChangedInfo为: -``` - interface BundleChangedInfo { - readonly bundleName: string; - readonly userId: number; - } -``` -由调用方获取到BundleChangedInfo后,继续执行相关操作(即老接口中BundleStatusCallback中的add、update和remove等函数)。 - -**适配指导**
-导入bundleMonitor的模块,调用相关接口。 -``` -import bundleMonitor form '@ohos.bundle.bundleMonitor' -``` - -## cl.bundlemanager.21 包管理bundleStatusCallback.d.ts接口全部废弃,移至@ohos.bundle.bundleMonitor.d.ts中。 -包管理bundleStatusCallback.d.ts接口全部废弃,移至[@ohos.bundle.bundleMonitor.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.bundleMonitor.d.ts)中。原有BundleStatusCallback中的add、update和remove全部废弃,变更为BundleChangedEvent,为systemapi。系统能力为SystemCapability.BundleManager.BundleFramework.Core。 - -**变更影响**
-相关接口版本为API version 9,对API9之前的应用无影响。使用了BundleStatusCallback接口能力的应用需要适配新的模块和接口。 - -**关键的接口/组件变更**
. -以下接口全部废弃,在@ohos.bundle.bundleMonitor.d.ts中新增BundleChangedEvent。 -1. add -2. update -3. remove - -**适配指导**
-导入bundleMonitor的模块,调用相关接口。与之前的BundleStatusCallback方式不同,BundleStatusCallback是将add、update和remove方法传入on/off接口,API9的BundleMonitor接口是通过on/off接口将BundleChangedInfo通过回调函数返回出来给调用方使用。 -``` -import bundleMonitor form '@ohos.bundle.bundleMonitor' -``` - -## cl.bundlemanager.22 包管理Zlib模块接口变更,@ohos.zlib.d.ts中接口涉及废弃和变更。 -包管理Zlib模块接口变更,[@ohos.zlib.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.zlib.d.ts)中接口涉及废弃和变更。系统能力为SystemCapability.BundleManager.Zlib。 - -**变更影响**
-相关接口版本为API version 9,对API9之前的应用无影响。使用了API9的应用需要适配新的模块和接口。 - -**关键的接口/组件变更**
-@ohos.zlib.d.ts中涉及到变更的接口如下表所示,新增API9接口使用方法与之前相同,支持API异常处理。 -| 废弃 | API9新增或变更 | systemapi| -|---|----|---| -| zipFile | compressFile | 是 | -| unzipFile | decompressFile | 是 | -| ErrorCode | 无 | 是 | - -**适配指导**
-导入模块未发生变化,直接使用新接口,适配异常处理。 -``` -import zlib form '@ohos.zlib' -``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-account_os_account.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-account_os_account.md deleted file mode 100644 index 216a2b4f3e..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-account_os_account.md +++ /dev/null @@ -1,124 +0,0 @@ -# 帐号子系统ChangeLog - -## cl.account_os_account.1 帐号SystemAPI错误信息返回方式变更 - -已发布的部分帐号SystemAPI使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。从API9开始作以下变更: - -异步接口:通过AsyncCallback或Promise的error对象返回错误信息。 - -同步接口:通过抛出异常的方式返回错误信息。 - -**变更影响** - -基于此前版本开发的应用,需适配变更接口的错误信息返回方式,否则会影响原有业务逻辑。 - -**关键接口/组件变更** - -变更前: - - class UserAuth - - setProperty(request: SetPropertyRequest, callback: AsyncCallback<number>): void; - - setProperty(request: SetPropertyRequest): Promise<number>; - - cancelAuth(contextID: Uint8Array): number; - - class PINAuth - - registerInputer(inputer: Inputer): boolean; - - UserIdentityManager - - cancel(challenge: Uint8Array): number; - -变更后: - - class UserAuth - - setProperty(request: SetPropertyRequest, callback: AsyncCallback<void>): void; - - setProperty(request: SetPropertyRequest): Promise<void>; - - cancelAuth(contextID: Uint8Array): void; - - class PINAuth - - registerInputer(inputer: Inputer): void; - - UserIdentityManager - - cancel(challenge: Uint8Array): void; - -**适配指导** - -异步接口以setProperty为例,示例代码如下: - -``` -import account_osAccount from "@ohos.account.osAccount" -userAuth.setProperty({ - authType: account_osAccount.AuthType.PIN, - key: account_osAccount.SetPropertyType.INIT_ALGORITHM, - setInfo: new Uint8Array([0]) -}, (err) => { - if (err) { - console.log("setProperty failed, error: " + JSON.stringify(err)); - } else { - console.log("setProperty successfully"); - } -}); - -userAuth.setProperty({ - authType: account_osAccount.AuthType.PIN, - key: account_osAccount.SetPropertyType.INIT_ALGORITHM, - setInfo: new Uint8Array([0]) -}).catch((err) => { - if (err) { - console.log("setProperty failed, error: " + JSON.stringify(err)); - } else { - console.log("setProperty successfully"); - } -}); -``` - -同步接口以registerInputer为例,示例代码如下: - -``` -import account_osAccount from "@ohos.account.osAccount" -let pinAuth = new account_osAccount.PINAuth() -let inputer = { - onGetData: (authType, passwordRecipient) => { - let password = new Uint8Array([0]); - passwordRecipient.onSetData(authType, password); - } -} -try { - pinAuth.registerInputer(inputer); -} catch (err) { - console.log("registerInputer failed, error: " + JSON.stringify(err)); -} -``` - -## cl.account_os_account.2 应用帐号鉴权服务ACTION定义变更 - -**变更影响** - -基于此前版本开发的应用,需适配修改应用配置文件(FA模型为config.json或Stage模型为module.json5)中的ACTION才能正常对外提供应用鉴权服务。 - -**关键接口/组件变更** - -涉及的常量: - -@ohos.ability.wantConstant.ACTION_APP_ACCOUNT_AUTH - -变更前: - -ACTION_APP_ACCOUNT_AUTH = "account.appAccount.action.auth" - -变更后: - -ACTION_APP_ACCOUNT_AUTH = "ohos.appAccount.action.auth" - -**适配指导** - -提供应用帐号鉴权服务的三方应用,需要在相关ServiceAbility的配置文件(FA模型为config.json或Stage模型为module.json5)中适配变更后的应用帐号认证ACTION,示例如下: -``` -"abilities": [ - { - "name": "ServiceAbility", - "srcEntrance": "./ets/ServiceAbility/ServiceAbility.ts", - ... - "visible": true, - "skills": { - { - "actions": [ - "ohos.appAccount.action.auth" - ] - } - } - }] -} diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelog-dmsfwk.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelog-dmsfwk.md deleted file mode 100644 index a32202a9ea..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelog-dmsfwk.md +++ /dev/null @@ -1,21 +0,0 @@ -# 分布式调度子系统ChangeLog - -## cl.DistributedManagerService.1 continuationManager接口新增DATASYNC权限校验 - -此前版本continuationManager接口未对调用方进行校验,不符合OpenHarmony的API接口规范。 -已做出以下变更:调用方使用continuationManager前需提前申请"ohos.permission.DISTRIBUTED_DATASYNC"权限。 - -**变更影响** - -基于此前版本开发的应用,需提前申请"ohos.permission.DISTRIBUTED_DATASYNC"权限,否则会影响原有业务逻辑。 - -**关键的接口/组件变更** - -涉及接口 - - - continuationManager.registerContinuation; - - continuationManager.on; - - continuationManager.off; - - continuationManager.unregisterContinuation; - - continuationManager.updateContinuationState; - - continuationManager.startContinuationDeviceManager; diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.2/changelog-x-x.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.2/changelog-x-x.md deleted file mode 100644 index b20dbfc1fc..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.2/changelog-x-x.md +++ /dev/null @@ -1,31 +0,0 @@ -# xxx子系统ChangeLog - -相比最近一个发布版本(包括不限于LTS、Release、Beta、monthly版本)发生了影响契约兼容性(契约兼容:也称语义兼容,指版本演进后,开发者原有程序行为不发生变化)的变更(包括不限于接口名、参数、返回值、所需要的权限、调用顺序、枚举值、配置参数、路径等),则需要在ChangeLog中对变更进行阐述。 - -## cl.subsystemname.x xxx功能变更, 例:DeviceType属性变更、相机权限变更(尽量概括,不要超过15个字) - -每个变更标题前需要附加编号:cl.subsystemname.x。cl为ChangeLog首字母缩写,subsystemname请填写子系统英文标准名称,x表示变更序号(从低到高逐位增加,起始为1)。 -以功能维度对变更点进行概括描述。例如:xxx功能的xxx、xxx等发生了xxx变化,开发者需要根据以下说明对应用进行适配。 -如果有此变更有对应的需求或设计文档,可以在描述中附上对应的设计文档编号。 - -**变更影响** - -是否影响已发布的接口或者接口行为发生变更,影响的是JS接口还是Native接口。 -是否影响在此前版本已开发的应用,即应用是否需要进行适配动才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** - -列举此功能变更涉及的接口/组件变更。 - -**适配指导(可选,不涉及则可以删除)** - -提供指导,帮助开发者针对相关变更进行适配,使应用可以与新版本兼容。 -例: -在xxx文件中将xxx参数修改为xxx。 - -``` -sample code -``` - - - diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.3/changelog-x-x.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.3/changelog-x-x.md deleted file mode 100644 index b20dbfc1fc..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.3/changelog-x-x.md +++ /dev/null @@ -1,31 +0,0 @@ -# xxx子系统ChangeLog - -相比最近一个发布版本(包括不限于LTS、Release、Beta、monthly版本)发生了影响契约兼容性(契约兼容:也称语义兼容,指版本演进后,开发者原有程序行为不发生变化)的变更(包括不限于接口名、参数、返回值、所需要的权限、调用顺序、枚举值、配置参数、路径等),则需要在ChangeLog中对变更进行阐述。 - -## cl.subsystemname.x xxx功能变更, 例:DeviceType属性变更、相机权限变更(尽量概括,不要超过15个字) - -每个变更标题前需要附加编号:cl.subsystemname.x。cl为ChangeLog首字母缩写,subsystemname请填写子系统英文标准名称,x表示变更序号(从低到高逐位增加,起始为1)。 -以功能维度对变更点进行概括描述。例如:xxx功能的xxx、xxx等发生了xxx变化,开发者需要根据以下说明对应用进行适配。 -如果有此变更有对应的需求或设计文档,可以在描述中附上对应的设计文档编号。 - -**变更影响** - -是否影响已发布的接口或者接口行为发生变更,影响的是JS接口还是Native接口。 -是否影响在此前版本已开发的应用,即应用是否需要进行适配动才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** - -列举此功能变更涉及的接口/组件变更。 - -**适配指导(可选,不涉及则可以删除)** - -提供指导,帮助开发者针对相关变更进行适配,使应用可以与新版本兼容。 -例: -在xxx文件中将xxx参数修改为xxx。 - -``` -sample code -``` - - - diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.3/changelogs-useriam.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.3/changelogs-useriam.md deleted file mode 100644 index e781172a33..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.3/changelogs-useriam.md +++ /dev/null @@ -1,39 +0,0 @@ -# 用户IAM子系统Changelog - -## cl.useriam.1 API9 GetVesion接口删除 - -为优化用户IAM接口,从当前版本开始做如下变更: - -用户IAM删除GetVersion(API 9)接口。 - -**变更影响** - -对用户IAM GetVersion(API 9)接口的使用有影响,需删除对此接口的调用,否则会调用失败。 - -**关键接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| ---------------------- | ------------------- | ------------------------- | ------------------------ | -| ohos.userIAM.userAuth | function | getVersion() : number | 删除 | - -**适配指导** - -需删除对用户IAM GetVersion(API 9)接口的调用。 - -## cl.useriam.2 API8 GetVesion接口返回值变更 - -为统一用户IAM GetVersion(API 8)接口的返回值。从当前版本开始做如下变更: - -用户IAM GetVersion(API 8)接口的返回值由0变更为1。 - -**变更影响** - -对用户IAM GetVersion(API 8)接口的使用有影响,如应用校验了此接口的返回值,修改后校验不通过。 - -**关键接口/组件变更** - -用户IAM GetVersion(API 8)接口的返回值由0变更为1。 - -**适配指导** - -此接口已废弃,需删除对用户IAM GetVersion(API 8)接口的使用。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.1.1/changelogs-account_os_account.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.1.1/changelogs-account_os_account.md deleted file mode 100644 index bf26a15f89..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.1.1/changelogs-account_os_account.md +++ /dev/null @@ -1,20 +0,0 @@ -# 帐号子系统ChangeLog - -## cl.account_os_account.1 分布式帐号昵称和头像规格扩大 - -已有分布式帐号的昵称长度和头像大小的规格过小,无法满足其他昵称较长、头像较大的使用场景。 - -因此,将分布式帐号昵称长度和头像大小的规格扩大。 - -**变更影响** - -该接口变更前向兼容,基于此前版本开发的应用可按照最新规格使用该接口,原有逻辑不受影响。 - -**关键接口/组件变更** - -变更前: - - 昵称长度限制为20个字符,头像大小限制为3M - -变更后: - - 昵称长度限制为1024个字符,头像大小限制为10M - diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.1.5/changelogs-geoLocationManager.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.1.5/changelogs-geoLocationManager.md deleted file mode 100644 index f1e652c43f..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.1.5/changelogs-geoLocationManager.md +++ /dev/null @@ -1,18 +0,0 @@ -# 位置服务子系统ChangeLog - -## cl.location.1 删除API9接口geoLocationManager.requestEnableLocation - -在位置开关关闭的场景下,应用可以调用geoLocationManager.requestEnableLocation接口,以请求用户开启位置开关;实际该接口使用较少,并且该接口用户体验不太好,并没有告诉用户该应用在什么场景下使用位置信息。 - -因此变更为由应用本身弹框请求用户跳转到settings开启位置开关,并且在弹框上写清楚会在什么场景下使用位置信息,这样用户体验更好。 - -**变更影响** - -在API9上应用无法使用geoLocationManager.requestEnableLocation请求用户开启位置开关,需要应用自己实现弹框,请求用户开启位置开关。 - -**关键的接口/组件变更** - -| 类名 | 接口类型 | 接口声明 | 变更类型 | -| -- | -- | -- | -- | -|geoLocationManager| method | function requestEnableLocation(callback: AsyncCallback<boolean>): void; | 该接口从API9中删除 | -|geoLocationManager| method | function requestEnableLocation(): Promise<boolean>; | 该接口从API9中删除 | diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.1.5/changelogs-wifiManager.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.1.5/changelogs-wifiManager.md deleted file mode 100644 index e24ff589dd..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.1.5/changelogs-wifiManager.md +++ /dev/null @@ -1,62 +0,0 @@ -# 基础通信子系统WiFi ChangeLog - -## cl.location.1 位置服务权限变更 - -从API9开始,增加ohos.permission.APPROXIMATELY_LOCATION,表示模糊位置权限。 - -如果应用开发者使用的API版本大于等于9,则需要同时申请ohos.permission.LOCATION和ohos.permission.APPROXIMATELY_LOCATION,单独申请ohos.permission.LOCATION会失败。 - -**变更影响** - -如果是存量应用(使用的API版本小于9),则无影响。如果使用的API版本大于等于9,位置服务权限申请方式有变更,详情如下: - -应用在使用系统能力前,需要检查是否已经获取用户授权访问设备位置信息。如未获得授权,可以向用户申请需要的位置权限,申请方式请参考下文。 - -系统提供的定位权限有: - -- ohos.permission.LOCATION - -- ohos.permission.APPROXIMATELY_LOCATION - -- ohos.permission.LOCATION_IN_BACKGROUND - -访问设备的位置信息,必须申请权限,并且获得用户授权。 - -API9之前的版本,申请ohos.permission.LOCATION即可。 - -API9及之后的版本,需要申请ohos.permission.APPROXIMATELY_LOCATION或者同时申请ohos.permission.APPROXIMATELY_LOCATION和ohos.permission.LOCATION;无法单独申请ohos.permission.LOCATION。 - -| 使用的API版本 | 申请位置权限 | 申请结果 | 位置的精确度 | -| -------- | -------- | -------- | -------- | -| 小于9 | ohos.permission.LOCATION | 成功 | 获取到精准位置,精准度在米级别。 | -| 大于等于9 | ohos.permission.LOCATION | 失败 | 无法获取位置。 | -| 大于等于9 | ohos.permission.APPROXIMATELY_LOCATION | 成功 | 获取到模糊位置,精确度为5公里。 | -| 大于等于9 | ohos.permission.APPROXIMATELY_LOCATION和ohos.permission.LOCATION | 成功 | 获取到精准位置,精准度在米级别。 | - -如果应用在后台运行时也需要访问设备位置,除需要将应用声明为允许后台运行外,还必须申请ohos.permission.LOCATION_IN_BACKGROUND权限,这样应用在切入后台之后,系统可以继续上报位置信息。 - -开发者可以在应用配置文件中声明所需要的权限,具体可参考[授权申请指导](../../../application-dev/security/accesstoken-guidelines.md)。 - -**关键的接口/组件变更** - -| 类名 | 接口类型 | 接口声明 | 变更类型 | -| -- | -- | -- | -- | -|wifiManager| method | function scan(): void; | 权限变更为ohos.permission.SET_WIFI_INFO and ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION | -|wifiManager| method | function getScanResults(): Promise<Array<WifiScanInfo>>; | 权限变更为ohos.permission.GET_WIFI_INFO and (ohos.permission.GET_WIFI_PEERS_MAC or (ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION)) | -|wifiManager| method | function getScanResults(callback: AsyncCallback<Array<WifiScanInfo>>): void; | 权限变更为ohos.permission.GET_WIFI_INFO and (ohos.permission.GET_WIFI_PEERS_MAC or (ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION)) | -|wifiManager| method | function getScanResultsSync(): Array<WifiScanInfo>; | 权限变更为ohos.permission.GET_WIFI_INFO and (ohos.permission.GET_WIFI_PEERS_MAC or (ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION)) | -|wifiManager| method | function getCandidateConfigs(): Array<WifiDeviceConfig>; | 权限变更为ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION | -|wifiManager| method | function getDeviceConfigs(): Array<WifiDeviceConfig>; | 权限变更为ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION and ohos.permission.GET_WIFI_CONFIG | -|wifiManager| method | function getStations(): Array<StationInfo>; | 权限变更为ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION and ohos.permission.MANAGE_WIFI_HOTSPOT | -|wifiManager| method | function getCurrentGroup(): Promise<WifiP2pGroupInfo>; | 权限变更为ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION | -|wifiManager| method | function getCurrentGroup(callback: AsyncCallback<WifiP2pGroupInfo>): void; | 权限变更为ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION | -|wifiManager| method | function getP2pPeerDevices(): Promise<WifiP2pDevice[]>; | 权限变更为ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION | -|wifiManager| method | function getP2pPeerDevices(callback: AsyncCallback<WifiP2pDevice[]>): void; | 权限变更为ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION | -|wifiManager| method | function p2pConnect(config: WifiP2PConfig): void; | 权限变更为ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION | -|wifiManager| method | function startDiscoverDevices(): void; | 权限变更为ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION | -|wifiManager| method | function getP2pGroups(): Promise<Array<WifiP2pGroupInfo>>; | 权限变更为ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION | -|wifiManager| method | function getP2pGroups(callback: AsyncCallback<Array<WifiP2pGroupInfo>>): void; | 权限变更为ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION | -|wifiManager| method | function on(type: "p2pDeviceChange", callback: Callback<WifiP2pDevice>): void; | 权限变更为ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION | -|wifiManager| method | function off(type: "p2pDeviceChange", callback?: Callback<WifiP2pDevice>): void; | 权限变更为ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION | -|wifiManager| method | function on(type: "p2pPeerDeviceChange", callback: Callback<WifiP2pDevice[]>): void; | 权限变更为ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION | -|wifiManager| method | function off(type: "p2pPeerDeviceChange", callback?: Callback<WifiP2pDevice[]>): void; | 权限变更为ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION | \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelog-web.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelog-web.md deleted file mode 100644 index fa3e63f30c..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelog-web.md +++ /dev/null @@ -1,65 +0,0 @@ -# web子系统ChangeLog - -OpenHarmony 4.0.2.1 版本相较于OpenHarmony 之前的版本,web的API变更如下。 - -## cl.web.1 postMessageEvent参数类型变更 - -该接口postMessageEvent原先仅支持string类型,从4.0.2.1版本开始新增支持ArrayBuffer类型。 - -**变更影响** - -该接口变更前向兼容,基于此前版本开发的应用可继续使用接口,原有功能不受影响。 - -**关键的接口/组件变更** - -- 涉及接口 - - postMessageEvent(message: string): void - -- 变更前: - - ```ts - postMessageEvent(message: string): void - ``` - -- 变更后: - - ```ts - type WebMessage = ArrayBuffer | string - postMessageEvent(message: WebMessage): void - ``` - -**适配指导** - -该接口变更前向兼容,基于此前版本开发的应用可继续使用接口,原有功能不受影响。 - -## cl.web.2 onMessageEvent参数类型变更 - -该接口onMessageEvent原先仅支持string类型,从4.0.2.1版本开始新增支持ArrayBuffer类型。 - -**变更影响** - -该接口变更前向兼容,基于此前版本开发的应用可继续使用接口,增加相应的逻辑处理,原有功能不受影响。 - -**关键的接口/组件变更** - -- 涉及接口 - - onMessageEvent(callback: (result: string) => void): void - -- 变更前: - - ```ts - onMessageEvent(callback: (result: string) => void): void - ``` - -- 变更后: - - ```ts - type WebMessage = ArrayBuffer | string - onMessageEvent(callback: (result: WebMessage) => void): void - ``` - -**适配指导** - -该接口变更前向兼容,基于此前版本开发的应用可继续使用接口,增加相应的逻辑处理,原有功能不受影响。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-ability.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-ability.md deleted file mode 100644 index 5dba4b6de3..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-ability.md +++ /dev/null @@ -1,140 +0,0 @@ -# 元能力子系统ChangeLog - -## cl.ability.1 SystemAPI使用规则变更 - -目前元能力提供的system-api在调用时未做系统应用校验,三方应用使用Full版本的SDK就可以使用这些system-api,存在安全隐患,因此在OpenHarmony 4.0.2.1版本开始增加应用身份校验。 - -**变更影响** - -只有系统应用允许使用system-api,三方应用使用system-api将返回202错误,返回202错误的方式有两种:1.抛异常;2.异步回调 - -**关键接口/组件变更** - -system-api列表如下所示。 - -| 模块名 | 方法 | 返回错误码方式 | -| ------------------------------------------ | --------------------------------------------------------------------------------- | -------------- | -| @ohos.app.ability.abilityManager.d.ts | updateConfiguration(config: Configuration, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.ability.abilityManager.d.ts | updateConfiguration(config: Configuration): Promise | 异步回调 | -| @ohos.app.ability.abilityManager.d.ts | getAbilityRunningInfos(): Promise> | 异步回调 | -| @ohos.app.ability.abilityManager.d.ts | getAbilityRunningInfos(callback: AsyncCallback>): void | 异步回调 | -| @ohos.app.ability.abilityManager.d.ts | getExtensionRunningInfos(upperLimit: number): Promise> | 异步回调 | -| @ohos.app.ability.abilityManager.d.ts | getExtensionRunningInfos(upperLimit: number, callback: AsyncCallback>): void | 异步回调 | -| @ohos.app.ability.abilityManager.d.ts | getTopAbility(): Promise | 抛异常 | -| @ohos.app.ability.abilityManager.d.ts | getTopAbility(callback: AsyncCallback): void | 抛异常 | -| @ohos.app.ability.appManager.d.ts | on(type: "applicationState", observer: ApplicationStateObserver): number | 异步回调 | -| @ohos.app.ability.appManager.d.ts | on(type: "applicationState", observer: ApplicationStateObserver, bundleNameList: Array): number | 异步回调 | -| @ohos.app.ability.appManager.d.ts | off(type: "applicationState", observerId: number, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.ability.appManager.d.ts | off(type: "applicationState", observerId: number): Promise | 异步回调 | -| @ohos.app.ability.appManager.d.ts | getForegroundApplications(callback: AsyncCallback>): void | 异步回调 | -| @ohos.app.ability.appManager.d.ts | getForegroundApplications(): Promise> | 异步回调 | -| @ohos.app.ability.appManager.d.ts | killProcessWithAccount(bundleName: string, accountId: number): Promise | 异步回调 | -| @ohos.app.ability.appManager.d.ts | killProcessWithAccount(bundleName: string, accountId: number, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.ability.appManager.d.ts | killProcessesByBundleName(bundleName: string): Promise | 异步回调 | -| @ohos.app.ability.appManager.d.ts | killProcessesByBundleName(bundleName: string, callback: AsyncCallback) | 异步回调 | -| @ohos.app.ability.appManager.d.ts | clearUpApplicationData(bundleName: string): Promise | 异步回调 | -| @ohos.app.ability.appManager.d.ts | clearUpApplicationData(bundleName: string, callback: AsyncCallback) | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | on(type: "mission", listener: MissionListener): number | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | off(type: "mission", listenerId: number, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | off(type: "mission", listenerId: number): Promise | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | getMissionInfo(deviceId: string, missionId: number, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | getMissionInfo(deviceId: string, missionId: number): Promise | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | getMissionInfos(deviceId: string, numMax: number, callback: AsyncCallback>): void | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | getMissionInfos(deviceId: string, numMax: number): Promise> | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | getMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | getMissionSnapShot(deviceId: string, missionId: number): Promise | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | getLowResolutionMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | getLowResolutionMissionSnapShot(deviceId: string, missionId: number): Promise | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | lockMission(missionId: number, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | lockMission(missionId: number): Promise | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | unlockMission(missionId: number, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | unlockMission(missionId: number): Promise | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | clearMission(missionId: number, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | clearMission(missionId: number): Promise | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | clearAllMissions(callback: AsyncCallback): void | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | clearAllMissions(): Promise | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | moveMissionToFront(missionId: number, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | moveMissionToFront(missionId: number, options: StartOptions, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.ability.missionManager.d.ts | moveMissionToFront(missionId: number, options?: StartOptions): Promise | 异步回调 | -| @ohos.app.ability.quickFixManager.d.ts | applyQuickFix(hapModuleQuickFixFiles: Array, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.ability.quickFixManager.d.ts | applyQuickFix(hapModuleQuickFixFiles: Array): Promise | 异步回调 | -| @ohos.app.ability.quickFixManager.d.ts | getApplicationQuickFixInfo(bundleName: string, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.ability.quickFixManager.d.ts | getApplicationQuickFixInfo(bundleName: string): Promise | 异步回调 | -| @ohos.app.ability.wantAgent.d.ts | getWant(agent: WantAgent, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.ability.wantAgent.d.ts | getWant(agent: WantAgent): Promise | 异步回调 | -| @ohos.app.form.formHost.d.ts | deleteForm(formId: string, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | deleteForm(formId: string): Promise | 异步回调 | -| @ohos.app.form.formHost.d.ts | releaseForm(formId: string, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | releaseForm(formId: string, isReleaseCache: boolean, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | releaseForm(formId: string, isReleaseCache?: boolean): Promise | 异步回调 | -| @ohos.app.form.formHost.d.ts | requestForm(formId: string, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | requestForm(formId: string): Promise | 异步回调 | -| @ohos.app.form.formHost.d.ts | castToNormalForm(formId: string, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | castToNormalForm(formId: string): Promise | 异步回调 | -| @ohos.app.form.formHost.d.ts | notifyVisibleForms(formIds: Array, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | notifyVisibleForms(formIds: Array): Promise | 异步回调 | -| @ohos.app.form.formHost.d.ts | notifyInvisibleForms(formIds: Array, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | notifyInvisibleForms(formIds: Array): Promise | 异步回调 | -| @ohos.app.form.formHost.d.ts | enableFormsUpdate(formIds: Array, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | enableFormsUpdate(formIds: Array): Promise | 异步回调 | -| @ohos.app.form.formHost.d.ts | disableFormsUpdate(formIds: Array, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | disableFormsUpdate(formIds: Array): Promise | 异步回调 | -| @ohos.app.form.formHost.d.ts | isSystemReady(callback: AsyncCallback): void | 抛异常 | -| @ohos.app.form.formHost.d.ts | isSystemReady(): Promise | 抛异常 | -| @ohos.app.form.formHost.d.ts | getAllFormsInfo(callback: AsyncCallback>): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | getAllFormsInfo(): Promise> | 异步回调 | -| @ohos.app.form.formHost.d.ts | getFormsInfo(bundleName: string, callback: AsyncCallback>): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | getFormsInfo(bundleName: string, moduleName: string, callback: AsyncCallback>): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | getFormsInfo(bundleName: string, moduleName?: string): Promise> | 异步回调 | -| @ohos.app.form.formHost.d.ts | deleteInvalidForms(formIds: Array, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | deleteInvalidForms(formIds: Array): Promise | 异步回调 | -| @ohos.app.form.formHost.d.ts | acquireFormState(want: Want, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | acquireFormState(want: Want): Promise | 异步回调 | -| @ohos.app.form.formHost.d.ts | on(type: "formUninstall", callback: Callback): void | 抛异常 | -| @ohos.app.form.formHost.d.ts | off(type: "formUninstall", callback?: Callback): void | 抛异常 | -| @ohos.app.form.formHost.d.ts | notifyFormsVisible(formIds: Array, isVisible: boolean, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | notifyFormsVisible(formIds: Array, isVisible: boolean): Promise | 异步回调 | -| @ohos.app.form.formHost.d.ts | notifyFormsEnableUpdate(formIds: Array, isEnableUpdate: boolean, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | notifyFormsEnableUpdate(formIds: Array, isEnableUpdate: boolean): Promise | 异步回调 | -| @ohos.app.form.formHost.d.ts | shareForm(formId: string, deviceId: string, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | shareForm(formId: string, deviceId: string): Promise | 异步回调 | -| @ohos.app.form.formHost.d.ts | notifyFormsPrivacyProtected(formIds: Array, isProtected: boolean, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formHost.d.ts | notifyFormsPrivacyProtected(formIds: Array, isProtected: boolean): Promise | 异步回调 | -| @ohos.app.form.formProvider.d.ts | requestPublishForm(want: Want, formBindingData: formBindingData.FormBindingData, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formProvider.d.ts | requestPublishForm(want: Want, callback: AsyncCallback): void | 异步回调 | -| @ohos.app.form.formProvider.d.ts | requestPublishForm(want: Want, formBindingData?: formBindingData.FormBindingData): Promise | 异步回调 | -| @ohos.app.form.formProvider.d.ts | isRequestPublishFormSupported(callback: AsyncCallback): void | 抛异常 | -| @ohos.app.form.formProvider.d.ts | isRequestPublishFormSupported(): Promise | 抛异常 | -| UIAbilityContext.d.ts | startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback): void | 异步回调 | -| UIAbilityContext.d.ts | startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback): void | 异步回调 | -| UIAbilityContext.d.ts | startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise | 异步回调 | -| UIAbilityContext.d.ts | startAbilityForResultWithAccount(want: Want, accountId: number, callback: AsyncCallback): void | 抛异常 | -| UIAbilityContext.d.ts | startAbilityForResultWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback): void | 抛异常 | -| UIAbilityContext.d.ts | startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartOptions): Promise | 抛异常 | -| UIAbilityContext.d.ts | startServiceExtensionAbility(want: Want, callback: AsyncCallback): void | 异步回调 | -| UIAbilityContext.d.ts | startServiceExtensionAbility(want: Want): Promise | 异步回调 | -| UIAbilityContext.d.ts | startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback): void | 异步回调 | -| UIAbilityContext.d.ts | startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise | 异步回调 | -| UIAbilityContext.d.ts | stopServiceExtensionAbility(want: Want, callback: AsyncCallback): void | 异步回调 | -| UIAbilityContext.d.ts | stopServiceExtensionAbility(want: Want): Promise | 异步回调 | -| UIAbilityContext.d.ts | stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback): void | 异步回调 | -| UIAbilityContext.d.ts | stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise | 异步回调 | -| UIAbilityContext.d.ts | connectServiceExtensionAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number | 异步回调 | -| UIAbilityContext.d.ts | setMissionIcon(icon: image.PixelMap, callback: AsyncCallback): void | 异步回调 | -| UIAbilityContext.d.ts | setMissionIcon(icon: image.PixelMap): Promise | 异步回调 | -| ServiceExtensionContext.d.ts | startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback): void | 异步回调 | -| ServiceExtensionContext.d.ts | startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback): void | 异步回调 | -| ServiceExtensionContext.d.ts | startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise | 异步回调 | -| ServiceExtensionContext.d.ts | startServiceExtensionAbility(want: Want, callback: AsyncCallback): void | 异步回调 | -| ServiceExtensionContext.d.ts | startServiceExtensionAbility(want: Want): Promise | 异步回调 | -| ServiceExtensionContext.d.ts | startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback): void | 异步回调 | -| ServiceExtensionContext.d.ts | startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise | 异步回调 | -| ServiceExtensionContext.d.ts | stopServiceExtensionAbility(want: Want, callback: AsyncCallback): void | 异步回调 | -| ServiceExtensionContext.d.ts | stopServiceExtensionAbility(want: Want): Promise | 异步回调 | -| ServiceExtensionContext.d.ts | stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback): void | 异步回调 | -| ServiceExtensionContext.d.ts | stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise | 异步回调 | -| ServiceExtensionContext.d.ts | connectServiceExtensionAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number | 异步回调 | -| Context.d.ts | createBundleContext(bundleName: string): Context | 抛异常 | -| Context.d.ts | createModuleContext(bundleName: string, moduleName: string): Context | 抛异常 | -| FormExtensionContext.d.ts | startAbility(want: Want, callback: AsyncCallback): void | 异步回调 | -| FormExtensionContext.d.ts | startAbility(want: Want): Promise | 异步回调 | diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-bluetooth.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-bluetooth.md deleted file mode 100644 index d90c795ae5..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-bluetooth.md +++ /dev/null @@ -1,173 +0,0 @@ -# 蓝牙服务子系统ChangeLog - -## cl.bluetooth.1 接口迁移到新增的@ohos.bluetoothManager.d.ts - -@ohos.bluetooth.d.ts接口不支持抛出错误码,而API9以及SystemAPI都需要支持错误码抛出,为了支持该功能,把@ohos.bluetooth.d.ts中所有接口,迁移到新增的@ohos.bluetoothManager.d.ts中,并增加错误码描述。 - -后续需要import @ohos.bluetoothManager才能使用蓝牙服务的接口: - - ```ts - import bluetoothManager from '@ohos.bluetoothManager'; - ``` - - -**变更影响** - -对API9以及SystemAPI接口的使用有影响,需要import @ohos.bluetoothManager来使用抛错误码的接口: - - ```ts - import bluetoothManager from '@ohos.bluetoothManager'; - ``` - -**关键的接口/组件变更** - -| 类名 | 旧接口 | 新接口 | 变更类型 | -| -- | -- | -- | -- | -| bluetooth | function getState(): BluetoothState | function getState(): BluetoothState | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | method | function getBtConnectionState(): ProfileConnectionState; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function pairDevice(deviceId: string): boolean | function pairDevice(deviceId: string): void | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| bluetooth | function cancelPairedDevice(deviceId: string): boolean | function cancelPairedDevice(deviceId: string): void | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| bluetooth | function getRemoteDeviceName(deviceId: string): string | function getRemoteDeviceName(deviceId: string): string| API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function getRemoteDeviceClass(deviceId: string): DeviceClass | function getRemoteDeviceClass(deviceId: string): DeviceClass | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function enableBluetooth(): boolean | function enableBluetooth(): void | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| bluetooth | function disableBluetooth(): boolean | function disableBluetooth(): void | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| bluetooth | function getLocalName(): string | function getLocalName(): string | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function getPairedDevices(): Array<string>; | function getPairedDevices(): Array<string>; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function getProfileConnState(profileId: ProfileId): ProfileConnectionState | function getProfileConnectionState(profileId: ProfileId): ProfileConnectionState | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口名修改为getProfileConnectionState | -| bluetooth | function setDevicePairingConfirmation(device: string, accept: boolean): boolean | function setDevicePairingConfirmation(device: string, accept: boolean): void | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| bluetooth | function setLocalName(name: string): boolean; | function setLocalName(name: string): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| bluetooth | function setBluetoothScanMode(mode: ScanMode, duration: number): boolean | function setBluetoothScanMode(mode: ScanMode, duration: number): void | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| bluetooth | function getBluetoothScanMode(): ScanMod | function getBluetoothScanMode(): ScanMode | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function startBluetoothDiscovery(): boolean | function startBluetoothDiscovery(): void | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,新加权限ohos.permission.APPROXIMATELY_LOCATION,接口返回值改为void | -| bluetooth | function stopBluetoothDiscovery(): boolean; | function stopBluetoothDiscovery(): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| bluetooth | function on(type: "bluetoothDeviceFind", callback: Callback<Array<string>>): void; | function on(type: "bluetoothDeviceFind", callback: Callback<Array<string>>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function off(type: "bluetoothDeviceFind", callback?: Callback<Array<string>>): void; | function off(type: "bluetoothDeviceFind", callback?: Callback<Array<string>>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function on(type: "bondStateChange", callback: Callback<BondStateParam>): void; | function on(type: "bondStateChange", callback: Callbackk<BondStateParam>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function off(type: "bondStateChange", callback?: Callback<BondStateParam>): void; | function off(type: "bondStateChange", callback?: Callback<BondStateParam>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function on(type: "pinRequired", callback: Callback<PinRequiredParam>): void; | function on(type: "pinRequired", callback: Callback<PinRequiredParam>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function off(type: "pinRequired", callback?: Callback<PinRequiredParam>): void; | function off(type: "pinRequired", callback?: Callback<PinRequiredParam>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function on(type: "stateChange", callback: Callback<BluetoothState>): void; | function on(type: "stateChange", callback: Callback<BluetoothState>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function off(type: "stateChange", callback?: Callback<BluetoothState>): void; | function off(type: "stateChange", callback?: Callback<BluetoothState>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function sppListen(name: string, option: SppOption, callback: AsyncCallback<number>): void; | function sppListen(name: string, option: SppOption, callback: AsyncCallback<number>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function sppAccept(serverSocket: number, callback: AsyncCallback<number>): void; | function sppAccept(serverSocket: number, callback: AsyncCallback<number>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function sppConnect(device: string, option: SppOption, callback: AsyncCallback<number>): void; | function sppConnect(device: string, option: SppOption, callback: AsyncCallback<number>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function sppCloseServerSocket(socket: number): void; | function sppCloseServerSocket(socket: number): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function sppCloseClientSocket(socket: number): void; | function sppCloseClientSocket(socket: number): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function sppWrite(clientSocket: number, data: ArrayBuffer): boolean; | function sppWrite(clientSocket: number, data: ArrayBuffer): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| bluetooth | function on(type: "sppRead", clientSocket: number, callback: Callback<ArrayBuffer>): void; | function on(type: "sppRead", clientSocket: number, callback: Callback<ArrayBuffer>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts。 | -| bluetooth | function off(type: "sppRead", clientSocket: number, callback?: Callback<ArrayBuffer>): void; | function off(type: "sppRead", clientSocket: number, callback?: Callback<ArrayBuffer>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | function getProfile(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile; | function getProfileInstance(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile | HidHostProfile | PanProfile; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口名修改为getProfileInstance | -| bluetooth | function getProfileInst(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile | HidHostProfile | PanProfile; | function getProfileInstance(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile | HidHostProfile | PanProfile; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口名修改为getProfileInstance | -| BaseProfile | getConnectionDevices(): Array<string>; | getConnectionDevices(): Array<string>; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| BaseProfile | getDeviceState(device: string): ProfileConnectionState; | getDeviceState(device: string): ProfileConnectionState; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| A2dpSourceProfile | connect(device: string): boolean; | connect(device: string): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| A2dpSourceProfile | disconnect(device: string): boolean; | disconnect(device: string): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| A2dpSourceProfile | on(type: "connectionStateChange", callback: Callback<StateChangeParam>): void; | on(type: "connectionStateChange", callback: Callback<StateChangeParam>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| A2dpSourceProfile | off(type: "connectionStateChange", callback?: Callback<StateChangeParam>): void; | off(type: "connectionStateChange", callback?: Callback<StateChangeParam>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| A2dpSourceProfile | getPlayingState(device: string): PlayingState; | getPlayingState(device: string): PlayingState; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| HandsFreeAudioGatewayProfile | connect(device: string): boolean; | connect(device: string): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| HandsFreeAudioGatewayProfile | disconnect(device: string): boolean; | disconnect(device: string): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts ,接口返回值改为void | -| HandsFreeAudioGatewayProfile | on(type: "connectionStateChange", callback: Callback<StateChangeParam>): void; | on(type: "connectionStateChange", callback: Callback<StateChangeParam>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| HandsFreeAudioGatewayProfile | off(type: "connectionStateChange", callback?: Callback<StateChangeParam>): void; | off(type: "connectionStateChange", callback?: Callback<StateChangeParam>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| HidHostProfile | connect(device: string): boolean; | connect(device: string): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| HidHostProfile | disconnect(device: string): boolean; | disconnect(device: string): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| HidHostProfile | on(type: "connectionStateChange", callback: Callback<StateChangeParam>): void; | on(type: "connectionStateChange", callback: Callback<StateChangeParam>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| HidHostProfile | off(type: "connectionStateChange", callback?: Callback<StateChangeParam>): void; | off(type: "connectionStateChange", callback?: Callback<StateChangeParam>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| PanProfile | disconnect(device: string): boolean; | disconnect(device: string): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| PanProfile | on(type: "connectionStateChange", callback: Callback<StateChangeParam>): void; | on(type: "connectionStateChange", callback: Callback<StateChangeParam>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| PanProfile | off(type: "connectionStateChange", callback?: Callback<StateChangeParam>): void; | off(type: "connectionStateChange", callback?: Callback<StateChangeParam>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| PanProfile | setTethering(enable: boolean): void; | setTethering(enable: boolean): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| PanProfile | isTetheringOn(): boolean; | isTetheringOn(): boolean; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| BLE | function createGattServer(): GattServer; | function createGattServer(): GattServer; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| BLE | function createGattClientDevice(deviceId: string): GattClientDevice; | function createGattClientDevice(deviceId: string): GattClientDevice; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| BLE | function getConnectedBLEDevices(): Array<string>; | function getConnectedBLEDevices(): Array<string>; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| BLE | function startBLEScan(filters: Array<ScanFilter>, options?: ScanOptions): void; | function startBLEScan(filters: Array<ScanFilter>, options?: ScanOptions): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,新加权限ohos.permission.APPROXIMATELY_LOCATION | -| BLE | function stopBLEScan(): void; | function stopBLEScan(): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| BLE | mefunction on(type: "BLEDeviceFind", callback: Callback<Array<ScanResult>>): void;thod | function on(type: "BLEDeviceFind", callback: Callback<Array<ScanResult>>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| BLE | function off(type: "BLEDeviceFind", callback?: Callback<Array<ScanResult>>): void; | function off(type: "BLEDeviceFind", callback?: Callback<Array<ScanResult>>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattServer | startAdvertising(setting: AdvertiseSetting, advData: AdvertiseData, advResponse?: AdvertiseData): void; | startAdvertising(setting: AdvertiseSetting, advData: AdvertiseData, advResponse?: AdvertiseData): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattServer | stopAdvertising(): void; | stopAdvertising(): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattServer | addService(service: GattService): boolean; | addService(service: GattService): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| GattServer | removeService(serviceUuid: string): boolean; | removeService(serviceUuid: string): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| GattServer | close(): void; | close(): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts -| GattServer | notifyCharacteristicChanged(deviceId: string, notifyCharacteristic: NotifyCharacteristic): boolean; | notifyCharacteristicChanged(deviceId: string, notifyCharacteristic: NotifyCharacteristic): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| GattServer | sendResponse(serverResponse: ServerResponse): boolean; | sendResponse(serverResponse: ServerResponse): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| GattServer | on(type: "characteristicRead", callback: Callback<CharacteristicReadReq>): void; | on(type: "characteristicRead", callback: Callback<CharacteristicReadRequest>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattServer | off(type: "characteristicRead", callback?: Callback<CharacteristicReadReq>): void; | off(type: "characteristicRead", callback?: Callback<CharacteristicReadRequest>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattServer | on(type: "characteristicWrite", callback: Callback<CharacteristicWriteReq>): void; | on(type: "characteristicWrite", callback: Callback<CharacteristicWriteRequest>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattServer | off(type: "characteristicWrite", callback?: Callback<CharacteristicWriteReq>): void; | off(type: "characteristicWrite", callback?: Callback<CharacteristicWriteRequest>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattServer | on(type: "descriptorRead", callback: Callback<DescriptorReadReq>): void; | on(type: "descriptorRead", callback: Callback<DescriptorReadRequest>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattServer | off(type: "descriptorRead", callback?: Callback<DescriptorReadReq>): void; | off(type: "descriptorRead", callback?: Callback<DescriptorReadRequest>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattServer | on(type: "descriptorWrite", callback: Callback<DescriptorWriteReq>): void; | on(type: "descriptorWrite", callback: Callback<DescriptorWriteRequest>): void;| API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattServer | off(type: "descriptorWrite", callback?: Callback<DescriptorWriteReq>): void; | off(type: "descriptorWrite", callback?: Callback<DescriptorWriteRequest>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattServer | on(type: "connectStateChange", callback: Callback<BLEConnectChangedState>): void; | on(type: "connectStateChange", callback: Callback<BLEConnectChangedState>): void;| API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattServer | off(type: "connectStateChange", callback?: Callback<BLEConnectChangedState>): void; | off(type: "connectStateChange", callback?: Callback<BLEConnectChangedState>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattClientDevice | connect(): boolean; | connect(): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| GattClientDevice | disconnect(): boolean; | disconnect(): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| GattClientDevice | close(): boolean; | close(): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| GattClientDevice | getDeviceName(callback: AsyncCallback<string>): void; | getDeviceName(callback: AsyncCallback<string>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattClientDevice | getDeviceName(): Promise<string>; | getDeviceName(): Promise<string>; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattClientDevice | getServices(callback: AsyncCallback<Array<GattService>>): void; | getServices(callback: AsyncCallback<Array<GattService>>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattClientDevice | getServices(): Promise<Array<GattService>>; | getServices(): Promise<Array<GattService>>; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattClientDevice | readCharacteristicValue(characteristic: BLECharacteristic, callback: AsyncCallback<BLECharacteristic>): void; | readCharacteristicValue(characteristic: BLECharacteristic, callback: AsyncCallback<BLECharacteristic>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattClientDevice | readCharacteristicValue(characteristic: BLECharacteristic): Promise<BLECharacteristic>; | readCharacteristicValue(characteristic: BLECharacteristic): Promise<BLECharacteristic>; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattClientDevice | readDescriptorValue(descriptor: BLEDescriptor, callback: AsyncCallback<BLEDescriptor>): void; | readDescriptorValue(descriptor: BLEDescriptor, callback: AsyncCallback<BLEDescriptor>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattClientDevice | readDescriptorValue(descriptor: BLEDescriptor): Promise<BLEDescriptor>; | readDescriptorValue(descriptor: BLEDescriptor): Promise<BLEDescriptor>; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattClientDevice | writeCharacteristicValue(characteristic: BLECharacteristic): boolean; | writeCharacteristicValue(characteristic: BLECharacteristic): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| GattClientDevice | writeDescriptorValue(descriptor: BLEDescriptor): boolean; | writeDescriptorValue(descriptor: BLEDescriptor): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| GattClientDevice | getRssiValue(callback: AsyncCallback<number>): void; | getRssiValue(callback: AsyncCallback<number>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattClientDevice | getRssiValue(): Promise<number>; | getRssiValue(): Promise<number>; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattClientDevice | setBLEMtuSize(mtu: number): boolean; | setBLEMtuSize(mtu: number): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| GattClientDevice | setNotifyCharacteristicChanged(characteristic: BLECharacteristic, enable: boolean): boolean; | setNotifyCharacteristicChanged(characteristic: BLECharacteristic, enable: boolean): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts,接口返回值改为void | -| GattClientDevice | on(type: "BLECharacteristicChange", callback: Callback<BLECharacteristic>): void; | on(type: "BLECharacteristicChange", callback: Callback<BLECharacteristic>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattClientDevice | off(type: "BLECharacteristicChange", callback?: Callback<BLECharacteristic>): void; | off(type: "BLECharacteristicChange", callback?: Callback<BLECharacteristic>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattClientDevice | on(type: "BLEConnectionStateChange", callback: Callback<BLEConnectChangedState>): void; | on(type: "BLEConnectionStateChange", callback: Callback<BLEConnectChangedState>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| GattClientDevice | off(type: "BLEConnectionStateChange", callback?: Callback<BLEConnectChangedState>): void; | off(type: "BLEConnectionStateChange", callback?: Callback<BLEConnectChangedState>): void; | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | GattService | GattService | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | BLECharacteristic | BLECharacteristic | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | BLEDescriptor | BLEDescriptor | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | NotifyCharacteristic | NotifyCharacteristic | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | CharacteristicReadReq | CharacteristicReadRequest | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | CharacteristicWriteReq | CharacteristicWriteRequest | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | DescriptorReadRe | DescriptorReadRequest | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | DescriptorWriteReq | DescriptorWriteRequest | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | ServerResponse | ServerResponse | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | BLEConnectChangedState | BLEConnectChangedState | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | ScanResult | ScanResult | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | AdvertiseSetting | AdvertiseSetting | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | AdvertiseData | AdvertiseData | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | ManufactureData | ManufactureData | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | ServiceData | ServiceData | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | ScanFilter | ScanFilter | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | ScanOptions | ScanOptions | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | SppOption | SppOption | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | PinRequiredParam | PinRequiredParam | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | DeviceClass | DeviceClass | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | BondStateParam | BondStateParam | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | StateChangeParam | StateChangeParam | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | ScanDuty | ScanDuty | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | MatchMode | MatchMode | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | ProfileConnectionState | ProfileConnectionState | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | BluetoothState | BluetoothState | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | SppType | SppType | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | ScanMode | ScanMode | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | BondState | BondState | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | MajorClass | MajorClass | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | MajorMinorClass | MajorMinorClass | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | PlayingState | PlayingState | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | -| bluetooth | ProfileId | ProfileId | API9接口变更,迁移到@ohos.bluetoothManager.d.ts | - - - -**适配指导(可选,不涉及则可以删除)** - -以enableLocation为例,在新版本上需要使用如下方式进行调用: - - ```ts - import bluetoothManager from '@ohos.bluetoothManager'; - try { - var state = bluetoothManager.getState(); - } catch (err) { - console.error("errCode:" + err.code + ",errMessage:" + err.message); - } - ``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-distributeddatamgr.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-distributeddatamgr.md deleted file mode 100644 index cea1a40473..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-distributeddatamgr.md +++ /dev/null @@ -1,48 +0,0 @@ -# 分布式数据管理子系统JS API变更Changelog - -## cl.distributeddatamgr.1 接口变更 -distributeddatamgr子系统relationalStore组件接口存在变更: - -变更前: -应用调用getRdbStore接口后,通过返回对象rdbStore的openStatus属性(openStatus == ON_CREATE)判断数据库是否为新创建。 -变更后: -应用调用getRdbStore接口后,通过返回对象rdbStore的version属性(version == 0)判断数据库是否为新创建。 - -开发者需要根据以下说明对应用进行适配。 - - **变更影响** - -影响API10版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 - -**关键的接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| ------------------------------ | --------------- | ---------------- | ------- | -| @ohos.data.relationalStore | RdbStore | openStatus: number; 改为 version: number; | 变更 | - - -**适配指导** - -应用中设置和获取数据库版本可参考下列代码: - -```ts -const STORE_CONFIG = { - name: "rdbstore.db", - securityLevel: data_rdb.SecurityLevel.S1 -} -data_rdb.getRdbStore(this.context, STORE_CONFIG, function (err, rdbStore) { - // 变更前: - // if (rdbStore.openStatus == ON_CREATE) { - // rdbStore.executeSql("CREATE TABLE IF NOT EXISTS student (id INTEGER PRIMARY KEY AUTOINCREMENT, score REAL);", null) // create table xxx - // } - - // 变更后: - if (rdbStore.version == 0) { - rdbStore.executeSql("CREATE TABLE IF NOT EXISTS student (id INTEGER PRIMARY KEY AUTOINCREMENT, score REAL);", null) // create table xxx - // 设置数据库版本,值为大于0的正整数 - rdbStore.version == 3 - } - // 获取数据库版本 - console.info("Get RdbStore version is " + rdbStore.version) -}) -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-filemanagement.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-filemanagement.md deleted file mode 100644 index 6d04fd1b5c..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-filemanagement.md +++ /dev/null @@ -1,145 +0,0 @@ -# 文件管理子系统ChangeLog - -## cl.filemanagement.1 environment模块变更 - -文件管理子系统d.ts归档整改,现统一整改到file一层目录下。environment模块支持错误码处理。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现environment模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../OpenHarmony_3.2.8.1/changelogs-filemanagement.md) - -**关键接口/组件变更** - -原environment使用的是@ohos.environment,以以下方式import: - -```js -import environment from '@ohos.environment'; -``` - -现environment使用的是@ohos.file.environment,以以下方式import: - -```js -import environment from '@ohos.file.environment'; -``` - -## cl.filemanagement.2 securityLabel模块变更 - -文件管理子系统d.ts归档整改,现统一整改到file一层目录下。securityLabel模块支持错误码处理。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现securityLabel模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../OpenHarmony_3.2.8.1/changelogs-filemanagement.md) - -**关键接口/组件变更** - -原securityLabel使用的是@ohos.securityLabel,以以下方式import: - -```js -import securityLabel from '@ohos.securityLabel'; -``` - -现securityLabel使用的是@ohos.file.securityLabel,以以下方式import: - -```js -import securityLabel from '@ohos.file.securityLabel'; -``` - -## cl.filemanagement.3 fs模块变更 - -fs模块下Stat接口ino属性类型变更。 - -**变更影响** - -fs模块下Stat接口ino属性类型变更,由number变更为bigint,以适配文件系统下所有类型文件的inode范围。 - -**关键接口/组件变更** - -原Stat接口ino属性类型为number,现变更为bigint。 - -## cl.filemanagement.4 fileAccess模块变更 - -文件管理子系统d.ts归档整改,现统一整改到file一层目录下。fileAccess模块支持错误码处理。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现fileAccess模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../OpenHarmony_3.2.8.1/changelogs-filemanagement.md) - -**关键接口/组件变更** - -原fileAccess使用的是@ohos.data.fileAccess,以以下方式import: - -```js -import fileAccess from '@ohos.data.fileAccess'; -``` - -现fileAccess使用的是@ohos.file.fileAccess,以以下方式import: - -```js -import fileAccess from '@ohos.file.fileAccess'; -``` - -## cl.filemanagement.5 fileExtensionInfo模块变更 - -文件管理子系统d.ts归档整改,现统一整改到file一层目录下。fileExtensionInfo模块支持错误码处理。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现fileExtensionInfo模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../OpenHarmony_3.2.8.1/changelogs-filemanagement.md) - -**关键接口/组件变更** - -原fileExtensionInfo使用的是@ohos.fileExtensionInfo,以以下方式import: - -```js -import fileExtensionInfo from '@ohos.fileExtensionInfo'; -``` - -现fileExtensionInfo使用的是@ohos.file.fileExtensionInfo,以以下方式import: - -```js -import fileExtensionInfo from '@ohos.file.fileExtensionInfo'; -``` - -## cl.filemanagement.6 storageStatistics模块变更 - -文件管理子系统d.ts归档整改,现统一整改到file一层目录下。fileExtensionInfo模块支持错误码处理。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现storageStatistics模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../OpenHarmony_3.2.8.1/changelogs-filemanagement.md) - -**关键接口/组件变更** - -原storageStatistics使用的是@ohos.storageStatistics,以以下方式import: - -```js -import storageStatistics from '@ohos.storageStatistics'; -``` - -现storageStatistics使用的是@ohos.file.storageStatistics,以以下方式import: - -```js -import storageStatistics from '@ohos.file.storageStatistics'; -``` - -## cl.filemanagement.7 volumeManager模块变更 - -文件管理子系统d.ts归档整改,现统一整改到file一层目录下。fileExtensionInfo模块支持错误码处理。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现volumeManager模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../OpenHarmony_3.2.8.1/changelogs-filemanagement.md) - -**关键接口/组件变更** - -原volumeManager使用的是@ohos.volumeManager,以以下方式import: - -```js -import volumeManager from '@ohos.volumeManager'; -``` - -现volumeManager使用的是@ohos.file.volumeManager,以以下方式import: - -```js -import volumeManager from '@ohos.file.volumeManager'; -``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-global.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-global.md deleted file mode 100644 index 383b48481c..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-global.md +++ /dev/null @@ -1,41 +0,0 @@ -# 全球化子系统ChangeLog - -## cl.global.1 国际化模块系统接口添加运行时鉴权 - -全球化子系统国际化组件在如下场景中提供的系统接口添加运行时鉴权。从API9开始作以下变更: - - 设置系统语言、系统国家或地区、系统区域 - - 设置系统24小时制 - - 添加、移除系统偏好语言 - - 设置本地化数字 - -开发者需要根据以下说明对应用进行适配。 - -**变更影响** - -上述场景涉及的国际化系统接口添加运行时鉴权,只有具有UPDATE_CONFIGURATION权限的系统应用可以正常调用。 - -**关键的接口/组件变更** - - - 涉及接口 - - setSystemLanguage(language: string): void; - - setSystemRegion(region: string): void; - - setSystemLocale(locale: string): void; - - set24HourClock(option: boolean): void; - - addPreferredLanguage(language: string, index?: number): void; - - removePreferredLanguage(index: number): void; - - setUsingLocalDigit(flag: boolean): void; - -**适配指导** - -确保应用为系统应用,非系统应用禁止调用上述接口。 -当前权限不足或非系统应用调用该接口时会抛出异常,可以通过try-catch来捕获异常。 - -```js -import I18n from '@ohos.i18n' - -try { - I18n.System.setSystemLanguage('zh'); -} catch(error) { - console.error(`call System.setSystemLanguage failed, error code: ${error.code}, message: ${error.message}.`) -} -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-media.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-media.md deleted file mode 100644 index 1d1fadf9db..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-media.md +++ /dev/null @@ -1,312 +0,0 @@ -# 媒体子系统ChangeLog - -## cl.media.1 播放功能接口变更 - -新增音视频播放接口[AVPlayer](../../../application-dev/reference/apis/js-apis-media.md#avplayer9)9+, 升级了状态机和错误码,推荐用户使用。旧版音频播放接口[AudioPlayer](../../../application-dev/reference/apis/js-apis-media.md#audioplayer)6+和视频播放接口[VideoPlayer](../../../application-dev/reference/apis/js-apis-media.md#videoplayer)8+停止维护。 - -**变更影响** - -原有的接口暂时可继续使用,但是停止维护,建议使用新接口进行开发。 - -**关键的接口/组件变更** - -新增接口如下: - -| 类名 | 新增接口声明 | -| -------------- | ------------------------------------------------------------ | -| media | createAVPlayer(callback: AsyncCallback\): void | -| media | createAVPlayer() : Promise\ | -| media.AVPlayer | interface AVPlayer | -| media.AVPlayer | videoScaleType ?: VideoScaleType | -| media.AVPlayer | url ?: string | -| media.AVPlayer | surfaceId ?: string | -| media.AVPlayer | stop(callback: AsyncCallback\): void | -| media.AVPlayer | stop(): Promise\ | -| media.AVPlayer | setVolume(volume: number): void | -| media.AVPlayer | setSpeed(speed: PlaybackSpeed): void | -| media.AVPlayer | setBitrate(bitrate: number): void | -| media.AVPlayer | seek(timeMs: number, mode?:SeekMode): void | -| media.AVPlayer | reset(callback: AsyncCallback\): void | -| media.AVPlayer | reset(): Promise\ | -| media.AVPlayer | release(callback: AsyncCallback\): void | -| media.AVPlayer | release(): Promise\ | -| media.AVPlayer | readonly width: number | -| media.AVPlayer | readonly state: AVPlayerState | -| media.AVPlayer | readonly height: number | -| media.AVPlayer | readonly duration: number | -| media.AVPlayer | readonly currentTime: number | -| media.AVPlayer | prepare(callback: AsyncCallback\): void | -| media.AVPlayer | prepare(): Promise\ | -| media.AVPlayer | play(callback: AsyncCallback\): void | -| media.AVPlayer | play(): Promise\ | -| media.AVPlayer | pause(callback: AsyncCallback\): void | -| media.AVPlayer | pause(): Promise\ | -| media.AVPlayer | on(type: 'volumeChange', callback: Callback\): void | -| media.AVPlayer | on(type: 'videoSizeChange', callback: (width: number, height: number) => void): void | -| media.AVPlayer | on(type: 'timeUpdate', callback: Callback\): void | -| media.AVPlayer | on(type: 'stateChange', callback: (state: AVPlayerState, reason: StateChangeReason) => void): void | -| media.AVPlayer | on(type: 'startRenderFrame', callback: Callback\): void | -| media.AVPlayer | on(type: 'speedDone', callback: Callback\): void | -| media.AVPlayer | on(type: 'seekDone', callback: Callback\): void | -| media.AVPlayer | on(type: 'error', callback: ErrorCallback): void | -| media.AVPlayer | on(type: 'endOfStream', callback: Callback\): void | -| media.AVPlayer | on(type: 'durationUpdate', callback: Callback\): void | -| media.AVPlayer | on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void | -| media.AVPlayer | on(type: 'bitrateDone', callback: Callback\): void | -| media.AVPlayer | on(type: 'availableBitrates', callback: (bitrates: Array\) => void): void | -| media.AVPlayer | on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void | -| media.AVPlayer | off(type: 'volumeChange'): void | -| media.AVPlayer | off(type: 'videoSizeChange'): void | -| media.AVPlayer | off(type: 'timeUpdate'): void | -| media.AVPlayer | off(type: 'stateChange'): void | -| media.AVPlayer | off(type: 'startRenderFrame'): void | -| media.AVPlayer | off(type: 'speedDone'): void | -| media.AVPlayer | off(type: 'seekDone'): void | -| media.AVPlayer | off(type: 'error'): void | -| media.AVPlayer | off(type: 'endOfStream'): void | -| media.AVPlayer | off(type: 'durationUpdate'): void | -| media.AVPlayer | off(type: 'bufferingUpdate'): void | -| media.AVPlayer | off(type: 'bitrateDone'): void | -| media.AVPlayer | off(type: 'availableBitrates'): void | -| media.AVPlayer | off(type: 'audioInterrupt'): void | -| media.AVPlayer | loop: boolean | -| media.AVPlayer | getTrackDescription(callback: AsyncCallback\>): void | -| media.AVPlayer | getTrackDescription() : Promise\> | -| media.AVPlayer | fdSrc ?: AVFileDescriptor | -| media.AVPlayer | audioInterruptMode ?: audio.InterruptMode | -| unnamed | type AVPlayerState = 'idle' \| 'initialized' \| 'prepared' \| 'playing' \| 'paused' \| 'completed' \| 'stopped' \| 'released' \| 'error' | - -停止维护接口如下: - -| 类名 | 停止维护接口声明 | -| ----------------- | ------------------------------------------------------------ | -| media | createVideoPlayer(callback: AsyncCallback\): void | -| media | createVideoPlayer() : Promise\ | -| media | createAudioPlayer(): AudioPlayer | -| media.AudioPlayer | interface AudioPlayer | -| media.AudioPlayer | play(): void | -| media.AudioPlayer | release(): void | -| media.AudioPlayer | audioInterruptMode ?: audio.InterruptMode | -| media.AudioPlayer | fdSrc: AVFileDescriptor | -| media.AudioPlayer | seek(timeMs: number): void | -| media.AudioPlayer | readonly duration: number | -| media.AudioPlayer | loop: boolean | -| media.AudioPlayer | readonly state: AudioState | -| media.AudioPlayer | getTrackDescription(callback: AsyncCallback\>): void | -| media.AudioPlayer | getTrackDescription() : Promise\> | -| media.AudioPlayer | on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void | -| media.AudioPlayer | on(type: 'play' \| 'pause' \| 'stop' \| 'reset' \| 'dataLoad' \| 'finish' \| 'volumeChange', callback: () => void): void | -| media.AudioPlayer | on(type: 'timeUpdate', callback: Callback\): void | -| media.AudioPlayer | on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void | -| media.AudioPlayer | on(type: 'error', callback: ErrorCallback): void | -| media.AudioPlayer | setVolume(vol: number): void | -| media.AudioPlayer | pause(): void | -| media.AudioPlayer | readonly currentTime: number | -| media.AudioPlayer | stop(): void | -| media.AudioPlayer | reset(): void | -| media.AudioPlayer | src: string | -| media.VideoPlayer | interface VideoPlayer | -| media.VideoPlayer | play(callback: AsyncCallback\): void | -| media.VideoPlayer | play(): Promise\ | -| media.VideoPlayer | prepare(callback: AsyncCallback\): void | -| media.VideoPlayer | prepare(): Promise\ | -| media.VideoPlayer | release(callback: AsyncCallback\): void | -| media.VideoPlayer | release(): Promise\ | -| media.VideoPlayer | audioInterruptMode ?: audio.InterruptMode | -| media.VideoPlayer | fdSrc: AVFileDescriptor | -| media.VideoPlayer | seek(timeMs: number, callback: AsyncCallback\): void | -| media.VideoPlayer | seek(timeMs: number, mode:SeekMode, callback: AsyncCallback\): void | -| media.VideoPlayer | seek(timeMs: number, mode?:SeekMode): Promise\ | -| media.VideoPlayer | readonly duration: number | -| media.VideoPlayer | loop: boolean | -| media.VideoPlayer | videoScaleType ?: VideoScaleType | -| media.VideoPlayer | readonly state: VideoPlayState | -| media.VideoPlayer | getTrackDescription(callback: AsyncCallback\>): void | -| media.VideoPlayer | getTrackDescription() : Promise\> | -| media.VideoPlayer | readonly height: number | -| media.VideoPlayer | on(type: 'playbackCompleted', callback: Callback\): void | -| media.VideoPlayer | on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void | -| media.VideoPlayer | on(type: 'startRenderFrame', callback: Callback\): void | -| media.VideoPlayer | on(type: 'videoSizeChanged', callback: (width: number, height: number) => void): void | -| media.VideoPlayer | on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void | -| media.VideoPlayer | on(type: 'error', callback: ErrorCallback): void | -| media.VideoPlayer | setDisplaySurface(surfaceId: string, callback: AsyncCallback\): void | -| media.VideoPlayer | setDisplaySurface(surfaceId: string): Promise\ | -| media.VideoPlayer | setVolume(vol: number, callback: AsyncCallback\): void | -| media.VideoPlayer | setVolume(vol: number): Promise\ | -| media.VideoPlayer | url: string | -| media.VideoPlayer | pause(callback: AsyncCallback\): void | -| media.VideoPlayer | pause(): Promise\ | -| media.VideoPlayer | readonly currentTime: number | -| media.VideoPlayer | setSpeed(speed:number, callback: AsyncCallback\): void | -| media.VideoPlayer | setSpeed(speed:number): Promise\ | -| media.VideoPlayer | stop(callback: AsyncCallback\): void | -| media.VideoPlayer | stop(): Promise\ | -| media.VideoPlayer | readonly width: number | -| media.VideoPlayer | reset(callback: AsyncCallback\): void | -| media.VideoPlayer | reset(): Promise\ | -| unnamed | type AudioState = 'idle' \| 'playing' \| 'paused' \| 'stopped' \| 'error' | -| unnamed | type VideoPlayState = 'idle' \| 'prepared' \| 'playing' \| 'paused' \| 'stopped' \| 'error' | - -**适配指导** - -请参考各接口的[API参考](../../../application-dev/reference/apis/js-apis-media.md) - -## cl.media.2 录制功能接口变更 - -新增音视频录制接口[AVRecorder](../../../application-dev/reference/apis/js-apis-media.md#avrecorder9)9+, 升级了状态机和错误码,推荐用户使用。旧版音频录制接口[AudioRecorder](../../../application-dev/reference/apis/js-apis-media.md#audiorecorder)6+和视频录制接口[VideoRecorder](../../../application-dev/reference/apis/js-apis-media.md#videorecorder9)9+停止维护。 - -新旧录制接口共用的[AudioSourceType](../../../application-dev/reference/apis/js-apis-media.md#audiosourcetype9)和[VideoSourceType](../../../application-dev/reference/apis/js-apis-media.md#videosourcetype9)接口,变更为非系统接口。 - -**变更影响** - -原有的接口[AudioRecorder](../../../application-dev/reference/apis/js-apis-media.md#audiorecorder)6+和[VideoRecorder](../../../application-dev/reference/apis/js-apis-media.md#videorecorder9)9+暂时可继续使用,但是停止维护,建议使用新接口进行开发[AVRecorder](../../../application-dev/reference/apis/js-apis-media.md#avrecorder9)9+。 - -**关键的接口/组件变更** - -新增接口如下: - -| 类名 | 新增接口声明 | -| ----------------------- | ------------------------------------------------------------ | -| media | createAVRecorder(callback: AsyncCallback\): void | -| media | createAVRecorder() : Promise\ | -| media.AVRecorder | interface AVRecorder | -| media.AVRecorder | prepare(config: AVRecorderConfig, callback: AsyncCallback\): void | -| media.AVRecorder | prepare(config: AVRecorderConfig): Promise\ | -| media.AVRecorder | release(callback: AsyncCallback\): void | -| media.AVRecorder | release(): Promise\ | -| media.AVRecorder | readonly state: AVRecorderState | -| media.AVRecorder | on(type: 'stateChange', callback: (state: AVRecorderState, reason: StateChangeReason) => void): void | -| media.AVRecorder | on(type: 'error', callback: ErrorCallback): void | -| media.AVRecorder | resume(callback: AsyncCallback\): void | -| media.AVRecorder | resume(): Promise\ | -| media.AVRecorder | start(callback: AsyncCallback\): void | -| media.AVRecorder | start(): Promise\ | -| media.AVRecorder | off(type: 'stateChange'): void | -| media.AVRecorder | off(type: 'error'): void | -| media.AVRecorder | pause(callback: AsyncCallback\): void | -| media.AVRecorder | pause(): Promise\ | -| media.AVRecorder | stop(callback: AsyncCallback\): void | -| media.AVRecorder | stop(): Promise\ | -| media.AVRecorder | reset(callback: AsyncCallback\): void | -| media.AVRecorder | reset(): Promise\ | -| media.AVRecorder | getInputSurface(callback: AsyncCallback\): void | -| media.AVRecorder | getInputSurface(): Promise\ | -| media.AVRecorderConfig | videoSourceType?: VideoSourceType | -| media.AVRecorderConfig | audioSourceType?: AudioSourceType | -| media.AVRecorderConfig | profile: AVRecorderProfile | -| media.AVRecorderConfig | rotation?: number | -| media.AVRecorderConfig | url: string | -| media.AVRecorderConfig | location?: Location | -| media.AVRecorderConfig | interface AVRecorderConfig | -| media.AVRecorderProfile | videoBitrate?: number | -| media.AVRecorderProfile | videoCodec?: CodecMimeType | -| media.AVRecorderProfile | audioCodec?: CodecMimeType | -| media.AVRecorderProfile | videoFrameRate?: number | -| media.AVRecorderProfile | videoFrameHeight?: number | -| media.AVRecorderProfile | audioSampleRate?: number | -| media.AVRecorderProfile | audioBitrate?: number | -| media.AVRecorderProfile | videoFrameWidth?: number | -| media.AVRecorderProfile | audioChannels?: number | -| media.AVRecorderProfile | fileFormat: ContainerFormatType | -| media.AVRecorderProfile | interface AVRecorderProfile | -| unnamed | type AVRecorderState = 'idle' \| 'prepared' \| 'started' \| 'paused' \| 'stopped' \| 'released' \| 'error' | - -停止维护接口如下: - -| 类名 | 停止维护接口声明 | -| -------------------------- | ------------------------------------------------------------ | -| media | createVideoRecorder(callback: AsyncCallback\): void | -| media | createVideoRecorder(): Promise\ | -| media | createAudioRecorder(): AudioRecorder | -| media.AudioRecorder | interface AudioRecorder | -| media.AudioRecorder | prepare(config: AudioRecorderConfig): void | -| media.AudioRecorder | release(): void | -| media.AudioRecorder | on(type: 'prepare' \| 'start' \| 'pause' \| 'resume' \| 'stop' \| 'release' \| 'reset', callback: () => void): void | -| media.AudioRecorder | on(type: 'error', callback: ErrorCallback): void | -| media.AudioRecorder | resume(): void | -| media.AudioRecorder | start(): void | -| media.AudioRecorder | pause(): void | -| media.AudioRecorder | stop(): void | -| media.AudioRecorder | reset(): void | -| media.AudioRecorderConfig | audioSampleRate?: number | -| media.AudioRecorderConfig | location?: Location | -| media.AudioRecorderConfig | fileFormat?: ContainerFormatType | -| media.AudioRecorderConfig | interface AudioRecorderConfig | -| media.AudioRecorderConfig | audioEncoder?: AudioEncoder | -| media.AudioRecorderConfig | audioEncodeBitRate?: number | -| media.AudioRecorderConfig | numberOfChannels?: number | -| media.AudioRecorderConfig | format?: AudioOutputFormat | -| media.AudioRecorderConfig | uri: string | -| media.AudioRecorderConfig | audioEncoderMime?: CodecMimeType | -| media.VideoRecorder | interface VideoRecorder | -| media.VideoRecorder | prepare(config: VideoRecorderConfig, callback: AsyncCallback\): void | -| media.VideoRecorder | prepare(config: VideoRecorderConfig): Promise\ | -| media.VideoRecorder | release(callback: AsyncCallback\): void | -| media.VideoRecorder | release(): Promise\ | -| media.VideoRecorder | readonly state: VideoRecordState | -| media.VideoRecorder | on(type: 'error', callback: ErrorCallback): void | -| media.VideoRecorder | resume(callback: AsyncCallback\): void | -| media.VideoRecorder | resume(): Promise\ | -| media.VideoRecorder | start(callback: AsyncCallback\): void | -| media.VideoRecorder | start(): Promise\ | -| media.VideoRecorder | pause(callback: AsyncCallback\): void | -| media.VideoRecorder | pause(): Promise\ | -| media.VideoRecorder | stop(callback: AsyncCallback\): void | -| media.VideoRecorder | stop(): Promise\ | -| media.VideoRecorder | reset(callback: AsyncCallback\): void | -| media.VideoRecorder | reset(): Promise\ | -| media.VideoRecorder | getInputSurface(callback: AsyncCallback\): void | -| media.VideoRecorder | getInputSurface(): Promise\ | -| media.VideoRecorderConfig | videoSourceType: VideoSourceType | -| media.VideoRecorderConfig | audioSourceType?: AudioSourceType | -| media.VideoRecorderConfig | profile: VideoRecorderProfile | -| media.VideoRecorderConfig | rotation?: number | -| media.VideoRecorderConfig | url: string | -| media.VideoRecorderConfig | location?: Location | -| media.VideoRecorderConfig | interface VideoRecorderConfig | -| media.VideoRecorderProfile | readonly videoBitrate: number | -| media.VideoRecorderProfile | readonly videoCodec: CodecMimeType | -| media.VideoRecorderProfile | readonly audioCodec: CodecMimeType | -| media.VideoRecorderProfile | readonly videoFrameRate: number | -| media.VideoRecorderProfile | readonly videoFrameHeight: number | -| media.VideoRecorderProfile | readonly audioSampleRate: number | -| media.VideoRecorderProfile | readonly audioBitrate: number | -| media.VideoRecorderProfile | readonly videoFrameWidth: number | -| media.VideoRecorderProfile | readonly audioChannels: number | -| media.VideoRecorderProfile | readonly fileFormat: ContainerFormatType | -| media.VideoRecorderProfile | interface VideoRecorderProfile | -| unnamed | type VideoRecordState = 'idle' \| 'prepared' \| 'playing' \| 'paused' \| 'stopped' \| 'error' | - -变更接口如下: - -| 类名 | 接口声明 | 变更前能力 | 变更后能力 | 变更前是否为系统接口 | 变更后是否为系统接口 | -| --------------------- | ------------------------------------------------------------ | ----------------------------------------------- | -------------------------------------------- | -------------------- | -------------------- | -| media.AudioSourceType | enum AudioSourceType { /** * default audio source type. * @since 9 * @syscap SystemCapability.Multimedia.Media.AVRecorder */ AUDIO_SOURCE_TYPE_DEFAULT = 0, /** * source type mic. * @since 9 * @syscap SystemCapability.Multimedia.Media.AVRecorder */ AUDIO_SOURCE_TYPE_MIC = 1, } | SystemCapability.Multimedia.Media.VideoRecorder | SystemCapability.Multimedia.Media.AVRecorder | 是 | 否 | -| media.VideoSourceType | enum VideoSourceType { /** * surface raw data. * @since 9 * @syscap SystemCapability.Multimedia.Media.AVRecorder */ VIDEO_SOURCE_TYPE_SURFACE_YUV = 0, /** * surface ES data. * @since 9 * @syscap SystemCapability.Multimedia.Media.AVRecorder */ VIDEO_SOURCE_TYPE_SURFACE_ES = 1, } | SystemCapability.Multimedia.Media.VideoRecorder | SystemCapability.Multimedia.Media.AVRecorder | 是 | 否 | - -**适配指导** - -请参考各接口的[API参考](../../../application-dev/reference/apis/js-apis-media.md) - -## cl.media.3 错误码变更 - -新增标准的错误枚举类型[AVErrorCode9](../../../application-dev/reference/apis/js-apis-media.md#averrorcode)9+替代原有错误枚举类型[MediaErrorCode](../../../application-dev/reference/apis/js-apis-media.md#mediaerrorcode)8+。 - -**变更影响** - -以往接口返回错误码枚举类型为[MediaErrorCode](../../../application-dev/reference/apis/js-apis-media.md#mediaerrorcode)8+不变。新增接口错误码类型均采用[AVErrorCode9](../../../application-dev/reference/apis/js-apis-media.md#averrorcode)9+。 - -**关键的接口/组件变更** - -新增接口如下: - -| 类名 | 新增错误码声明 | -| ----------------- | ------------------------------------------------------------ | -| media.AVErrorCode | enum AVErrorCode { /** * operation success. * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_OK = 0, /** * permission denied. * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_NO_PERMISSION = 201, /** * invalid parameter. * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_INVALID_PARAMETER = 401, /** * the api is not supported in the current version * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_UNSUPPORT_CAPABILITY = 801, /** * the system memory is insufficient or the number of services reaches the upper limit * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_NO_MEMORY = 5400101, /** * current status does not allow or do not have permission to perform this operation * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_OPERATE_NOT_PERMIT = 5400102, /** * data flow exception information * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_IO = 5400103, /** * system or network response timeout. * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_TIMEOUT = 5400104, /** * service process died. * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_SERVICE_DIED = 5400105, /** * unsupported media format * @since 9 * @syscap SystemCapability.Multimedia.Media.Core */ AVERR_UNSUPPORT_FORMAT = 5400106, } | - -停止维护接口如下: - -| 类名 | 停止维护错误码声明 | -| -------------------- | ------------------------------------------------------------ | -| media.MediaErrorCode | enum MediaErrorCode { /** * operation success. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_OK = 0, /** * malloc or new memory failed. maybe system have no memory. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_NO_MEMORY = 1, /** * no permission for the operation. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_OPERATION_NOT_PERMIT = 2, /** * invalid argument. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_INVALID_VAL = 3, /** * an I/O error occurred. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_IO = 4, /** * operation time out. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_TIMEOUT = 5, /** * unknown error. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_UNKNOWN = 6, /** * media service died. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_SERVICE_DIED = 7, /** * operation is not permit in current state. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_INVALID_STATE = 8, /** * operation is not supported in current version. * @since 8 * @syscap SystemCapability.Multimedia.Media.Core */ MSERR_UNSUPPORTED = 9, } | \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-testfwk_arkxtest.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-testfwk_arkxtest.md deleted file mode 100644 index d508e473d7..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-testfwk_arkxtest.md +++ /dev/null @@ -1,42 +0,0 @@ -# 测试子系统ChangeLog - -## cl.testfwk_arkxtest.1 Rect控件边框信息类接口名称变更 - -表示控件边框信息的枚举类型Rect定义自4.0.2.1版本起进行了变更。 - -## 变更影响 - -此变更影响@ohos.uitest提供的Rect接口。用户此前在测试用例开发中使用了@ohos.uitest-api9 中Rect接口的,需要进行适配才可以在新版本SDK环境正常编译通过。 - -## 关键的接口/组件变更 - -### Rect9+ - -变更前: - -| 名称 | 值 | 说明 | -| ------- | ---- | ------------------------- | -| leftX | 1 | 控件边框的左上角的X坐标。 | -| topY | 2 | 控件边框的左上角的Y坐标。 | -| rightX | 3 | 控件边框的右下角的X坐标。 | -| bottomY | 4 | 控件边框的右下角的Y坐标。 | - -变更后: - -| 名称 | 值 | 说明 | -| ------ | ---- | ------------------------- | -| left | 1 | 控件边框的左上角的X坐标。 | -| top | 2 | 控件边框的左上角的Y坐标。 | -| right | 3 | 控件边框的右下角的X坐标。 | -| bottom | 4 | 控件边框的右下角的Y坐标。 | - -## 适配指导 - -### 适配接口名称变更 - -可按照如下规则做类名替换: - -- `leftX-->left` -- `topY-->top` -- `rightX-->right` -- `bottomY-->bottom` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-usb.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-usb.md deleted file mode 100755 index a491f5b1cd..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-usb.md +++ /dev/null @@ -1,28 +0,0 @@ -# USB服务子系统ChangeLog - -## cl.usb_manager.1 系统接口变更 - -USB系统API运行时鉴权,异步接口以Promise reject形式抛出错误码。 - -基于此前版本开发的应用,需修改函数的返回值,否则会影响原有业务逻辑。 - -**关键接口/组件变更** - -| 包名 | 旧接口 | 新接口 | -| --------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| ohos.usbV9.d.ts | function setCurrentFunctions(funcs: FunctionType): Promise; | function setCurrentFunctions(funcs: FunctionType): Promise; | -| ohos.usbV9.d.ts | function setPortRoles(portId: number, powerRole: PowerRoleType, dataRole: DataRoleType): Promise; | function setPortRoles(portId: number, powerRole: PowerRoleType, dataRole: DataRoleType): Promise; | - -## cl.usb_manager.2 sdk接口删除 - -继OpenHarmony 4.0.5.5版本3.30之后,@ohos.usbV9.d.ts文件已删除。 - -后续需要import @ohos.usbManager才能使用USB服务的接口: - - ```ts - import usbManager from '@ohos.usbManager'; - ``` - -**适配指导** - -请参考各接口的[API文档](../../../application-dev/reference/apis/js-apis-usbManager.md) diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.2/changelog-web.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.2/changelog-web.md deleted file mode 100644 index 1aa1233f4c..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.2/changelog-web.md +++ /dev/null @@ -1,63 +0,0 @@ -# web子系统ChangeLog - -OpenHarmony 4.0.2.2 版本相较于OpenHarmony 之前的版本,web的API变更如下。 - -## cl.web.1 删除webDebuggingAccess接口 - -该接口定义不合理,该属性对所有web实例生效的,属于全局配置。用本次新增的接口setWebDebuggingAccess替换。 - -**变更影响** - -该接口删除无法再使用,请使用新增的接口setWebDebuggingAccess替换。 - -**关键的接口/组件变更** - -| 类名 | 接口类型 | 接口声明 | 变更类型 | -| -- | -- | -- | -- | -|WebAttribute | method | webDebugggingAccess(webDebugggingAccess: boolean): WebAttribute| 删除 | - -**适配指导** - -该接口删除无法再使用,请使用新增的接口setWebDebuggingAccess替换。 - -## cl.web.2 新增setWebDebuggingAccess接口 - -WebviewController提供静态方法来设置调试模式开关,该设置对所有web实例生效。 - -**变更影响** - -原有webDebugggingAccess属性定义不合理,因此新增该静态接口来设置调试模式开关。应用侧需要使用该接口来打开调试模式开关。 - -**关键的接口/组件变更** - -| 类名 | 接口类型 | 接口声明 | 变更类型 | -| -- | -- | -- | -- | -|webview.WebviewController | method | static setWebDebugggingAccess(webDebugggingAccess: boolean): void| 新增 | - -**适配指导** - -以打开调试开关为例,示例代码如下: - -```ts -// xxx.ets -import web_webview from '@ohos.web.webview'; - -@Entry -@Component -struct WebComponent { - controller: web_webview.WebviewController = new web_webview.WebviewController(); - - aboutToAppear():void { - try { - web_webview.WebviewController.setWebDebuggingAccess(true); - } catch(error) { - console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); - } - } - - build() { - Column() { - Web({ src: 'www.example.com', controller: this.controller }) - } - } -} \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.2/changelogs-bundlemanager.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.2/changelogs-bundlemanager.md deleted file mode 100644 index 6d889323ad..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.2/changelogs-bundlemanager.md +++ /dev/null @@ -1,14 +0,0 @@ -# 包管理子系统ChangeLog - -## cl.bundlemanager.1 底层能力变更,安装hap时,hap中的文件不再解压到安装目录。 - -安装hap后,安装目录下只会存在hap文件,应用不能再使用拼接路径访问解压后的资源文件,应用想要访问资源文件,需要使用标准的资源管理接口。 - -**变更影响**
-如果应用使用拼接路径的形式访问资源文件,会访问失败。需要修改成使用资源管理接口访问资源文件。 - -**关键的接口/组件变更**
-不涉及接口及组件变更 - -**适配指导**
-资源管理子系统提供Js接口访问资源文件。参考[访问资源文件](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-resource-manager.md#getrawfilecontent9) diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.2/changelogs-global.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.2/changelogs-global.md deleted file mode 100644 index c6d75fb165..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.2/changelogs-global.md +++ /dev/null @@ -1,57 +0,0 @@ -# 全球化子系统ChangeLog - -## cl.resourceManager.1 资源获取rawfile文件描述符接口含义变更 - -相较于之前的版本,在4.0.2.2 版本中,新增不解压特性,rawfile文件描述符接口返回值的含义发生了变化。接口用于返回获取的rawfile文件的descriptor:RawFileDescriptor {fd,offset, length},由于不解压特性变更,返回值没发生变化,但返回值的含义发生了变化, 变化如下: - -**新增不解压特性前**: - -fd: 访问rawfile文件的文件描述符; - -offset: 访问rawfile文件的偏移量,此时为0; - -length: 访问rawfile文件的大小。 - -**新增不解压特性后**: - -fd: 访问rawfile文件所在hap的文件描述符; - -offset: 访问rawfile文件相对于hap的偏移量; - -length: 访问rawfile文件的大小。 - -**变更影响** - -之前只通过fd可以访问到rawfile文件,在4.0.2.2 及以上版本需要通过{fd, offset, length}三个参数才能访问到。 - -**关键接口/组件变更** - -| **涉及接口** | -| ---------------- | -| getRawFd(path: string, callback: AsyncCallback\): void | -| getRawFd(path: string): Promise\ | -| getRawFileDescriptor(path: string, callback: AsyncCallback\): void| -| getRawFileDescriptor(path: string): Promise\| -|| - -**示例代码** - -以调用接口getRawFd为例: -``` -try { - this.context.resourceManager.getRawFd("test.ogg", (error, value) => { - if (error != null) { - console.log(`callback getRawFd failed error code: ${error.code}, message: ${error.message}.`); - } else { - let fileDescriptor = { - fd = value.fd, - offset = value.offset, - length = value.length - } - this.avPlayer.fdSrc(fileDescriptor); // 以音频播放为例,调用fdSrc时需要传fileDescriptor,不能仅传fd。 - } - }); - } catch (error) { - console.error(`callback getRawFd failed, error code: ${error.code}, message: ${error.message}.`) - }; -``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.3/changelogs-ability.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.3/changelogs-ability.md deleted file mode 100644 index 7637a2a278..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.3/changelogs-ability.md +++ /dev/null @@ -1,36 +0,0 @@ -# 元能力子系统ChangeLog - -## cl.ability.1 appRecovery接口中RestartFlag属性名称变更,删除了未支持的属性 - -appRecovery接口中RestartFlag枚举命名从特定故障发生后**不重启**改成了特定故障发生后**重启**。 -删除了CPP_CRASH_NO_RESTART。 - -**变更影响** - -4.0.2.3版本之前使用CPP_CRASH_NO_RESTART/JS_CRASH_NO_RESTART/APP_FREEZE_NO_RESTART类型开发的应用,在4.0.2.3版本之后行为会发生变化。 - -**关键接口/组件变更** - -**RestartFlag** 9+ - -变更前: -| 名称 | 值 | 说明 | -| ----------------------------- | ---- | ------------------------------------------------------------ | -| ALWAYS_RESTART | 0 | 总是重启应用。 | -| CPP_CRASH_NO_RESTART | 0x0001 | 发生CPP_CRASH时**不重启**应用。 | -| JS_CRASH_NO_RESTART | 0x0002 | 发生JS_CRASH时**不重启**应用。 | -| APP_FREEZE_NO_RESTART | 0x0004 | 发生APP_FREEZE时**不重启**应用。 | -| NO_RESTART | 0xFFFF | 总是不重启应用。 | - -变更后: -| 名称 | 值 | 说明 | -| ---------- | ---- | ---------- | -| ALWAYS_RESTART | 0 | 总是重启应用。 | -| CPP_CRASH_NO_RESTART | NA | **删除**,不支持该场景的重启。 | -| RESTART_WHEN_JS_CRASH | 0x0001 | 发生JS_CRASH时**重启**应用。 | -| RESTART_WHEN_APP_FREEZE | 0x0002 | 发生APP_FREEZE时**重启**应用。 | -| NO_RESTART | 0xFFFF | 总是不重启应用。 | - -**适配指导** - -按新的语义进行适配。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.3/changelogs-ans.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.3/changelogs-ans.md deleted file mode 100644 index 4053bb4f9b..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.3/changelogs-ans.md +++ /dev/null @@ -1,21 +0,0 @@ -# ANS通知子系统ChangeLog - -## cl.notificationManager.1 接口名变更 - -基于此前接口名定义不够规范,与其他功能类型的接口命名不一致,对此接口名进行变更。 - -**变更影响** - -底层仍支持原接口功能,不影响4.0.2.3版本调用该接口的应用。 - -**关键接口/组件变更** - -| 包名 | 旧接口 | 新接口 | -| --------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| ohos.notificationManager.d.ts | **function** supportDoNotDisturbMode(callback: AsyncCallback): **void**; | **function** isSupportDoNotDisturbMode(callback: AsyncCallback): **void**; | -| ohos.notificationManager.d.ts | **function** supportDoNotDisturbMode(): Promise; | **function** isSupportDoNotDisturbMode(): Promise; | - -**适配指导** - -按新的接口isSupportDoNotDisturbMode调用。 - diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.3/changelogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.3/changelogs-arkui.md deleted file mode 100644 index f4d9c73836..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.3/changelogs-arkui.md +++ /dev/null @@ -1,328 +0,0 @@ -# arkui子系统ChangeLog - -## cl.arkui.1 状态变量数据类型声明使用限制。 - -1. 所有的状态装饰器变量需要显式声明变量类型,不允许声明any。 - - 示例: - - ```ts - // xxx.ets - @Entry - @Component - struct DatePickerExample { - // 错误写法: @State isLunar: any = false - @State isLunar: boolean = false - - build() { - ... - } - } - ``` - -2. @State、@Provide、 @Link和@Consume四种状态变量的数据类型声明只能由简单数据类型或引用数据类型的其中一种构成。 - - 类型定义中的Length、ResourceStr、ResourceColor三个类型是简单数据类型或引用数据类型的组合,所以不能被以上四种状态装饰器变量使用。 - Length、ResourceStr、ResourceColor的定义请看文档[arkui-ts类型定义](../../../application-dev/reference/arkui-ts/ts-types.md)。 - - 示例: - - ```ts - // xxx.ets - @Entry - @Component - struct IndexPage { - // 错误写法: @State message: string | Resource = 'Hello World' - @State message: string = 'Hello World' - // 错误写法: @State message: ResourceStr = $r('app.string.hello') - @State resourceStr: Resource = $r('app.string.hello') - - build() { - Row() { - Column() { - Text(`${this.message}`) - .fontSize(50) - .fontWeight(FontWeight.Bold) - } - .width('100%') - } - .height('100%') - } - } - ``` - - ![hello](../../../application-dev/quick-start/figures/hello.PNG) - -**变更影响** - -1. 如果状态装饰器变量没有显式声明变量类型,声明any,编译拦截会出现警告; - ```ts - // ArkTS:WARN Please define an explicit type, not any. - @State isLunar: any = false - ``` -3. @State、@Provide、 @Link和@Consume四种状态变量使用框架提供的Length、ResourceStr、ResourceColor, - 编译拦截报错。 - - ```ts - /* ArkTS:ERROR The state variable type here is 'ResourceStr', it contains both a simple type and an object type, - which are not allowed to be defined for state variable of a struct.*/ - @State message: ResourceStr = $r('app.string.hello') - ``` - -**关键的接口/组件变更** - -不涉及。 - -**适配指导** - -1. 状态装饰器变量声明具体的变量类型替代any; -3. 因为Length(string|number|Resource), ResourceStr(string|Resource), ResourceColor(string|number|Color|Resource) - 的三个类型是简单数据类型或引用数据类型的组合,使用@State、@Provide、 @Link和@Consume四种状态变量场景参考以下修改: - ```ts - // 错误写法: - @State message: ResourceStr = $r('app.string.hello') - // 修正后的写法: - @State resourceStr: Resource = $r('app.string.hello') - ``` - -## cl.arkui.2 自定义组件成员变量初始化的规则与约束。 - -通过构造函数方法初始化成员变量,需要遵循如下规则: - -| **从父组件中的变量(右)到子组件中的变量(下)** | **regular** | **@State** | **@Link** | **@Prop** | **@Provide** | **@Consume** | **@ObjectLink** | -| -------------------------- | ----------- | ---------- | --------- | --------- | ------------ | ------------ | --------------- | -| **regular** | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 支持 | -| **@State** | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | -| **@Link** | 不支持 | 支持(1) | 支持(1) | 支持(1) | 支持(1) | 支持(1) | 支持(1) | -| **@Prop** | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | -| **@Provide** | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | -| **@Consume** | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | -| **@ObjectLink** | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | - -| **从父组件中的变量(右)到子组件中的变量(下)** | **@StorageLink** | **@StorageProp** | **@LocalStorageLink** | **@LocalStorageProp** | -| -------------------------- | ---------------- | ---------------- | --------------------- | --------------------- | -| **regular** | 支持 | 不支持 | 不支持 | 不支持 | -| **@State** | 支持 | 支持 | 支持 | 支持 | -| **@Link** | 支持(1) | 支持(1) | 支持(1) | 支持(1) | -| **@Prop** | 支持 | 支持 | 支持 | 支持 | -| **@Provide** | 支持 | 支持 | 支持 | 支持 | -| **@Consume** | 不支持 | 不支持 | 不支持 | 不支持 | -| **@ObjectLink** | 不支持 | 不支持 | 不支持 | 不支持 | - -> **说明** -> -> **支持(1)**:必须使用`$`, 例如 `this.$varA`。 -> **regular**:未加修饰的常规变量。 - -不允许从父组件初始化`@StorageLink`, `@StorageProp`, `@LocalStorageLink`, `@LocalStorageProp`修饰的变量。 - -**变更影响** - -1. 不允许从父组件初始化`@LocalStorageLink`, `@LocalStorageProp`修饰的变量,编译出现警告。 - ```ts - @Entry - @Component - struct LocalStorageComponent { - build() { - Column() { - Child({ - /* ArkTS:WARN Property 'simpleVarName' in the custom component 'Child' cannot - initialize here (forbidden to specify). */ - simpleVarName: 1, - /* ArkTS:WARN Property 'objectName' in the custom component 'Child' cannot - initialize here (forbidden to specify). */ - objectName: new ClassA("x") - }) - } - } - } - @Component - struct Child { - @LocalStorageLink("storageSimpleProp") simpleVarName: number = 0; - @LocalStorageProp("storageObjectProp") objectName: ClassA = new ClassA("x"); - build() {} - } - ``` -2. 子组件的@ObjectLink变量不支持父组件装饰器变量的直接赋值,其父组件的源必须是数组的项或对象的属性,该数组或对象必现用`@State`、`@Link`、`@Provide`、`@Consume`或`@ObjectLink`装饰器修饰。 - ```ts - let NextID : number = 0; - - @Observed class ClassA { - public id : number; - public c: number; - constructor(c: number) { - this.id = NextID++; - this.c = c; - } - } - - @Component - struct Child { - @ObjectLink varA : ClassA; - build() { - Row() { - Text('ViewA-' + this.varA.id) - } - } - } - - @Component - struct Parent { - @Link linkValue: ClassA - build() { - Column() { - /* ArkTS:ERROR The @Link property 'linkValue' cannot be assigned to - the @ObjectLink property 'varA'.*/ - Child({ varA: this.linkValue }) - } - } - } - ``` - -**关键的接口/组件变更** - -不涉及。 - -**适配指导** -1. 构造子组件时,不对子组件的`@LocalStorageLink`, `@LocalStorageProp`修饰的变量进行。 - 如果需要在父组件中修改子组件的`@LocalStorageLink`, `@LocalStorageProp`修饰的变量,则使用LocalStorage提供的API接口方法(比如set方法)赋值。 -2. @ObjectLink的使用指导请参考文档[@ObjectLink使用指导](../../../application-dev/quick-start/arkts-observed-and-objectlink.md)。 - -## cl.arkui.3 List组件和Scroll组件onScrollBegin事件变更 - -List组件和Scroll组件onScrollBegin事件更名为onScrollFrameBegin事件,onScrollBegin事件中dx和dy参数分别表示X轴和Y轴方向滚动偏移量,更变为onScrollFrameBegin事件后使用offset参数表示滚动偏移量。onScrollFrameBegin事件新增ScrollState参数,用于表示当前时手指拖动滑动状态还是惯性滑动状态。 - -**变更影响** - -onScrollBegin事件不能再使用,需要使用onScrollFrameBegin事件。 - -**关键接口/组件变更** - -| 旧事件定义 | 新事件定义 | -| ---------------------------------------- | ---------------------------------------- | -| onScrollBegin(event: (dx: number, dy: number) => { dxRemain: number, dyRemain: number }) | onScrollFrameBegin(event: (offset: number, state: ScrollState) => { offsetRemain: number }) | - -onScrollFrameBegin事件说明参考API接口文档: -- [Scroll组件事件](../../../application-dev/reference/arkui-ts/ts-container-scroll.md#事件) -- [List组件事件](../../../application-dev/reference/arkui-ts/ts-container-list.md#事件) - -**适配指导** - -onScrollBegin改成使用onScrollFrameBegin事件,onScrollBegin事件的dx/dy参数改成onScrollFrameBegin事件的offset参数。原本需要更滚动组件的滚动轴来确定是使用dx还dy参数,使用onScrollFrameBegin事件后,只需要直接使用offset参数。 - -onScrollBegin事件典型使用示例: -```ts -@Entry -@Component -struct NestedScroll { - @State listPosition: number = 0; // 0代表滚动到List顶部,1代表中间值,2代表滚动到List底部。 - private arr: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - private scrollerForScroll: Scroller = new Scroller() - private scrollerForList: Scroller = new Scroller() - - build() { - Flex() { - Scroll(this.scrollerForScroll) { - Column() { - Text("Scroll Area") - .width("100%").height("40%").backgroundColor(0X330000FF) - .fontSize(16).textAlign(TextAlign.Center) - .onClick(() => { - this.scrollerForList.scrollToIndex(5) - }) - - List({ space: 20, scroller: this.scrollerForList }) { - ForEach(this.arr, (item) => { - ListItem() { - Text("ListItem" + item) - .width("100%").height("100%").borderRadius(15) - .fontSize(16).textAlign(TextAlign.Center).backgroundColor(Color.White) - }.width("100%").height(100) - }, item => item) - } - .width("100%") - .height("50%") - .edgeEffect(EdgeEffect.None) - .onReachStart(() => { - this.listPosition = 0 - }) - .onReachEnd(() => { - this.listPosition = 2 - }) - .onScrollBegin((dx: number, dy: number) => { - if ((this.listPosition == 0 && dy >= 0) || (this.listPosition == 2 && dy <= 0)) { - this.scrollerForScroll.scrollBy(0, -dy) - return { dxRemain: dx, dyRemain: 0 } - } - this.listPosition = 1 - return { dxRemain: dx, dyRemain: dy }; - }) - - Text("Scroll Area") - .width("100%").height("40%").backgroundColor(0X330000FF) - .fontSize(16).textAlign(TextAlign.Center) - } - } - .width("100%").height("100%") - }.width('100%').height('100%').backgroundColor(0xDCDCDC).padding(20) - } -} -``` -改成onScrollFrameBegin事件参考代码如下: -```ts -@Entry -@Component -struct NestedScroll { - @State listPosition: number = 0; // 0代表滚动到List顶部,1代表中间值,2代表滚动到List底部。 - private arr: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - private scrollerForScroll: Scroller = new Scroller() - private scrollerForList: Scroller = new Scroller() - - build() { - Flex() { - Scroll(this.scrollerForScroll) { - Column() { - Text("Scroll Area") - .width("100%").height("40%").backgroundColor(0X330000FF) - .fontSize(16).textAlign(TextAlign.Center) - .onClick(() => { - this.scrollerForList.scrollToIndex(5) - }) - - List({ space: 20, scroller: this.scrollerForList }) { - ForEach(this.arr, (item) => { - ListItem() { - Text("ListItem" + item) - .width("100%").height("100%").borderRadius(15) - .fontSize(16).textAlign(TextAlign.Center).backgroundColor(Color.White) - }.width("100%").height(100) - }, item => item) - } - .width("100%") - .height("50%") - .edgeEffect(EdgeEffect.None) - .onReachStart(() => { - this.listPosition = 0 - }) - .onReachEnd(() => { - this.listPosition = 2 - }) - .onScrollFrameBegin((offset: number, state: ScrollState) => { - if ((this.listPosition == 0 && offset >= 0) || (this.listPosition == 2 && offset <= 0)) { - this.scrollerForScroll.scrollBy(0, -offset) - return { offsetRemain: 0 } - } - this.listPosition = 1 - return { offsetRemain: offset }; - }) - - Text("Scroll Area") - .width("100%").height("40%").backgroundColor(0X330000FF) - .fontSize(16).textAlign(TextAlign.Center) - } - } - .width("100%").height("100%") - }.width('100%').height('100%').backgroundColor(0xDCDCDC).padding(20) - } -} -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.3/changelogs-usb.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.3/changelogs-usb.md deleted file mode 100644 index 3870a5bc4d..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.3/changelogs-usb.md +++ /dev/null @@ -1,37 +0,0 @@ -# USB服务子系统ChangeLog - -## cl.usb_manager.1 包名变更 - -基于此前版本开发的应用,需修改导入的包名,否则会影响原有业务逻辑。 - -**关键接口/组件变更** - -| 旧包名 | 新包名 | -|------------------ | ------------------- | -| ohos.usbV9.d.ts | ohos.usbManager.d.ts | - -**适配指导** - -开发者导入时将@ohos.usbV9更换为@ohos.usbManager即可。 - -## cl.usb_manager.2 接口参数类型变更 - -基于此前版本开发的应用,需修改参数类型,否则会影响原有业务逻辑。 - -**关键接口/组件变更** - -| 旧类名 | 新类名 | -|---------------| ------------- | -| interface USBConfig | interface USBConfiguration | - -| 旧命名空间 | 新命名空间 | -|---------------| ------------- | -| @namespace usbV9 | @namespace usbManager | - -| 包名 | 旧接口 | 新接口 | -| --------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| ohos.usbManager.d.ts | function setConfiguration(pipe: USBDevicePipe, config: USBConfig): number; | function setConfiguration(pipe: USBDevicePipe, config: USBConfiguration): number; | - -**适配指导** - -调用setConfiguration接口时参数类型USBConfig修改为USBConfiguration即可。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.5/changelogs-telephony.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.5/changelogs-telephony.md deleted file mode 100644 index 4af67bf47d..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.5/changelogs-telephony.md +++ /dev/null @@ -1,130 +0,0 @@ -# 电话子系统ChangeLog - - - -## cl.telephony.radio.1 isNrSupported接口变更 - - -NR是专有名词,需要全部大写。 - -开发者需要根据以下说明对应用进行适配。 - - - -**变更影响** - -基于此前版本开发的应用,需适配变更的js接口,变更前的接口已经不能正常使用了,否则会影响原有功能。 - - - -**关键的接口/组件变更** - -- 涉及接口 - - isNrSupported(): boolean; - isNrSupported(slotId: number): boolean; - -- 变更前: - -```js -function isNrSupported(): boolean; -function isNrSupported(slotId: number): boolean; -``` - -- 变更后: - -```js -function isNRSupported(): boolean; -function isNRSupported(slotId: number): boolean; -``` - - - -**适配指导** - -使用变更后的接口,示例代码如下: - -```js -let result = radio.isNrSupported(); -console.log("Result: "+ result); -``` - - -```js -let slotId = 0; -let result = radio.isNRSupported(slotId); -console.log("Result: "+ result); -``` - - -## cl.telephony.call.2 dial接口变更 - -从API9开始,废弃此接口,改为使用dialCall接口。 - -开发者需要根据以下说明对应用进行适配。 - - -**变更影响** - -该接口删除无法再使用,请使用新增的接口dialCall替换,否则会影响原有功能。 - - -**关键的接口/组件变更** - -- 涉及接口 - - dial(phoneNumber: string, callback: AsyncCallback): void; - dial(phoneNumber: string, options: DialOptions, callback: AsyncCallback): void; - dial(phoneNumber: string, options?: DialOptions): Promise; - -- 变更前: - -```js -function dial(phoneNumber: string, callback: AsyncCallback): void; -function dial(phoneNumber: string, options: DialOptions, callback: AsyncCallback): void; -function dial(phoneNumber: string, options?: DialOptions): Promise; -``` - -- 变更后: - -```js -function dialCall(phoneNumber: string, callback: AsyncCallback): void; -function dialCall(phoneNumber: string, options: DialCallOptions, callback: AsyncCallback): void; -function dialCall(phoneNumber: string, options?: DialCallOptions): Promise; -``` - - - -**适配指导** - -该接口删除无法再使用,请使用新增的接口dialCall替换。 -使用变更后的接口,示例代码如下: - -```js -call.dialCall("138xxxxxxxx", (err, data) => { - console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); -}); -``` - - -```js -call.dialCall("138xxxxxxxx", { - accountId: 0, - videoState: 0, - dialScene: 0, - dialType: 0, -}, (err, data) => { - console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); -}); -``` - - -```js -try { - call.dialCall('138xxxxxxxx'); - console.log(`dialCall success, promise: data->${JSON.stringify(data)}`); -} catch (error) { - console.log(`dialCall fail, promise: err->${JSON.stringify(error)}`); -} -``` - diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-accesstoken.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-accesstoken.md deleted file mode 100644 index 1a8369c1e1..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-accesstoken.md +++ /dev/null @@ -1,33 +0,0 @@ -# 程序访问控制子系统ChangeLog - -OpenHarmony 4.0.3.2 版本相较于OpenHarmony 之前的版本,程序访问控制子系统的API变更如下。 - -## cl.access_token.1 getPermissionUsedRecords命名变更 - -接口getPermissionUsedRecords由于命名规范问题,名称变更为getPermissionUsedRecord。 - -**变更影响** - -接口getPermissionUsedRecords,在4.0.3.3版本及后续版本中无法继续正常使用。 - -**关键的接口/组件变更** - -- 涉及接口 - - function getPermissionUsedRecords - -- 变更前: - - ```ts - function getPermissionUsedRecords - ``` - -- 变更后: - - ```ts - function getPermissionUsedRecord - ``` - -**适配指导** - -请使用getPermissionUsedRecord替换getPermissionUsedRecords \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-security.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-security.md deleted file mode 100644 index af9c4c0d12..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-security.md +++ /dev/null @@ -1,87 +0,0 @@ -# security子系统ChangeLog - -## cl.security.1 ParamsSpec属性名变更为algName。 -结构体ParamsSpec的属性algoName由于API命名统一,名称更改为algName。 - -**变更影响** - -影响已发布的JS接口,对ParamsSpec以及其子类IvParamsSpec,GcmParamsSpec与CcmParamsSpec,使用这些对象作为参数或返回值时,其属性名需要更改为algName。 -应用需要进行适配,才可以在新版本SDK环境正常编译通过。 - -**关键的接口/组件变更** - -修改前的接口原型: - - ```ts -interface ParamsSpec { - /** - * Indicates the algorithm name. Should be set before initialization of a cipher object. - * @type { string } - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ - algoName : string; -} - ``` -修改后的接口原型: - - ```ts -interface ParamsSpec { - /** - * Indicates the algorithm name. Should be set before initialization of a cipher object. - * @type { string } - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ - algName : string; -} - ``` - -**适配指导** - -对ParamsSpec以及其子类IvParamsSpec,GcmParamsSpec与CcmParamsSpec,使用这些对象作为参数或返回值时,其属性名需要从algoName更改为algName。 - ```ts -function genGcmParamsSpec() { - let arr = [0, 0, 0, 0 , 0, 0, 0, 0, 0, 0 , 0, 0]; // 12 bytes - let dataIv = new Uint8Array(arr); - let ivBlob = {data : dataIv}; - - arr = [0, 0, 0, 0 , 0, 0, 0, 0]; // 8 bytes - let dataAad = new Uint8Array(arr); - let aadBlob = {data : dataAad}; - - arr = [0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0]; // 16 bytes - let dataTag = new Uint8Array(arr); - let tagBlob = {data : dataTag}; - let gcmParamsSpec = {iv : ivBlob, aad : aadBlob, authTag : tagBlob, algName : "GcmParamsSpec"}; - return gcmParamsSpec; -} - ``` -详细查看API参考中ParamsSpec对应的接口适配指南: -[加解密算法库框架-ParamsSpec-API参考](../../../application-dev/reference/apis/js-apis-cryptoFramework.md#paramsspec) - -## cl.security.2 ECC密码算法的参数名从ECC512变更为ECC521 - -**变更影响** - -影响已发布的JS接口,接口行为发生变更。 -应用需要进行适配,才可以在新版本SDK环境获取正确结果。 - -**关键的接口/组件变更** -发布的JS接口不变, 传入接口的参数发生变化,由ECC512变化为ECC521,具体可见[加解密算法库框架-ECC密码算法参数参考](../../../application-dev/security/cryptoFramework-overview.md#密钥生成规格),涉及的接口有: - -cryptoFramework.createAsyKeyGenerator - -cryptoFramework.createSign - -cryptoFramework.createVerify - -cryptoFramework.createKeyAgreement - -**适配指导** - -```js -import cryptoFramework from "@ohos.security.cryptoFramework" - -let asyKeyGenerator = cryptoFramework.createAsyKeyGenerator("ECC521"); -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-softbus.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-softbus.md deleted file mode 100644 index 24592f1d46..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-softbus.md +++ /dev/null @@ -1,27 +0,0 @@ -# 软总线子系统ChangeLog - -## cl.softbus.1 IPC接口中unregisterDeathRecipient接口返回值变更,更改为void。 - -unregisterDeathRecipient(recipient: DeathRecipient, flags: number)方法返回值为boolean,更正为void。 - -**变更影响** - -该unregisterDeathRecipient接口如果需要继续使用,建议优先使用removeDeathRecipient(recipient: DeathRecipient, flags: number): boolean方法。 - -**关键的接口/组件变更** - -- 变更前: - -```js - unregisterDeathRecipient(recipient: DeathRecipient, flags: number): boolean -``` - -- 变更后: - -```js - unregisterDeathRecipient(recipient: DeathRecipient, flags: number): void -``` - -**适配指导** - -该unregisterDeathRecipient接口如果需要继续使用,建议优先使用removeDeathRecipient(recipient: DeathRecipient, flags: number): boolean方法。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-web.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-web.md deleted file mode 100644 index da9847a3b5..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-web.md +++ /dev/null @@ -1,467 +0,0 @@ -# web子系统ChangeLog - -OpenHarmony 4.0.3.2 版本相较于OpenHarmony 之前的版本,web的API变更如下。 - -## cl.web.1 HitTestTypeV9命名变更 - -枚举类HitTestTypeV9由于命名规范问题,名称变更为WebHitTestType。 - -**变更影响** - -枚举类HitTestTypeV9,以及使用HitTestTypeV9作为参数或返回值的接口,在4.0.3.2版本及后续版本中无法继续正常使用。 - -**关键的接口/组件变更** - -- 涉及接口 - - enum HitTestTypeV9 - -- 变更前: - - ```ts - enum HitTestTypeV9 - ``` - -- 变更后: - - ```ts - enum WebHitTestType - ``` - -**适配指导** - -请使用WebHitTestType替换HitTestTypeV9。 - -## cl.web.2 HeaderV9命名变更 - -结构体HeaderV9由于命名规范问题,名称变更为WebHeader。 - -**变更影响** - -结构体HeaderV9,以及使用HeaderV9作为参数或返回值的接口,在4.0.3.2版本及后续版本中无法继续正常使用。 - -**关键的接口/组件变更** - -- 涉及接口 - - interface HeaderV9 - -- 变更前: - - ```ts - interface HeaderV9 - ``` - -- 变更后: - - ```ts - interface WebHeader - ``` - -**适配指导** - -请使用WebHeader替换HeaderV9。 - -## cl.web.3 HitTestValue结构体成员类型变更 - -结构体HitTestValue中的成员变量HitTestTypeV9由于命名规范问题,名称变更为WebHitTestType。 - -**变更影响** - -结构体HitTestValue,以及使用HitTestValue作为参数或返回值的接口,在4.0.3.2版本及后续版本中无法继续正常使用。 - -**关键的接口/组件变更** - -- 涉及接口 - - interface HitTestValue - -- 变更前: - - ```ts - interface HitTestValue { - - /** - * Get the hit test type. - * - * @since 9 - */ - type: HitTestTypeV9; - - /** - * Get the hit test extra data. - * - * @since 9 - */ - extra: string; - } - ``` - -- 变更后: - - ```ts - interface HitTestValue { - - /** - * Get the hit test type. - * - * @since 9 - */ - type: WebHitTestType; - - /** - * Get the hit test extra data. - * - * @since 9 - */ - extra: string; - } - ``` - -**适配指导** - -请使用WebHitTestType替换HitTestTypeV9。 - -## cl.web.4 loadUrl参数类型变更 - -loadUrl接口中的参数headers,由于其类型的命名规范问题,类型变更为WebHeader。 - -**变更影响** - -loadUrl接口若使用了headers参数,则在4.0.3.2版本及后续版本中无法继续正常使用。 - -**关键的接口/组件变更** - -- 涉及接口 - - loadUrl(url: string | Resource, headers?: Array): void - -- 变更前: - - ```ts - loadUrl(url: string | Resource, headers?: Array): void - ``` - -- 变更后: - - ```ts - loadUrl(url: string | Resource, headers?: Array): void - ``` - -**适配指导** - -在loadUrl中设置headers参数时,请使用WebHeader类型替换HeaderV9类型。 - -## cl.web.5 getHitTest返回值类型变更 - -getHitTest接口中的返回值,由于其类型的命名规范问题,变更为WebHitTest。 - -**变更影响** - -getHitTest接口,在4.0.3.2版本及后续版本中无法继续正常使用。 - -**关键的接口/组件变更** - -- 涉及接口 - - getHitTest(): HitTestTypeV9 - -- 变更前: - - ```ts - getHitTest(): HitTestTypeV9 - ``` - -- 变更后: - - ```ts - getHitTest(): WebHitTestType - ``` - -**适配指导** - -在使用getHitTest接口的返回值时,请使用WebHitTestType类型替换HitTestTypeV9类型。 - -## cl.web.6 WebMessagePort类迁移 - -WebMessagePort类迁移至@ohos.web.webview.d.ts,并新增错误码抛出。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。 - -**关键的接口/组件变更** - -- 涉及接口 - - postMessageEvent(message: WebMessageEvent): void; - onMessageEvent(callback: (result: string) => void): void; - -- 变更前: - - ```ts - postMessageEvent(message: WebMessageEvent): void; - onMessageEvent(callback: (result: string) => void): void; - ``` - -- 变更后: - - ```ts - postMessageEvent(message: WebMessage): void; - onMessageEvent(callback: (result: WebMessage) => void): void; - ``` - -**适配指导** - -原WebMessagePort类不需要import,现WebMessagePort类使用的是@ohos.web.webview,以下方式import: - - ```ts - import web_webview from '@ohos.web.webview'; - ``` - -## cl.web.7 HitTestValue类迁移 - -HitTestValue类迁移至@ohos.web.webview.d.ts,HitTestValue类变更为接口,getType,getExtra变更为属性。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。 - -**关键的接口/组件变更** - -- 涉及接口 - - getType(): HitTestType; - getExtra(): string; - -- 变更前: - - ```ts - getType(): HitTestType; - getExtra(): string; - ``` - -- 变更后: - - ```ts - type: WebHitTestType; - extra: string; - ``` - -**适配指导** - -原HitTestValue类不需要import,现HitTestValue类使用的是@ohos.web.webview,以下方式import: - - ```ts - import web_webview from '@ohos.web.webview'; - ``` - -## cl.web.8 WebCookie类下api9接口迁移 - -WebCookie类下api9接口迁移,WebCookie类下api9接口迁移到web.webview.webview.WebCookieManager。 -并新增接口错误码抛出。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。 -该类方法变为静态方法。 - -**关键的接口/组件变更** - -- 涉及接口 - - isCookieAllowed(): boolean; - isThirdPartyCookieAllowed(): boolean; - putAcceptCookieEnabled(accept: boolean): void; - putAcceptThirdPartyCookieEnabled(accept: boolean): void; - setCookie(url: string, value: string): boolean; - saveCookieSync(): boolean; - getCookie(url: string): string; - existCookie(): boolean; - deleteEntireCookie(): void; - deleteSessionCookie(): void; - -- 变更前: - - ```ts - isCookieAllowed(): boolean; - isThirdPartyCookieAllowed(): boolean; - putAcceptCookieEnabled(accept: boolean): void; - putAcceptThirdPartyCookieEnabled(accept: boolean): void; - setCookie(url: string, value: string): boolean; - saveCookieSync(): boolean; - getCookie(url: string): string; - existCookie(): boolean; - deleteEntireCookie(): void; - deleteSessionCookie(): void; - ``` - -- 变更后: - - ```ts - static isCookieAllowed(): boolean; - static isThirdPartyCookieAllowed(): boolean; - static putAcceptCookieEnabled(accept: boolean): void; - static putAcceptThirdPartyCookieEnabled(accept: boolean): void; - static setCookie(url: string, value: string): void; - static saveCookieAsync(): Promise; - static saveCookieAsync(callback: AsyncCallback): void; - static getCookie(url: string): string; - static existCookie(): boolean; - static deleteEntireCookie(): void; - static deleteSessionCookie(): void; - ``` - -**适配指导** - -原WebCookie类不需要import,现WebCookieManager使用的是@ohos.web.webview,以下方式import: - - ```ts - import web_webview from '@ohos.web.webview'; - ``` - -## cl.web.9 WebController类下api9接口迁移 - -WebController类下api9接口迁移至web.webview.webview.WebviewController,并新增接口错误码抛出。 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。 -getDefaultUserAgent接口更名为getUserAgent。 - -**关键的接口/组件变更** - -- 涉及接口 - - zoomIn(): boolean; - zoomOut(): boolean; - createWebMessagePorts(): Array; - postMessage(options: { message: WebMessageEvent, uri: string}): void; - getHitTestValue(): HitTestValue; - getWebId(): number; - getDefaultUserAgent(): string; - getTitle(): string; - getPageHeight(): number; - backOrForward(step: number): void; - searchAllAsync(searchString: string): void; - clearMatches(): void; - searchNext(forward: boolean): void; - clearSslCache(): void; - clearClientAuthenticationCache(): void; - getUrl(): string; - -- 变更前: - - ```ts - zoomIn(): boolean; - zoomOut(): boolean; - createWebMessagePorts(): Array; - postMessage(options: { message: WebMessageEvent, uri: string}): void; - getHitTestValue(): HitTestValue; - getWebId(): number; - getDefaultUserAgent(): string; - getTitle(): string; - getPageHeight(): number; - backOrForward(step: number): void; - searchAllAsync(searchString: string): void; - clearMatches(): void; - searchNext(forward: boolean): void; - clearSslCache(): void; - clearClientAuthenticationCache(): void; - getUrl(): string; - ``` - -- 变更后: - - ```ts - zoomIn(): void; - zoomOut(): void; - createWebMessagePorts(): Array; - postMessage(name: string, ports: Array, uri: string): void; - getHitTestValue(): HitTestValue; - getWebId(): number; - getUserAgent(): string; - getTitle(): string; - getPageHeight(): number; - backOrForward(step: number): void; - searchAllAsync(searchString: string): void; - clearMatches(): void; - searchNext(forward: boolean): void; - clearSslCache(): void; - clearClientAuthenticationCache(): void; - getUrl(): string; - ``` - -**适配指导** - -原WebController类不需要import,现WebviewController类使用的是@ohos.web.webview,以下方式import: - - ```ts - import web_webview from '@ohos.web.webview'; - ``` - -## cl.web.10 WebAsyncController类迁移 - -WebAsyncController类下接口迁移至web.webview.webview.WebviewController,并新增接口错误码抛出。 - -**变更影响** - -基于此前版本开发的应用,需注意错误码处理的使用。 - -**关键的接口/组件变更** - -- 涉及接口 - - storeWebArchive(baseName: string, autoName: boolean): Promise; - storeWebArchive(baseName: string, autoName: boolean, callback : AsyncCallback): void; - -- 变更前: - - ```ts - storeWebArchive(baseName: string, autoName: boolean): Promise; - storeWebArchive(baseName: string, autoName: boolean, callback : AsyncCallback): void; - ``` - -- 变更后: - - ```ts - storeWebArchive(baseName: string, autoName: boolean): Promise; - storeWebArchive(baseName: string, autoName: boolean, callback : AsyncCallback): void; - ``` - -**适配指导** - -使用示例: - - ```ts - // xxx.ets - import web_webview from '@ohos.web.webview' - - @Entry - @Component - struct WebComponent { - controller: web_webview.WebviewController = new web_webview.WebviewController(); - - build() { - Column() { - Button('saveWebArchive') - .onClick(() => { - try { - this.controller.storeWebArchive("/data/storage/el2/base/", true, (error, filename) => { - if (error) { - console.info(`save web archive error: ` + JSON.stringify(error)) - return; - } - if (filename != null) { - console.info(`save web archive success: ${filename}`) - } - }); - } catch (error) { - console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); - } - }) - Web({ src: 'www.example.com', controller: this.controller }) - } - } - } - ``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-account_os_account.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-account_os_account.md deleted file mode 100644 index ab3394f4e1..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-account_os_account.md +++ /dev/null @@ -1,391 +0,0 @@ -# 帐号子系统ChangeLog - -OpenHarmony4.0.3.2版本相较于OpenHarmony之前的版本,帐号模块的API变更如下。 - -## cl.account_os_account.1 应用帐号isAccountRemovable命名变更 - -类Authenticator中的成员函数isAccountRemovable由于命名不统一问题,名称变更为checkAccountRemovable。 - -**变更影响** - -类Authenticator中的成员函数isAccountRemovable,在4.0.3.2版本及后续版本中无法继续正常使用,由checkAccountRemovable代替。 - -**关键的接口/组件变更** - -- 涉及接口 - ```ts - class Authenticator { - ... - isAccountRemovable - ... - } - ``` -- 变更前: - - ```ts - class Authenticator { - ... - /** - * Checks whether the specified account can be removed. - * @param name Indicates the account name. - * @param callback Indicates the authenticator callback. - * @returns void. - * @since 9 - */ - isAccountRemovable(name: string, callback: AuthCallback): void; - ... - } - ``` - -- 变更后: - - ```ts - class Authenticator { - ... - /** - * Checks whether the specified account can be removed. - * @param name Indicates the account name. - * @param callback Indicates the authenticator callback. - * @returns void. - * @since 9 - */ - checkAccountRemovable(name: string, callback: AuthCallback): void; - ... - } - ``` - -## cl.account_os_account.2 系统帐号checkConstraintEnabled命名变更 - -checkConstraintEnabled由于命名不统一问题,名称变更为checkOsAccountConstraintEnabled。 - -**变更影响** - -checkConstraintEnabled接口,在4.0.3.2版本及后续版本中无法继续正常使用,由checkOsAccountConstraintEnabled代替。 - -**关键的接口/组件变更** - -- 涉及接口 -``` -interface AccountManager { - ... - checkConstraintEnabled - ... -} -``` - -- 变更前: - - ```ts - checkConstraintEnabled(localId: number, constraint: string, callback: AsyncCallback): void; - checkConstraintEnabled(localId: number, constraint: string): Promise; - ``` - -- 变更后: - - ```ts - checkOsAccountConstraintEnabled(localId: number, constraint: string, callback: AsyncCallback): void; - checkOsAccountConstraintEnabled(localId: number, constraint: string): Promise; - ``` - -## cl.account_os_account.3 系统帐号checkOsAccountConstraintEnabled权限场景变更 - -checkOsAccountConstraintEnabled接口的权限管控新增可选权限:ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS。 - -**变更影响** - -在4.0.3.2版本及后续版本中,应用申请ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS权限亦可调用checkOsAccountConstraintEnabled, -切此前版本申请ohos.permission.MANAGE_LOCAL_ACCOUNTS权限的不影响使用 - -**关键的接口/组件变更** - -- 涉及接口 -``` -interface AccountManager { - ... - checkOsAccountConstraintEnabled - ... -} -``` - -- 变更前: - - ```ts - ... - * @permission ohos.permission.MANAGE_LOCAL_ACCOUNTS - ... - checkOsAccountConstraintEnabled(localId: number, constraint: string, callback: AsyncCallback): void; - checkOsAccountConstraintEnabled(localId: number, constraint: string): Promise; - ``` - -- 变更后: - - ```ts - ... - * @permission ohos.permission.MANAGE_LOCAL_ACCOUNTS or ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS - ... - checkOsAccountConstraintEnabled(localId: number, constraint: string, callback: AsyncCallback): void; - checkOsAccountConstraintEnabled(localId: number, constraint: string): Promise; - ``` - -## cl.account_os_account.4 系统帐号queryOsAccountLocalIdFromProcessd命名变更 - -queryOsAccountLocalIdFromProcess由于命名不统一问题,名称变更为getOsAccountLocalId。 - -**变更影响** - -queryOsAccountLocalIdFromProcess接口,在4.0.3.2版本及后续版本中无法继续正常使用,由getOsAccountLocalId代替。 - -**关键的接口/组件变更** - -- 涉及接口 -``` -interface AccountManager { - ... - queryOsAccountLocalIdFromProcess - ... -} -``` -- 变更前: - - ```ts - queryOsAccountLocalIdFromProcess(callback: AsyncCallback): void; - queryOsAccountLocalIdFromProcess(): Promise; - ``` - -- 变更后: - - ```ts - getOsAccountLocalId(callback: AsyncCallback): void; - getOsAccountLocalId(): Promise; - ``` - -## cl.account_os_account.5 系统帐号queryOsAccountLocalIdFromUid命名变更 - -queryOsAccountLocalIdFromUid由于命名不统一问题,名称变更为getOsAccountLocalIdForUid。 - -**变更影响** - -queryOsAccountLocalIdFromUid接口,在4.0.3.2版本及后续版本中无法继续正常使用,由getOsAccountLocalIdForUid代替。 - -**关键的接口/组件变更** - -- 涉及接口 -``` -interface AccountManager { - ... - queryOsAccountLocalIdFromUid - ... -} -``` - -- 变更前: - - ```ts - queryOsAccountLocalIdFromUid(uid: number, callback: AsyncCallback): void; - queryOsAccountLocalIdFromUid(uid: number): Promise; - ``` - -- 变更后: - - ```ts - getOsAccountLocalIdForUid(uid: number, callback: AsyncCallback): void; - getOsAccountLocalIdForUid(uid: number): Promise; - ``` - -## cl.account_os_account.6 系统帐号queryOsAccountLocalIdFromDomain命名变更 - -queryOsAccountLocalIdFromDomain由于命名不统一问题,名称变更为getOsAccountLocalIdForDomain。 - -**变更影响** - -queryOsAccountLocalIdFromDomain接口,在4.0.3.2版本及后续版本中无法继续正常使用,由getOsAccountLocalIdForDomain代替。 - -**关键的接口/组件变更** - -- 涉及接口 -``` -interface AccountManager { - ... - queryOsAccountLocalIdFromDomain - ... -} -``` - -- 变更前: - - ```ts - queryOsAccountLocalIdFromDomain(domainInfo: DomainAccountInfo, callback: AsyncCallback): void; - queryOsAccountLocalIdFromDomain(domainInfo: DomainAccountInfo): Promise; - ``` - -- 变更后: - - ```ts - getOsAccountLocalIdForDomain(domainInfo: DomainAccountInfo, callback: AsyncCallback): void; - getOsAccountLocalIdForDomain(domainInfo: DomainAccountInfo): Promise; - ``` - -## cl.account_os_account.7 系统帐号getActivatedOsAccountIds命名变更 - -getActivatedOsAccountIds由于命名不统一问题,名称变更为getActivatedOsAccountLocalIds。 - -**变更影响** - -getActivatedOsAccountIds接口,在4.0.3.2版本及后续版本中无法继续正常使用,由getActivatedOsAccountLocalIds代替。 - -**关键的接口/组件变更** - -- 涉及接口 -``` -interface AccountManager { - ... - getActivatedOsAccountIds - ... -} -``` - -- 变更前: - - ```ts - getActivatedOsAccountIds(callback: AsyncCallback>): void; - getActivatedOsAccountIds(): Promise>; - ``` - -- 变更后: - - ```ts - getActivatedOsAccountLocalIds(callback: AsyncCallback>): void; - getActivatedOsAccountLocalIds(): Promise>; - ``` - -## cl.account_os_account.8 系统帐号queryOsAccountLocalIdBySerialNumber命名变更 - -queryOsAccountLocalIdBySerialNumber由于命名不统一问题,名称变更为getOsAccountLocalIdForSerialNumber。 - -**变更影响** - -queryOsAccountLocalIdBySerialNumber接口,在4.0.3.2版本及后续版本中无法继续正常使用,由getOsAccountLocalIdForSerialNumber代替。 - -**关键的接口/组件变更** - -- 涉及接口 -``` -interface AccountManager { - ... - queryOsAccountLocalIdBySerialNumber - ... -} -``` - -- 变更前: - - ```ts - queryOsAccountLocalIdBySerialNumber(serialNumber: number, callback: AsyncCallback): void; - queryOsAccountLocalIdBySerialNumber(serialNumber: number): Promise; - ``` - -- 变更后: - - ```ts - getOsAccountLocalIdForSerialNumber(serialNumber: number, callback: AsyncCallback): void; - getOsAccountLocalIdForSerialNumber(serialNumber: number): Promise; - ``` - -## cl.account_os_account.9 系统帐号querySerialNumberByOsAccountLocalId命名变更 - -querySerialNumberByOsAccountLocalId由于命名不统一问题,名称变更为getSerialNumberForOsAccountLocalId。 - -**变更影响** - -querySerialNumberByOsAccountLocalId接口,在4.0.3.2版本及后续版本中无法继续正常使用,由getSerialNumberForOsAccountLocalId代替。 - -**关键的接口/组件变更** - -- 涉及接口 -``` -interface AccountManager { - ... - querySerialNumberByOsAccountLocalId - ... -} -``` - -- 变更前: - - ```ts - querySerialNumberByOsAccountLocalId(localId: number, callback: AsyncCallback): void; - querySerialNumberByOsAccountLocalId(localId: number): Promise; - ``` - -- 变更后: - - ```ts - getSerialNumberForOsAccountLocalId(localId: number, callback: AsyncCallback): void; - getSerialNumberForOsAccountLocalId(localId: number): Promise; - ``` - -## cl.account_os_account.10 系统帐号getBundleIdFromUid命名变更 - -getBundleIdFromUid由于命名不统一问题,名称变更为getBundleIdForUid。 - -**变更影响** - -getBundleIdFromUid接口,在4.0.3.2版本及后续版本中无法继续正常使用,由getBundleIdForUid代替。 - -**关键的接口/组件变更** - -- 涉及接口 -``` -interface AccountManager { - ... - getBundleIdFromUid - ... -} -``` - -- 变更前: - - ```ts - getBundleIdFromUid(uid: number, callback: AsyncCallback): void; - getBundleIdFromUid(uid: number): Promise; - ``` - -- 变更后: - - ```ts - getBundleIdForUid(uid: number, callback: AsyncCallback): void; - getBundleIdForUid(uid: number): Promise; - ``` - -## cl.account_os_account.11 系统帐号queryOsAccountConstraintSourceTypes命名变更 - -queryOsAccountConstraintSourceTypes由于命名不统一问题,名称变更为getOsAccountConstraintSourceTypes。 - -**变更影响** - -queryOsAccountConstraintSourceTypes接口,在4.0.3.2版本及后续版本中无法继续正常使用,由getOsAccountConstraintSourceTypes代替。 - -**关键的接口/组件变更** - -- 涉及接口 -``` -interface AccountManager { - ... - queryOsAccountConstraintSourceTypes - ... -} -``` - -- 变更前: - - ```ts - queryOsAccountConstraintSourceTypes(localId: number, constraint: string, callback: AsyncCallback>): void; - queryOsAccountConstraintSourceTypes(localId: number, constraint: string): Promise>; - ``` - -- 变更后: - - ```ts - getOsAccountConstraintSourceTypes(localId: number, constraint: string, callback: AsyncCallback>): void; - getOsAccountConstraintSourceTypes(localId: number, constraint: string): Promise>; - ``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-arkui.md deleted file mode 100644 index 69a442464b..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-arkui.md +++ /dev/null @@ -1,85 +0,0 @@ -# arkui子系统ChangeLog - -## cl.arkui.1 getInspectorTree接口返回值从string修改为Object。 - -**变更影响** - -4.0.3.2之前使用getInspectorTree接口的代码需要适配 - -**关键的接口/组件变更** - -getInspectorTree接口返回值从string修改为Object - -**适配指导** - -将getInspectorTree返回值作为string使用的代码需要修改,比如以下示例代码: - -```typescript -console.info(getInspectorTree()) -``` - -需要修改成 - -```typescript -console.info(JSON.stringify(getInspectorTree())) -``` - -## cl.arkui.2 废弃GridItem的forceRebuild属性 - -**变更影响** - -无,该属性无作用 - -**关键的接口/组件变更** - -GridItem的forceRebuild属性废弃 - -**适配指导** - -如有使用可以直接删除,不影响GridItem功能 - - -## cl.arkui.1 API9 router接口整改。 - -ohos.router中的enableAlertBeforeBackPage、enableBackPageAlert、disableAlertBeforeBackPage接口名不利于开发者理解,更改为showAlertBeforeBackPage、hideAlertBeforeBackPage。 - -**变更影响** - -router的enableAlertBeforeBackPage、enableBackPageAlert接口需替换为showAlertBeforeBackPage; - -disableAlertBeforeBackPage接口需替换为hideAlertBeforeBackPage。 - -**关键的接口/组件变更** - -涉及router.enableAlertBeforeBackPage, router.enableBackPageAlert, router.disableAlertBeforeBackPage。 - -* 变更前: - -```ts -router.enableAlertBeforeBackPage(); -router.enableBackPageAlert() -``` - -* 变更后: - -```ts -router.showAlertBeforeBackPage() -``` - -* 变更前: - -```ts -router.disableAlertBeforeBackPage() -``` - -* 变更后: - -```ts -router.hideAlertBeforeBackPage() -``` - -**适配指导** - -将enableAlertBeforeBackPage、enableBackPageAlert替换为showAlertBeforeBackPage; - -将disableAlertBeforeBackPage替换为hideAlertBeforeBackPage。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-bundlemanager.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-bundlemanager.md deleted file mode 100644 index fce3cada2d..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-bundlemanager.md +++ /dev/null @@ -1,27 +0,0 @@ -# 包管理子系统ChangeLog - -## cl.bundlemanager.1 包管理删除@ohos.bundle.bundleManager.d.ts中的getAbilityIcon接口,可以使用@ohos.resourceManager.d.ts中的getMediaContent替换。 - -包管理删除[@ohos.bundle.bundleManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.bundleManager.d.ts)中的getAbilityIcon接口,可以使用[@ohos.resourceManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.resourceManager.d.ts)中的getMediaContent替换。 - -**变更影响**
-使用之前已发布的API 9各beta版本且使用到了getAbilityIcon接口的,需要改为使用getMediaContent接口。 - -**关键的接口/组件变更**
-删除@ohos.bundle.bundleManager.d.ts中的getAbilityIcon接口。 - -**适配指导**
-使用@ohos.bundle.bundleManager.d.ts下面的getAbilityIcon,需要修改为@ohos.resourceManager.d.ts中的getMediaContent。需要提前获取到图标的资源ID值,可参考该接口的[使用指导](../../../application-dev/reference/apis/js-apis-resource-manager.md#getmediacontent9)。 - -## cl.bundlemanager.2 包管理新增202错误码 - -包管理系统新增202错误码,非系统应用调用api9及之后包管理提供的系统api,将返回错误202。 - -**变更影响**
-非系统应用调用api9及之后包管理提供的系统api,将返回错误202。 - -**关键的接口/组件变更**
-所有包管理提供的api9及之后的系统api,非系统应用调用将返回错误202。 - -**适配指导**
-不影响已开发的程序,无需适配。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-ces.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-ces.md deleted file mode 100644 index 2b9c312180..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-ces.md +++ /dev/null @@ -1,55 +0,0 @@ -# 公共事件子系统ChangeLog - -## cl.ces.1 ohos.commonEvent中Support事件枚举值修改。 - -**变更影响** - -4.0.3.2之前使用ohos.commonEvent的下面的公共事件需要修改适配。 - -| 公共事件名 | -| ----------------------------------- | -| COMMON_EVENT_PACKAGE_CACHE_CLEARED | -| COMMON_EVENT_USB_STATE | -| COMMON_EVENT_USB_PORT_CHANGED | -| COMMON_EVENT_VOLUME_REMOVED | -| COMMON_EVENT_VOLUME_UNMOUNTED | -| COMMON_EVENT_VOLUME_MOUNTED | -| COMMON_EVENT_VOLUME_BAD_REMOVAL | -| COMMON_EVENT_VOLUME_EJECT | -| COMMON_EVENT_SLOT_CHANGE | -| COMMON_EVENT_SPN_INFO_CHANGED | -| COMMON_EVENT_QUICK_FIX_APPLY_RESULT | - -**关键的接口/组件变更** - -下面修改的ohos.commonEvent中的公共事件替换到ohos.commonEventManager中。 - -| 模块 | ohos.commonEvent | ohos.commonEventManager | -| ---------- | ----------------------------------- | ----------------------------------- | -| | COMMON_EVENT_PACKAGE_CACHE_CLEARED | COMMON_EVENT_PACKAGE_CACHE_CLEARED | -| | COMMON_EVENT_USB_STATE | COMMON_EVENT_USB_STATE | -| | COMMON_EVENT_USB_PORT_CHANGED | COMMON_EVENT_USB_PORT_CHANGED | -| | COMMON_EVENT_VOLUME_REMOVED | COMMON_EVENT_VOLUME_REMOVED | -| | COMMON_EVENT_VOLUME_UNMOUNTED | COMMON_EVENT_VOLUME_UNMOUNTED | -| **事件名** | COMMON_EVENT_VOLUME_MOUNTED | COMMON_EVENT_VOLUME_MOUNTED | -| | COMMON_EVENT_VOLUME_BAD_REMOVAL | COMMON_EVENT_VOLUME_BAD_REMOVAL | -| | COMMON_EVENT_VOLUME_EJECT | COMMON_EVENT_VOLUME_EJECT | -| | COMMON_EVENT_SLOT_CHANGE | COMMON_EVENT_SLOT_CHANGE | -| | COMMON_EVENT_SPN_INFO_CHANGED | COMMON_EVENT_SPN_INFO_CHANGED | -| | COMMON_EVENT_QUICK_FIX_APPLY_RESULT | COMMON_EVENT_QUICK_FIX_APPLY_RESULT | - -**适配指导** - -将调用ohos.commonEvent中的事件替换成调用@ohos.commonEventManager,比如以下示例代码: - -```typescript -import commonEvent from '@ohos.commonEvent'; -let event: string = commonEvent.Support.COMMON_EVENT_PACKAGE_CACHE_CLEARED; -``` - -需要修改成 - -```typescript -import commonEventManager from '@ohos.commonEventManager'; -let event: string = commonEventManager.Support.COMMON_EVENT_PACKAGE_CACHE_CLEARED; -``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-filemanagement.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-filemanagement.md deleted file mode 100644 index 6aa36f7193..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-filemanagement.md +++ /dev/null @@ -1,23 +0,0 @@ -# 文件管理子系统ChangeLog - -## cl.filemanagement.1 Filter类型模块变更 - -**变更影响** - -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现Filter类型变更至@ohos.file.fs模块下。Filter类型具体属性不变。 - -**关键接口/组件变更** - -原Filter类型在模块@ohos.fileio下,通过以下方式import: - -```js -import Filter from '@ohos.fileio'; -``` - -**适配指导** - -现Filter类型在模块@ohos.file.fs,通过以下方式import: - -```js -import Filter from '@ohos.file.fs'; -``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-pasteboard.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-pasteboard.md deleted file mode 100644 index 29f562ed9c..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-pasteboard.md +++ /dev/null @@ -1,66 +0,0 @@ -# 剪贴板子系统ChangeLog - -OpenHarmony 4.0.3.2 版本相较于OpenHarmony 之前的版本,剪贴板子系统的API变更如下。 - -## cl.pasteboard.1 convertToTextV9接口变更 - -接口convertToTextV9由于命名规范和接口返回方式问题,名称变更为toPlainText(),返回方式改为同步方式。 - -**变更影响** - -4.0.3.3版本之前使用接口convertToTextV9开发的应用,在4.0.3.3版本及后续版本中无法继续正常使用。 - -**关键的接口/组件变更** - -- 涉及接口 - - function convertToTextV9 - -- 变更前: - - ```ts - convertToTextV9(callback: AsyncCallback): void; - convertToTextV9(): Promise; - ``` - -- 变更后: - - ```ts - toPlainText(): string; - ``` -变更前: - -**适配指导** - -请使用toPlainText替换convertToTextV9,并注意接口返回方式。 - -## cl.pasteboard.2 ShareOption属性名称变更,删除了未支持的属性 - -ShareOption枚举命名从**大驼峰**改成了**全大写**。 - -**变更影响** - -4.0.3.3版本之前使用InApp/LocalDevice/CrossDevice类型开发的应用,在4.0.3.3版本及后续版本中无法继续正常使用。 - -**关键接口/组件变更** - -ShareOption9+ - -变更前: -| 名称 | 值 | 说明 | -| ---- |---|-------------------| -| InApp | 0 | 表示仅允许同应用内粘贴。 | -| LocalDevice | 1 | 表示允许在此设备中任何应用内粘贴。 | -| CrossDevice | 2 | 表示允许跨设备在任何应用内粘贴。 | - - -变更后: -| 名称 | 值 | 说明 | -| ---- |---|-------------------| -| INAPP | 0 | 表示仅允许同应用内粘贴。 | -| LOCALDEVICE | 1 | 表示允许在此设备中任何应用内粘贴。 | -| CROSSDEVICE | 2 | 表示允许跨设备在任何应用内粘贴。 | - -**适配指导** - -按新的语义进行适配。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-power.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-power.md deleted file mode 100644 index adabd439b9..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-power.md +++ /dev/null @@ -1,82 +0,0 @@ -# 电源子系统ChangeLog - -## cl.powermgr.1 CommonEventBatteryChangedCode接口变更 - -[ @ohos.batteryInfo](../../../application-dev/reference/apis/js-apis-battery-info.md) (电量信息)中的CommonEventBatteryChangedCode枚举类进行如下变更: - -- 类名称变更为CommonEventBatteryChangedKey; -- 删除EXTRA_MAX_CURRENT、EXTRA_MAX_VOLTAGE和EXTRA_CHARGE_COUNTER; -- 枚举值类型从数值变更为字符串。 - -#### 变更影响 - -基于此前版本开发的应用,需适配接口的变更,否则会影响原有业务逻辑。 - -#### 关键的接口/组件变更 - -变更前: - -| 名称 | 值 | 说明 | -| -------------------- | ---- | -------------------------------------------------- | -| EXTRA_SOC | 0 | 表示剩余电池电量百分比的查询键。 | -| EXTRA_VOLTAGE | 1 | 表示当前设备电池电压的查询键。 | -| EXTRA_TEMPERATURE | 2 | 表示当前设备电池温度的查询键。 | -| EXTRA_HEALTH_STATE | 3 | 表示当前设备电池健康状态的查询键。 | -| EXTRA_PLUGGED_TYPE | 4 | 表示当前设备连接的充电器类型的查询键。 | -| EXTRA_MAX_CURRENT | 5 | 表示当前设备电池最大电流的查询键。 | -| EXTRA_MAX_VOLTAGE | 6 | 表示当前设备电池最大电压的查询键。 | -| EXTRA_CHARGE_STATE | 7 | 表示当前设备电池充电状态的查询键。 | -| EXTRA_CHARGE_COUNTER | 8 | 表示当前设备电池充电次数的查询键。 | -| EXTRA_PRESENT | 9 | 表示当前设备是否支持电池或者电池是否在位的查询键。 | -| EXTRA_TECHNOLOGY | 10 | 表示当前设备电池技术型号的查询键。 | -| EXTRA_CAPACITY_LEVEL | 11 | 表示当前设备电池电量等级的查询键。 | - -变更后: - -| 名称 | 值 | 说明 | -| -------------------- | --------------- | -------------------------------------------------- | -| EXTRA_SOC | "soc" | 表示剩余电池电量百分比的查询键。 | -| EXTRA_CHARGE_STATE | "chargeState" | 表示当前设备电池充电状态的查询键。 | -| EXTRA_HEALTH_STATE | "healthState" | 表示当前设备电池健康状态的查询键。 | -| EXTRA_PLUGGED_TYPE | "pluggedType" | 表示当前设备连接的充电器类型的查询键。 | -| EXTRA_VOLTAGE | "voltage" | 表示当前设备电池电压的查询键。 | -| EXTRA_TECHNOLOGY | "technology" | 表示当前设备电池技术型号的查询键。 | -| EXTRA_TEMPERATURE | "temperature" | 表示当前设备电池温度的查询键。 | -| EXTRA_PRESENT | "present" | 表示当前设备是否支持电池或者电池是否在位的查询键。 | -| EXTRA_CAPACITY_LEVEL | "capacityLevel" | 表示当前设备电池电量等级的查询键。 | - -#### 适配指导 - -请参考[@ohos.batteryInfo](../../../application-dev/reference/apis/js-apis-battery-info.md) (电量信息)接口的API参考。 -## cl.powermgr.2 estimatedRemainingChargeTime系统接口变更 - -[@ohos.batteryInfo](../../../application-dev/reference/apis/js-apis-battery-info.md) (电量信息)中的estimatedRemainingChargeTime属性变更为系统接口。 - -#### 变更影响 - -基于此前版本开发的应用,需适配新的系统权限,否则会影响原有业务逻辑。 - -#### 适配指导 - -请参考[@ohos.batteryInfo](../../../application-dev/reference/apis/js-apis-battery-info.md) (电量信息)接口的API参考。 - -## cl.powermgr.3 系统公共事件行为变更 - -电量信息通过[@ohos.commonEventManager (公共事件模块)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-commonEventManager.md)提供了如下几种系统公共事件: - -- COMMON_EVENT_BATTERY_LOW,表示电池电量低的的公共事件的动作,包含剩余电池电量百分比信息; -- COMMON_EVENT_BATTERY_OKAY,表示电池电量正常的公共事件的动作,包含剩余电池电量百分比信息; -- COMMON_EVENT_POWER_CONNECTED,表示设备连接到外部电源的公共事件的动作,包含设备连接的电源类型信息; -- COMMON_EVENT_POWER_DISCONNECTED,表示设备与外部电源断开的公共事件的动作,包含设备连接的电源类型信息; -- COMMON_EVENT_CHARGING,表示系统开始为电池充电的公共事件的动作,包含充电状态信息; -- COMMON_EVENT_DISCHARGING,表示系统停止为电池充电的公共事件的动作,包含充电状态信息。 - -这几种公共事件的数据的获取方式从CommonEventData.data变更为CommonEventData.code。 - -#### 变更影响 - -基于此前版本开发的应用,需适配新的数据获取方式,否则会影响原有业务逻辑。 - -#### 适配指导 - -请参考[ @ohos.commonEventManager (公共事件模块)](../../../application-dev/reference/apis/js-apis-commonEventManager.md)接口的API参考。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-sensor.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-sensor.md deleted file mode 100644 index 1b38e923b6..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-sensor.md +++ /dev/null @@ -1,49 +0,0 @@ -# 泛sensor子系统ChangeLog - -## cl.ability.1 Sensor接口中venderName属性名称变更,更改为vendorName。 - -venderName为错别字,更正为vendorName。 - -**变更影响** - -该venderName属性无法再使用,请使用新增属性vendorName替换。 - -**关键的接口/组件变更** - -- 变更前: - -```js - interface Sensor { - sensorName:string; /**< Sensor name */ - venderName:string; /**< Sensor vendor version */ - firmwareVersion:string; /**< Sensor firmware version */ - hardwareVersion:string; /**< Sensor hardware version */ - sensorId:number; /**< Sensor type ID, {@code SensorType} */ - maxRange:number; /**< Maximum measurement range of the sensor */ - minSamplePeriod:number; /**< Minimum sample period allowed, in ns */ - maxSamplePeriod:number; /**< maximum sample period allowed, in ns */ - precision:number; /**< Sensor accuracy */ - power:number; /**< Sensor power */ - } -``` - -- 变更后: - -```js - interface Sensor { - sensorName:string; /**< Sensor name */ - vendorName:string; /**< Sensor vendor version */ - firmwareVersion:string; /**< Sensor firmware version */ - hardwareVersion:string; /**< Sensor hardware version */ - sensorId:number; /**< Sensor type ID, {@code SensorType} */ - maxRange:number; /**< Maximum measurement range of the sensor */ - minSamplePeriod:number; /**< Minimum sample period allowed, in ns */ - maxSamplePeriod:number; /**< maximum sample period allowed, in ns */ - precision:number; /**< Sensor accuracy */ - power:number; /**< Sensor power */ - } -``` - -**适配指导** - -该venderName属性删除无法再使用,请使用新增属性vendorName替换。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-startup.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-startup.md deleted file mode 100755 index 99fc2b75b3..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelogs-startup.md +++ /dev/null @@ -1,16 +0,0 @@ -# 启动子系统JS API变更ChangeLog - -## cl.startup.1 包名变更 - -**变更影响** - -原有的@ohos.systemParameterV9包名将被删除无法再使用,需更换为新的@ohos.systemParameterEnhance包名。 - -**适配指导** - -原有的@ohos.systemParameterV9需要变更为@ohos.systemParameterEnhance,包内接口都不变,示例: - -```js -import @ohos.systemParameterEnhance -``` - diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.3/changelogs-bundlemanager.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.3/changelogs-bundlemanager.md deleted file mode 100644 index 2c2c73cc97..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.3/changelogs-bundlemanager.md +++ /dev/null @@ -1,111 +0,0 @@ -# 包管理子系统ChangeLog -## cl.bundlemanager.1 包管理底层能力变更,仅支持系统资源HAP自定义权限,其它HAP均不支持自定义权限。 - -仅支持系统资源HAP自定义权限,其它HAP均不支持自定义权限。包管理在解析HAP时,仅支持解析资源HAP(包名为:ohos.global.systemres)的配置文件中的definePermissions字段,该字段用来定义权限。其它HAP中配置的definePermissions字段将不会解析。 -如果有应用需要自定义权限,可以在资源HAP的[配置文件](https://gitee.com/openharmony/utils_system_resources/blob/master/systemres/main/config.json)中definePermissions字段下面新增定义权限。格式可参考[定义权限](../../../application-dev/quick-start/module-structure.md#definepermissions对象内部结构)。 - - -**变更影响**
-升级新版本镜像后,应用自定义的权限将不会生效,使用方在申请该权限时,会授权失败。 - -**关键的接口/组件变更**
-包管理底层能力变更,仅支持系统资源HAP自定义权限,其它HAP均不支持自定义权限。 - -**适配指导**
-如果有应用需要自定义权限,可以在资源HAP的[配置文件](https://gitee.com/openharmony/utils_system_resources/blob/master/systemres/main/config.json)中definePermissions字段下面新增定义权限。格式可参考[定义权限](../../../application-dev/quick-start/module-structure.md#definepermissions对象内部结构)。 - -## cl.bundlemanager.2 包管理二级模块文件名称变更,修改为文件内对应的接口名称 - -包管理二级模块文件名称变更,修改为文件内对应的接口名称,变更文件如下: - -| 原文件名称 |变更后文件名称 | -|----|----| -| bundleManager/abilityInfo.d.ts | bundleManager/AbilityInfo.d.ts | -| bundleManager/applicationInfo.d.ts | bundleManager/ApplicationInfo.d.ts | -| bundleManager/bundleInfo.d.ts | bundleManager/BundleInfo.d.ts | -| bundleManager/dispatchInfo.d.ts | bundleManager/DispatchInfo.d.ts | -| bundleManager/elementName.d.ts | bundleManager/ElementName.d.ts | -| bundleManager/extensionAbilityInfo.d.ts | bundleManager/ExtensionAbilityInfo.d.ts | -| bundleManager/hapModuleInfo.d.ts | bundleManager/HapModuleInfo.d.ts | -| bundleManager/launcherAbilityInfo.d.ts | bundleManager/LauncherAbilityInfo.d.ts | -| bundleManager/metadata.d.ts | bundleManager/Metadata.d.ts | -| bundleManager/packInfo.d.ts | bundleManager/BundlePackInfo.d.ts | -| bundleManager/permissionDef.d.ts | bundleManager/PermissionDef.d.ts | -| bundleManager/remoteAbilityInfo.d.ts | bundleManager/RemoteAbilityInfo.d.ts | -| bundleManager/shortcutInfo.d.ts | bundleManager/ShortcutInfo.d.ts | - -除了免安装相关的BundlePackInfo文件名称增加了Bundle,其余文件名称均是修改为大写开头。 - -**变更影响**
-仅修改二级模块文件名称,不会影响一级模块的使用。在使用之前已发布的API 9各beta版本时,如果在ts文件中直接导入了bundleManager下面二级模块接口的,IDE中编译报错的话,需要修改导入的文件名称。 - -**关键的接口/组件变更**
-变更bundleManager文件夹下面的d.ts名称,修改为文件中的接口名称。 - -**适配指导**
-使用新的sdk后,正常情况下应用无需适配该变更。如果在应用中直接导入了bundleManager文件夹下面的文件,则需要修改导入的文件名称。可以按照如下的修改方式: - -**修改前:** -```ts -import {AbilityInfo} from 'bundleManger/abilityInfo'; -import {ExtensionAbilityInfo} from 'bundleManger/extensionAbilityInfo'; -import {BundlePackInfo} from 'bundleManger/packInfo'; -``` -**修改后:** -```ts -import {AbilityInfo} from 'bundleManger/AbilityInfo'; -import {ExtensionAbilityInfo} from 'bundleManger/ExtensionAbilityInfo'; -import {BundlePackInfo} from 'bundleManger/BundlePackInfo'; -``` - -## cl.bundlemanager.3 包管理LaunchType枚举类型名称变更,由STANDARD修改为MULTITON,枚举值不变。 - -包管理[LaunchType](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.bundleManager.d.ts)枚举类型变更,由STANDARD修改为MULTITON,枚举值不变,表示多实例类型。 - -**变更影响**
-使用之前已发布的API 9各beta版本且使用到了LaunchType.STANDARD的,需要改为使用LaunchType.MULTITON接口。 - -**关键的接口/组件变更**
-LaunchType枚举类型名称变更,由LaunchType.STANDARD修改为LaunchType.MULTITON。 - -**适配指导**
-由LaunchType.STANDARD修改为LaunchType.MULTITON。 - -## cl.bundlemanager.4 包管理AbilityInfo结构体中isVisible字段修改为exported,类型不变。 - -包管理[AbilityInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/AbilityInfo.d.ts)结构体中isVisible字段修改为exported,类型不变,表示当前ability是否支持导出,被其他的ability使用。 - -**变更影响**
-使用之前已发布的API 9各beta版本且使用到了isVisible的,需要改为使用exported。 - -**关键的接口/组件变更**
-包管理[AbilityInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/AbilityInfo.d.ts)结构体中isVisible字段修改为exported,类型不变。 - -**适配指导**
-由isVisible修改为exported。 - -## cl.bundlemanager.5 包管理ExtensionAbilityInfo结构体中isVisible字段修改为exported,类型不变。 - -包管理[ExtensionAbilityInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ExtensionAbilityInfo.d.ts)结构体中isVisible字段修改为exported,类型不变,表示当前ability是否支持导出,被其他的ability使用。 - -**变更影响**
-使用之前已发布的API 9各beta版本且使用到了isVisible的,需要改为使用exported。 - -**关键的接口/组件变更**
-包管理[ExtensionAbilityInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ExtensionAbilityInfo.d.ts)结构体中isVisible字段修改为exported,类型不变。 - -**适配指导**
-由isVisible修改为exported。 - -## cl.bundlemanager.6 包管理ModuleAbilityInfo结构体中visible字段修改为exported,类型不变。 - -包管理[ModuleAbilityInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/BundlePackInfo.d.ts)结构体中visible字段修改为exported,类型不变,表示当前ability是否支持导出,被其他的ability使用。 - -**变更影响**
-使用之前已发布的API 9各beta版本且使用到了visible的,需要改为使用exported。 - -**关键的接口/组件变更**
-包管理[ModuleAbilityInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/BundlePackInfo.d.ts)结构体中visible字段修改为exported,类型不变。 - -**适配指导**
-由visible修改为exported。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.1/changelog-resourceschedule.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.1/changelog-resourceschedule.md deleted file mode 100644 index 2232abd43b..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.1/changelog-resourceschedule.md +++ /dev/null @@ -1,32 +0,0 @@ -# 资源调度子系统ChangeLog - -## cl.resourceschedule.workScheduler - -WorkSchedulerExtensionAbility提供默认的WorkSchedulerExtensionContext。 - -**变更影响** - -基于OpenHarmony4.0.5.1及之后的SDK版本开发的应用,可使用默认的context属性作为WorkSchedulerExtension的上下文环境。 - -**关键接口/组件变更** - -@ohos.WorkSchedulerExtensionAbility.d.ts中新增context属性。新增文件application/WorkSchedulerExtensionContext.d.ts,继承自ExtensionContext。 - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| -- | -- | -- | -- | -| @ohos.WorkSchedulerExtensionAbility.d.ts | WorkSchedulerExtensionAbility | context: WorkSchedulerExtensionContext; | 新增 | -| application/WorkSchedulerExtensionContext.d.ts | WorkSchedulerExtensionContext | - | 新增 | - -**适配指导**
- -通过WorkSchedulerExtensionAbility子类实例来获取WorkSchedulerExtensionContext。 - -```ts -import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility'; - -class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility { - onWorkStart(workInfo) { - let WorkSchedulerExtensionContext = this.context; // 获取WorkSchedulerExtensionContext - } -} -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.2/changelogs-ability.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.2/changelogs-ability.md deleted file mode 100644 index ba5ef87f8b..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.2/changelogs-ability.md +++ /dev/null @@ -1,64 +0,0 @@ -# 元能力子系统ChangeLog - -## cl.ability.appRecovery新增saveAppState接口 - -新增接口saveAppState(context?: UIAbilityContext): boolean; - -**变更影响** - -基于OpenHarmony4.0.5.2及之后的SDK版本开发的应用,可以使用saveAppState接口传入指定Ability Context,实现主动保存指定的Ability状态。 - -**关键接口/组件变更** - -@ohos.app.ability.appRecovery.d.ts中新增saveAppState接口。 - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| -- | -- | -- | -- | -| @ohos.app.ability.appRecovery.d.ts | appRecovery | saveAppState(context?: UIAbilityContext): boolean; | 新增 | - -**适配指导** - -通过调用saveAppState传入UIAbility Context参数主动保存此指定的Ability的状态。 - -```ts -import appRecovery from '@ohos.app.ability.appRecovery'; -onBackground() { - hilog.info(0x0000, '[demo]', '%{public}s', 'EntryAbility onBackground'); - appRecovery.saveAppState(this.context) -} -``` -## cl.ability.appRecovery新增setRestartWant接口 - -新增接口setRestartWant(want: Want): void; - -**变更影响** - -基于OpenHarmony4.0.5.2及之后的SDK版本开发的应用,可以使用setRestartWant接口设置下次由恢复主动拉起场景下的Ability。 - -**关键接口/组件变更** - -@ohos.app.ability.appRecovery.d.ts中新增setRestartWant接口。 - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| -- | -- | -- | -- | -| @ohos.app.ability.appRecovery.d.ts | appRecovery | setRestartWant(want: Want): void; | 新增 | - -**适配指导** - -通过调用setRestartWant设置下次恢复到的指定Ability。 - -```ts -import appRecovery from '@ohos.app.ability.appRecovery'; -Button("启动到恢复Ability") - .fontSize(40) - .fontWeight(FontWeight.Bold) - .onClick(()=> { - // set restart want - let want = { - bundleName: "ohos.samples.recovery", - abilityName: "RecoveryAbility" - }; - - appRecovery.setRestartWant(want); - }) -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.2/changelogs-miscdevice.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.2/changelogs-miscdevice.md deleted file mode 100755 index 6bd5c3f842..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.2/changelogs-miscdevice.md +++ /dev/null @@ -1,95 +0,0 @@ -# 泛Sensor子系统Changelog - -## cl.vibrator.isSupportEffect接口新增 - -新增isSupportEffect接口。 - -**变更影响** - -基于OpenHarmony4.0.5.2及之后的SDK版本开发的应用,可使用isSupportEffect接口查询传入effectId是否支持。 - -**关键接口/组件变更** - -@ohos.vibrator.d.ts中新增isSupportEffect接口。 - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| -- | -- | -- | -- | -| @ohos.vibrator.d.ts | vibrator | isSupportEffect(effectId: string, callback: AsyncCallback<boolean>): void | 新增 | -| @ohos.vibrator.d.ts | vibrator | isSupportEffect(effectId: string): Promise<boolean> | 新增 | - -**适配指导**
- -通过调用isSupportEffect接口查询是否支持传入的参数effectId。 - -```ts -import vibrator from '@ohos.vibrator'; -try { - // 查询是否支持'haptic.clock.timer' - vibrator.isSupportEffect('haptic.clock.timer', function (err, state) { - if (err) { - console.error('isSupportEffect failed, error:' + JSON.stringify(err)); - return; - } - console.log('The effectId is ' + (state ? 'supported' : 'unsupported')); - if (state) { - try { - vibrator.startVibration({ // 使用startVibration需要添加ohos.permission.VIBRATE权限 - type: 'preset', - effectId: 'haptic.clock.timer', - count: 1, - }, { - usage: 'unknown' - }, (error) => { - if(error) { - console.error('haptic.clock.timer vibrator error:' + JSON.stringify(error)); - } else { - console.log('haptic.clock.timer vibrator success'); - } - }); - } catch (error) { - console.error('Exception in, error:' + JSON.stringify(error)); - } - } - }) -} catch (error) { - console.error('Exception in, error:' + JSON.stringify(error)); -} -``` - -## cl.vibrator.stopVibration接口新增 - -新增stopVibration接口。 - -**变更影响** - -基于OpenHarmony4.0.5.2及之后的SDK版本开发的应用,可使用stopVibration接口停止所有类型的振动。 - -**关键接口/组件变更** - -@ohos.vibrator.d.ts中新增stopVibration接口。 - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| ------------------- | -------- | -------------------------------------------------------- | -------- | -| @ohos.vibrator.d.ts | vibrator | stopVibration(callback: AsyncCallback<void>): void | 新增 | -| @ohos.vibrator.d.ts | vibrator | stopVibration(): Promise<void> | 新增 | - -**适配指导**
- -通过调用stopVibration接口停止所有类型的振动。 - -```ts -import vibrator from '@ohos.vibrator'; -try { - // 停止所有模式的马达振动 - vibrator.stopVibration(function (error) { - if (error) { - console.log('error.code' + error.code + 'error.message' + error.message); - return; - } - console.log('Callback returned to indicate successful.'); - }) -} catch (error) { - console.info('errCode: ' + error.code + ' ,msg: ' + error.message); -} -``` - diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.3/changelog-imf.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.3/changelog-imf.md deleted file mode 100644 index a6cdab6b8d..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.3/changelog-imf.md +++ /dev/null @@ -1,21 +0,0 @@ -# 输入法框架子系统-输入法框架服务ChangeLog - - -## @ohos.InputMethodSubtype 中输入法子类型中name、label、id属性值变更 -从API9开始,变更如上三个属性值 - -开发者需要根据以下说明对应用进行适配。 - -**变更影响** - -此三个属性的取值发生变化,需要开发者进行适配更新 - -| 名称 | 变更前 | 变更后 | -| -------- | -------- | -------- | -| label | (1)取值:输入法子类型的id。| (1)取值:输入法子类型的标签。| -| name | (1)说明:输入法子类型的名字;(2)取值:输入法子类型的标签。| (1)说明:输入法应用的包名;(2)取值:输入法应用的包名。| -| id | (1)取值:输入法应用的包名。| (1)取值:输入法子类型的id。| - -**适配指导** - -请按上述取值变更结果适配更新。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.3/changelog-screenlock.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.3/changelog-screenlock.md deleted file mode 100644 index 8e5a2fab36..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.3/changelog-screenlock.md +++ /dev/null @@ -1,155 +0,0 @@ -# 主题框架子系统-锁屏管理服务ChangeLog - - -## cl.screenlock.1 isLocked、unlock接口使用权限变更 -从API9开始,变更为systemapi,停止对三方应用开放。 - -开发者需要根据以下说明对应用进行适配。 - -**变更影响** - -基于此前版本开发的应用,需适配变更的js接口,变更前的接口已经不能正常使用了,否则会影响原有功能。 - -- 涉及接口 - -```js - function isLocked(): boolean; - function unlock(callback: AsyncCallback): void; - function unlock():Promise; -``` - -- 变更前: - -```js - * Checks whether the screen is currently locked. - * - * @returns Returns {@code true} if the screen is currently locked; returns {@code false} otherwise. - * @syscap SystemCapability.MiscServices.ScreenLock - * @since 9 - */ - function isLocked(): boolean; - - /** - * Unlock the screen. - * - * @returns Returns {@code true} if the screen is unlocked successfully; returns {@code false} otherwise. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @throws {BusinessError} 13200002 - the screenlock management service is abnormal. - * @syscap SystemCapability.MiscServices.ScreenLock - * @systemapi Hide this for inner system use. - * @since 9 - */ - function unlock(callback: AsyncCallback): void; - - /** - * Unlock the screen. - * - * @returns Returns {@code true} if the screen is unlocked successfully; returns {@code false} otherwise. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @throws {BusinessError} 13200002 - the screenlock management service is abnormal. - * @syscap SystemCapability.MiscServices.ScreenLock - * @systemapi Hide this for inner system use. - * @since 9 - */ - function unlock():Promise; -``` - -- 变更后: - -```js - * Checks whether the screen is currently locked. - * - * @returns Returns {@code true} if the screen is currently locked; returns {@code false} otherwise. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @syscap SystemCapability.MiscServices.ScreenLock - * @systemapi Hide this for inner system use. - * @since 9 - */ - function isLocked(): boolean; - - /** - * Unlock the screen. - * - * @returns Returns {@code true} if the screen is unlocked successfully; returns {@code false} otherwise. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 13200002 - the screenlock management service is abnormal. - * @syscap SystemCapability.MiscServices.ScreenLock - * @since 9 - */ - function unlock(callback: AsyncCallback): void; - - /** - * Unlock the screen. - * - * @returns Returns {@code true} if the screen is unlocked successfully; returns {@code false} otherwise. - * @throws {BusinessError} 13200002 - the screenlock management service is abnormal. - * @syscap SystemCapability.MiscServices.ScreenLock - * @since 9 - */ - function unlock():Promise; -``` - - -**适配指导** - -该接口变更为系统应用后,三方应用已无法使用。 -系统应用可正常使用。 -示例代码如下: - -```js - try { - let ret = screenLock.isLocked(); - console.error(`Obtain whether the screen is locked successfully , ret is: ${ret}`); - } catch (error) { - console.error(`Failed to obtain whether the screen is locked, error is : ${error.code}, ${error.message}`); - } -``` - -```js - screenlock.unlock((err, data) => { - if (err) { - console.error(`Failed to unlock the screen, because: ${err.message}`); - return; - } - console.info(`unlock the screen successfully. result: ${data}`); - }); -``` - -```js - screenlock.unlock().then((data) => { - console.info(`unlock the screen successfully. result: ${data}`); - }).catch((err) => { - console.error(`Failed to unlock the screen, because: ${err.message}`); - }); -``` - - -## cl.screenlock.2 isSecure接口废弃变更 -从API9开始,废弃此接口。 - -开发者需要根据以下说明对应用进行适配。 - -**变更影响** - -该接口删除无法再使用,请使用进行更新使用,否则会影响原有功能。 - -- 涉及接口 - -```js - function isSecure(): boolean; -``` - -- 变更前: - -```js - function isSecure(): boolean; -``` - -- 变更后:删除接口,停止对外开放。 - - -**适配指导** - -该接口删除后无法再使用,请适配更新。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.3/changelog-wallpaper.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.3/changelog-wallpaper.md deleted file mode 100644 index 13baab4585..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.3/changelog-wallpaper.md +++ /dev/null @@ -1,304 +0,0 @@ -# 主题框架子系统-壁纸管理服务ChangeLog - - -## cl.wallpaper.1 getColorsSync、getMinHeightSync、getMinWidthSync、restore、setImage接口使用权限变更 -从API9开始,变更为systemapi,停止对三方应用开放。 - -开发者需要根据以下说明对应用进行适配。 - -**变更影响** - -基于此前版本开发的应用,需适配变更的js接口,变更前的接口已经不能正常使用了,否则会影响原有功能。 - -- 涉及接口 - -```js - function getColorsSync(wallpaperType: WallpaperType): Array; - function getMinHeightSync(): number; - function getMinWidthSync(): number; - function restore(wallpaperType: WallpaperType, callback: AsyncCallback): void; - function restore(wallpaperType: WallpaperType): Promise; - function setImage(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback): void; - function setImage(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise; -``` - -- 变更前: - -```js - /** - * Obtains the wallpaper colors for the wallpaper of the specified type. Returns rgbaColor type of array callback function. - * @param wallpaperType Indicates the wallpaper type. - * @returns { Array } the Array returned by the function. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @syscap SystemCapability.MiscServices.Wallpaper - * @systemapi Hide this for inner system use. - * @since 9 - */ - function getColorsSync(wallpaperType: WallpaperType): Array; - - /** - * Obtains the minimum height of the wallpaper. in pixels. returns 0 if no wallpaper has been set. - * @returns { number } the number returned by the function. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @syscap SystemCapability.MiscServices.Wallpaper - * @systemapi Hide this for inner system use. - * @since 9 - */ - function getMinHeightSync(): number; - - /** - * Obtains the minimum width of the wallpaper. in pixels. returns 0 if no wallpaper has been set. - * @returns { number } the number returned by the function. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @syscap SystemCapability.MiscServices.Wallpaper - * @systemapi Hide this for inner system use. - * @since 9 - */ - function getMinWidthSync(): number; - - /** - * Removes a wallpaper of the specified type and restores the default one. - * @param wallpaperType Indicates the wallpaper type. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 201 - permission denied. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @permission ohos.permission.SET_WALLPAPER - * @syscap SystemCapability.MiscServices.Wallpaper - * @systemapi Hide this for inner system use. - * @since 9 - */ - function restore(wallpaperType: WallpaperType, callback: AsyncCallback): void; - - /** - * Removes a wallpaper of the specified type and restores the default one. - * @param wallpaperType Indicates the wallpaper type. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 201 - permission denied. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @permission ohos.permission.SET_WALLPAPER - * @syscap SystemCapability.MiscServices.Wallpaper - * @systemapi Hide this for inner system use. - * @since 9 - */ - function restore(wallpaperType: WallpaperType): Promise; - - /** - * Sets a wallpaper of the specified type based on the uri path from a JPEG or PNG file or the pixel map of a PNG file. - * @param source Indicates the uri path from a JPEG or PNG file or the pixel map of the PNG file. - * @param wallpaperType Indicates the wallpaper type. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 201 - permission denied. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @permission ohos.permission.SET_WALLPAPER - * @syscap SystemCapability.MiscServices.Wallpaper - * @systemapi Hide this for inner system use. - * @since 9 - */ - function setImage(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback): void; - - /** - * Sets a wallpaper of the specified type based on the uri path from a JPEG or PNG file or the pixel map of a PNG file. - * @param source Indicates the uri path from a JPEG or PNG file or the pixel map of the PNG file. - * @param wallpaperType Indicates the wallpaper type. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 201 - permission denied. - * @throws {BusinessError} 202 - permission verification failed, application which is not a system application uses system API. - * @permission ohos.permission.SET_WALLPAPER - * @syscap SystemCapability.MiscServices.Wallpaper - * @systemapi Hide this for inner system use. - * @since 9 - */ - function setImage(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise; -``` - -- 变更后: - -```js - /** - * Obtains the wallpaper colors for the wallpaper of the specified type. Returns rgbaColor type of array callback function. - * @param wallpaperType Indicates the wallpaper type. - * @returns { Array } the Array returned by the function. - * @throws {BusinessError} 401 - parameter error. - * @syscap SystemCapability.MiscServices.Wallpaper - * @since 9 - */ - function getColorsSync(wallpaperType: WallpaperType): Array; - - /** - * Obtains the minimum height of the wallpaper. in pixels. returns 0 if no wallpaper has been set. - * @returns { number } the number returned by the function. - * @syscap SystemCapability.MiscServices.Wallpaper - * @since 9 - */ - function getMinHeightSync(): number; - - /** - * Obtains the minimum width of the wallpaper. in pixels. returns 0 if no wallpaper has been set. - * @returns { number } the number returned by the function. - * @syscap SystemCapability.MiscServices.Wallpaper - * @since 9 - */ - function getMinWidthSync(): number; - - /** - * Removes a wallpaper of the specified type and restores the default one. - * @param wallpaperType Indicates the wallpaper type. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 201 - permission denied. - * @permission ohos.permission.SET_WALLPAPER - * @syscap SystemCapability.MiscServices.Wallpaper - * @since 9 - */ - function restore(wallpaperType: WallpaperType, callback: AsyncCallback): void; - - /** - * Removes a wallpaper of the specified type and restores the default one. - * @param wallpaperType Indicates the wallpaper type. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 201 - permission denied. - * @permission ohos.permission.SET_WALLPAPER - * @syscap SystemCapability.MiscServices.Wallpaper - * @since 9 - */ - function restore(wallpaperType: WallpaperType): Promise; - - /** - * Sets a wallpaper of the specified type based on the uri path from a JPEG or PNG file or the pixel map of a PNG file. - * @param source Indicates the uri path from a JPEG or PNG file or the pixel map of the PNG file. - * @param wallpaperType Indicates the wallpaper type. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 201 - permission denied. - * @permission ohos.permission.SET_WALLPAPER - * @syscap SystemCapability.MiscServices.Wallpaper - * @since 9 - */ - function setImage(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback): void; - - /** - * Sets a wallpaper of the specified type based on the uri path from a JPEG or PNG file or the pixel map of a PNG file. - * @param source Indicates the uri path from a JPEG or PNG file or the pixel map of the PNG file. - * @param wallpaperType Indicates the wallpaper type. - * @throws {BusinessError} 401 - parameter error. - * @throws {BusinessError} 201 - permission denied. - * @permission ohos.permission.SET_WALLPAPER - * @syscap SystemCapability.MiscServices.Wallpaper - * @since 9 - */ - function setImage(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise; -``` - - -**适配指导** - -该接口变更为系统应用后,三方应用已无法使用。 -系统应用可正常使用。 -示例代码如下: - -```js - try { - let colors = wallpaper.getColorsSync(wallpaper.WallpaperType.WALLPAPER_SYSTEM); - console.log(`success to getColorsSync: ${JSON.stringify(colors)}`); - } catch (error) { - console.error(`failed to getColorsSync because: ${JSON.stringify(error)}`); - } -``` - -```js - let minHeight = wallpaper.getMinHeightSync(); -``` - -```js - let minWidth = wallpaper.getMinWidthSync(); -``` - -```js - wallpaper.restore(wallpaper.WallpaperType.WALLPAPER_SYSTEM, (error) => { - if (error) { - console.error(`failed to restore because: ${JSON.stringify(error)}`); - return; - } - console.log(`success to restore.`); - }); -``` - -```js - wallpaper.restore(wallpaper.WallpaperType.WALLPAPER_SYSTEM).then(() => { - console.log(`success to restore.`); - }).catch((error) => { - console.error(`failed to restore because: ${JSON.stringify(error)}`); - }); -``` - -```js - // source类型为string - let wallpaperPath = "/data/data/ohos.acts.aafwk.plrdtest.form/files/Cup_ic.jpg"; - wallpaper.setImage(wallpaperPath, wallpaper.WallpaperType.WALLPAPER_SYSTEM, (error) => { - if (error) { - console.error(`failed to setImage because: ${JSON.stringify(error)}`); - return; - } - console.log(`success to setImage.`); - }); -``` - -```js - // source类型为string - let wallpaperPath = "/data/data/ohos.acts.aafwk.plrdtest.form/files/Cup_ic.jpg"; - wallpaper.setImage(wallpaperPath, wallpaper.WallpaperType.WALLPAPER_SYSTEM).then(() => { - console.log(`success to setImage.`); - }).catch((error) => { - console.error(`failed to setImage because: ${JSON.stringify(error)}`); - }); -``` - - -## cl.wallpaper.2 getIdSync、getFileSync、isChangeAllowed、isUserChangeAllowed、on、off、RgbaColor接口废弃变更 -从API9开始,废弃此接口。 - -开发者需要根据以下说明对应用进行适配。 - -**变更影响** - -该接口删除无法再使用,请使用进行更新使用,否则会影响原有功能。 - -- 涉及接口 - -```js - function getIdSync(wallpaperType: WallpaperType): number; - function getFileSync(wallpaperType: WallpaperType): number; - function isChangeAllowed(): boolean; - function isUserChangeAllowed(): boolean; - function on(type: 'colorChange', callback: (colors: Array, wallpaperType: WallpaperType) => void): void; - function off(type: 'colorChange', callback?: (colors: Array, wallpaperType: WallpaperType) => void): void; - interface RgbaColor { - red: number; - green: number; - blue: number; - alpha: number; - } -``` - -- 变更前: - -```js - function getIdSync(wallpaperType: WallpaperType): number; - function getFileSync(wallpaperType: WallpaperType): number; - function isChangeAllowed(): boolean; - function isUserChangeAllowed(): boolean; - function on(type: 'colorChange', callback: (colors: Array, wallpaperType: WallpaperType) => void): void; - function off(type: 'colorChange', callback?: (colors: Array, wallpaperType: WallpaperType) => void): void; - interface RgbaColor { - red: number; - green: number; - blue: number; - alpha: number; - } -``` - -- 变更后:删除接口,停止对外开放。 - - -**适配指导** - -该接口删除后无法再使用,请适配更新。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.5/changelogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.5/changelogs-arkui.md deleted file mode 100644 index 27a0d1d3c6..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.5.5/changelogs-arkui.md +++ /dev/null @@ -1,45 +0,0 @@ -# arkui子系统ChangeLog - -## cl.arkui.1 List组件和Gird组件滚动条默认状态变更 - -List组件和Gird组件滚动条默认状态从BarState.Off变更为BarState.Auto。 - -**变更影响** - -List组件和Gird组件,如果没有设置滚动条状态,变更前不会显示滚动条,变更以后滚动时会显示滚动条,滚动停止两秒后滚动条隐藏。 - -**关键接口/组件变更** - -List组件和Gird组件滚动条API接口文档: -- [List组件属性](../../../application-dev/reference/arkui-ts/ts-container-list.md#属性) -- [Grid组件属性](../../../application-dev/reference/arkui-ts/ts-container-grid.md#属性) - -**适配指导** - -对于不需要滚动条的场景,需要将List组件或Grid组件的scrollBar属性设置为BarState.Off。 - -参考代码如下: -```ts -// xxx.ets -@Entry -@Component -struct ListItemExample { - private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - - build() { - Column() { - List({ space: 20, initialIndex: 0 }) { - ForEach(this.arr, (item) => { - ListItem() { - Text('' + item) - .width('100%').height(100).fontSize(16) - .textAlign(TextAlign.Center).borderRadius(10).backgroundColor(0xFFFFFF) - } - }, item => item) - } - .width('90%') - .scrollBar(BarState.Off) - }.width('100%').height('100%').backgroundColor(0xDCDCDC).padding({ top: 5 }) - } -} -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.1/changelog-huks.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.1/changelog-huks.md deleted file mode 100755 index 465a3ce6bf..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.1/changelog-huks.md +++ /dev/null @@ -1,31 +0,0 @@ -# HUKS子系统ChangeLog - -OpenHarmony 4.0.6.1 版本相较于OpenHarmony 之前的版本,HUKS的API使用权限变更如下。 - -## cl.huks.1 attestKeyItem接口使用权限变更 - -attestKeyItem是基于设备证书链封装业务公钥对用户指定的密钥进行证明,如果设备证书随意导出涉及用户隐私风险,所以此接口需要增加系统权限管控。 - -**变更影响** - -对于不具备system权限或者ohos.permission.ACCESS_IDS权限的应用,无法正常使用attestKeyItem接口。 - -**关键的接口/组件变更** - -- 涉及接口 - - attestKeyItem(keyAlias: string, options: HuksOptions, callback: AsyncCallback\): void; - attestKeyItem(keyAlias: string, options: HuksOptions): Promise\; - -- 变更前: - - 只针对传入ATTESTATION_ID相关TAG的应用校验AccessToken权限,其它情况无接口权限的限制。 - - -- 变更后: - - 只有具备system权限的系统应用或者申请了ohos.permission.ACCESS_IDS权限的普通应用才能正常使用attestKeyItem接口。 - -**适配指导** - -已经具备system权限的应用则可以正常使用attestKeyItem接口,其余普通应用需申请ohos.permission.ACCESS_IDS权限即可,申请方法参考[ACL权限配置说明](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/accesstoken-overview.md#%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6%E5%88%97%E8%A1%A8acl%E8%AF%B4%E6%98%8E)。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.1/changelog-web.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.1/changelog-web.md deleted file mode 100644 index a60d12ad24..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.1/changelog-web.md +++ /dev/null @@ -1,33 +0,0 @@ -# web子系统ChangeLog - -OpenHarmony 4.0.6.1 版本相较于OpenHarmony 之前的版本,web的API变更如下。 - -## cl.web.1 createWebMessagePorts接口参数 - -由于WebMessagePort需要新增支持更多数据类型,因此在该接口增加一个可选参数来区分新老接口。 - -**变更影响** - -无,可选参数,可前向兼容。 - -**关键的接口/组件变更** - -- 涉及接口 - - createWebMessagePorts(): Array; - -- 变更前: - - ```ts - createWebMessagePorts(): Array; - ``` - -- 变更后: - - ```ts - createWebMessagePorts(isExtentionType?: boolean): Array; - ``` - -**适配指导** - -已有应用无需适配。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.1/changelogs-usb.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.1/changelogs-usb.md deleted file mode 100644 index 3c0d57d8b3..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.1/changelogs-usb.md +++ /dev/null @@ -1,23 +0,0 @@ -# USB服务子系统ChangeLog - -## cl.usb_manager.1 sdk接口删除 - -基于此前版本开发的应用,需修改导入的包名,否则会影响原有业务逻辑。 - -**关键接口/组件变更** - -@ohos.usbV9.d.ts文件已删除,由@ohos.usbManager.d.ts替代。 - -| 新包名 | 旧包名 | 已删除包名 | -| -------------------- | ------------- | --------------- | -| ohos.usbManager.d.ts | ohos.usb.d.ts | ohos.usbV9.d.ts | - -后续需要import @ohos.usbManager才能使用USB服务的接口: - - ```ts - import usbManager from '@ohos.usbManager'; - ``` - -**适配指导** - -请参考各接口的[API文档](../../../application-dev/reference/apis/js-apis-usbManager.md) diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.2/changelogs-global.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.2/changelogs-global.md deleted file mode 100755 index f5f49c7e88..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.2/changelogs-global.md +++ /dev/null @@ -1,46 +0,0 @@ -# 全球化子系统ChangeLog - -## cl.resourceManager.1 getStringSync、getStringByNameSync新增接口 - -相较于之前的版本,在4.0.6.2 版本中,为扩展getStringSync、getStringByNameSync接口字符串匹配功能,新增了接口以及相应的错误码。 - -| 包名 | 新增接口 | -| --------------- | ---------------------------------------------------- | -| ohos.resourceManager.d.ts | getStringSync(resId: number, ...args: Array): string; | -| ohos.resourceManager.d.ts | getStringSync(resource: Resource, ...args: Array): string; | -| ohos.resourceManager.d.ts | getStringByNameSync(resName: string, ...args: Array): string; | - -**变更影响** - -之前只能直接获取resources中的string资源的value值,在4.0.6.2 及以上版本中可用通过参数格式化string资源的value值,扩展了格式化字符串的查询能力。 - -新增错误码: - -9001007 根据当前id获取的资源格式化失败 - -9001008 根据当前名称获取的资源格式化失败 - -**示例代码** - -以调用接口getStringSync为例,变更前只支持示例1,变更后示例1、示例2都支持。 -``` -示例1: -try { - this.context.resourceManager.getStringSync($r('app.string.test').id); -} catch (error) { - console.error(`getStringSync failed, error code: ${error.code}, message: ${error.message}.`) -} -示例2: -try { - this.context.resourceManager.getStringSync($r('app.string.test').id, "format string", 787, 98.78); -} catch (error) { - console.error(`getStringSync failed, error code: ${error.code}, message: ${error.message}.`) -} -``` - -**适配指导** -请参考接口说明: - -[新增接口参考](../../../application-dev/reference/apis/js-apis-resource-manager.md) - -[新增错误码参考](../../../application-dev/reference/errorcodes/errorcode-resource-manager.md) \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.3/changelogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.3/changelogs-arkui.md deleted file mode 100644 index 818efb198c..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.3/changelogs-arkui.md +++ /dev/null @@ -1,30 +0,0 @@ -# ArkUI子系统ChangeLog -修复问题:[Stack](../../../application-dev/reference/arkui-ts/ts-container-stack.md)设置alignContent,在子组件超出父组件的场景中,子组件未按照alignContent布局 -示例: -```ts -@Entry -@Component -struct StackExample { - build() { - Stack({alignContent:Alignment.TopEnd}){ - Text('First child, show in bottom') - .width(200).height(200).backgroundColor(0xd2cab3).margin(10) - }.width(150).height(150).backgroundColor(Color.Pink).margin(100) - } -} -``` -修复前:子组件未能按照alignContent:Alignment.TopEnd布局 -![stack](figures/stack_before.jpg) - -修复后:子组件可以按照alignContent:Alignment.TopEnd布局 -![stack](figures/stack_after.jpg) - - -**变更影响** - -1. 如果应用中有子组件大小大于父组件Stack的场景,需要应用进行适配。 -2. 应用之前可能采用的规避方案:给子组件设置Offset或者translate - -**适配指导** - - 去掉之前给子组件设置的Offset或者translate,使用alignContent实际布局方式进行布局。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.3/figures/stack_after.jpg b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.6.3/figures/stack_after.jpg deleted file mode 100644 index eacfe82a9b1175a8a944be8a793ec940a4a80e0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13672 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 k%YXcQa_6Q+(I4N-^H0& - -```ts -import reminderAgentManager from '@ohos.reminderAgentManager'; - -let targetReminderAgent: reminderAgentManager.ReminderRequestAlarm = { - reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_ALARM, // 提醒类型为闹钟类型 - ... - actionButton: [ - { - title: '稍后提醒', - type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_SNOOZE - }, - { - title: '关闭', - type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE - }, - { - title: '自定义', - type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CUSTOM, - wantAgent: { - pkgName: "com.example.myapplication", - abilityName: "EntryAbility", - } - }, - ] -} -``` - -## cl.resourceschedule.reminderAgent.2 - -提醒代理支持设置通知自动消失和自动消失时间。 - -**变更影响** - -基于OpenHarmony4.0.7.1及之后的SDK版本开发的系统应用,可设置提醒自动消失。 - -**关键接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| -- | -- | -- | -- | -| reminderAgentManager | ReminderRequest | tapDismissed?: boolean | 新增 | -| reminderAgentManager | ReminderRequest | autoDeletedTime?: number | 新增 | - -**适配指导**
- -```ts -import reminderAgentManager from '@ohos.reminderAgentManager'; - -let targetReminderAgent: reminderAgentManager.ReminderRequestAlarm = { - reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_ALARM, // 提醒类型为闹钟类型 - ... - tapDismissed: true, - autoDeletedTime: 300, -} -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.2/changelogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.2/changelogs-arkui.md deleted file mode 100644 index 5d82204bdd..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.2/changelogs-arkui.md +++ /dev/null @@ -1,60 +0,0 @@ -# arkui子系统ChangeLog - -### UI范式装饰器使用限制 - -#### 1.组件装饰器使用限制 - -组件装饰器@Component、@Entry、 @Preview和@CustomDialog只能作用于struct组件,不能用于装饰类class。 - -**示例:** - -``` -@Component - // ERROR:The '@Component' decorator can only be used with 'struct'. -class Index { - build() { - } -} -``` - -**变更影响** - -如果组件装饰器@Component、@Entry、 @Preview和@CustomDialog 不是装饰struct组件,编译报错。 - -**关键的接口/组件变更** - -不涉及。 - -**适配指导** - -组件装饰器@Component、@Entry、 @Preview和@CustomDialog修饰struct组件。 - -#### 2.组件成员变量装饰器使用限制 - -组件成员变量装饰器@State、@Prop、@Link、@Provide、@Consume、@ObjectLink、@StorageLink、@StorageProp、@LocalStorageLink、@LocalStorageProp、@Watch、@BuilderParam只能装饰struct组件的成员变量。 - -**示例:** - -``` -@Component -class Index { - // ERROR: The '@State' decorator can only be used with 'struct'. - @State message: string = 'Hello world' - - build() { - - } -} -``` - -**变更影响** - -如果上述提到的组件成员变量装饰器不是装饰struct组件的成员变量,编译报错。 - -**关键的接口/组件变更** - -不涉及 - -**适配指导** - -组件成员变量装饰器如果装饰了非struct组件成员变量,请将该变量作用在'struct'组件内。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.3/changelog-arkcompiler.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.3/changelog-arkcompiler.md deleted file mode 100644 index 13b9b4c46d..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.3/changelog-arkcompiler.md +++ /dev/null @@ -1,164 +0,0 @@ -# 语言编译运行时子系统ChangeLog -## cl.arkcompiler.1 LLVM新增告警及已有告警增强 - -**变更影响** - -OpenHarmony NDK默认不开启-Werror选项,对于已经开启-Werror选项的开发者,建议基于告警检查提示修改错误业务代码或屏蔽 - - **关键的编译检查规则变更** - -| 新增检查选项 | 作用 | 修改建议 | -| --- | --- | --- | -| Wunused-but-set-variable | 当代码中有未使用的变量时(包含++操作符)提出告警 | 定义变量时添加"maybe_unused"属性或者使用宏区分 | -| Wdeprecated-non-prototype | 当代码中存在没有原型的函数时提出告警 | 添加函数原型并明确参数 | -| Wunqualified-std-cast-call | 当代码中错误使用std::move等时提出告警 | 明确移动语义的使用场景并检查代码 | -| Wdeprecated-builtins | 当代码中使用了废弃的内置函数时提出告警 | 替换使用新版函数 | -| Warray-parameter | 当函数参数中包含数组并且重复定义了不一致的形式时提出告警 | 确认函数参数的一致性 | -| Wbitwise-instead-of-logical | 当在布尔运算中使用按位或时提出告警 | 更新代码在布尔运算中使用逻辑或 | -| Wint-conversion | 当代码中出现int变量转换为指针时提出告警 | 更新代码替换使用新的实现方式 | -| Wdeprecated-declarations | 当代码中使用了废弃的定义(包含函数和变量等)时提出告警 | 更新代码替换使用新的实现方式 | -| Wnull-pointer-subtraction | 当代码中出现空指针减法时提出告警 | 更新代码避免空指针参与减法运算 | -| Wunused-but-set-parameter | 当函数中出现未使用的参数时提出告警 | 更新代码去掉未使用的参数 | -| Warray-bounds | 当代码中出现对数组的越界访问时提出告警 | 检查代码并修改越界访问 | -| Wdeprecated-pragma | 当代码中使用了废弃的宏时提出告警 | 更新代码避免使用废弃的宏 | -| Wreserved-identifier | 当代码中使用了"__"开头的变量时提出告警 | 检查代码避免"__"开头的变量被外部使用 | - - **适配指导** - -1. 对于用户代码中存在的LLVM-12未检测出来的问题,需要用户检查并更新代码。 -2. LLVM更新废弃了一些旧的实现,需要用户代码适配并更新代码。 -3. 开发者评估暂时规避的告警,可采用-Wno-xxx选项规避该error。 - -问题代码实例 - -``` -void Heap::Resume(TriggerGCType gcType) -{ - if (mode_ != HeapMode::SPAWN && - activeSemiSpace_->AdjustCapacity(inactiveSemiSpace_->GetAllocatedSizeSinceGC())) { - // if activeSpace capacity changes, oldSpace maximumCapacity should change, too. - size_t multiple = 2; - // oldSpaceMaxLimit被赋值了但未被使用 - size_t oldSpaceMaxLimit = 0; - if (activeSemiSpace_->GetInitialCapacity() >= inactiveSemiSpace_->GetInitialCapacity()) { - size_t delta = activeSemiSpace_->GetInitialCapacity() - inactiveSemiSpace_->GetInitialCapacity(); - oldSpaceMaxLimit = oldSpace_->GetMaximumCapacity() - delta * multiple; - } else { - size_t delta = inactiveSemiSpace_->GetInitialCapacity() - activeSemiSpace_->GetInitialCapacity(); - oldSpaceMaxLimit = oldSpace_->GetMaximumCapacity() + delta * multiple; - } - inactiveSemiSpace_->SetInitialCapacity(activeSemiSpace_->GetInitialCapacity()); - } - // irrelated code ... -} -``` - -oldSpaceMaxLimit变量并未使用,编译器提出告警 - -``` -../../arkcompiler/ets_runtime/ecmascript/mem/heap.cpp:247:16: error: variable 'oldSpaceMaxLimit' set but not used [-Werror,-Wunused-but-set-variable] - size_t oldSpaceMaxLimit = 0; -``` - -添加属性后解决 - -``` -void Heap::Resume(TriggerGCType gcType) -{ - if (mode_ != HeapMode::SPAWN && - activeSemiSpace_->AdjustCapacity(inactiveSemiSpace_->GetAllocatedSizeSinceGC())) { - // if activeSpace capacity changes, oldSpace maximumCapacity should change, too. - size_t multiple = 2; - // 添加maybe_unused属性,声明不一定使用变量oldSpaceMaxLimit - [[maybe_unused]] size_t oldSpaceMaxLimit = 0; - if (activeSemiSpace_->GetInitialCapacity() >= inactiveSemiSpace_->GetInitialCapacity()) { - size_t delta = activeSemiSpace_->GetInitialCapacity() - inactiveSemiSpace_->GetInitialCapacity(); - oldSpaceMaxLimit = oldSpace_->GetMaximumCapacity() - delta * multiple; - } else { - size_t delta = inactiveSemiSpace_->GetInitialCapacity() - activeSemiSpace_->GetInitialCapacity(); - oldSpaceMaxLimit = oldSpace_->GetMaximumCapacity() + delta * multiple; - } - inactiveSemiSpace_->SetInitialCapacity(activeSemiSpace_->GetInitialCapacity()); - } - // irrelated code ... -} -``` - -## cl.arkcompiler.2 LLVM解析格式差异 - - **变更影响** - -对于业务依赖version-script或-gcc-toolchain选项的开发者,在沿用LLVM12配置文件或选项时,可能会解析失败 - - **关键的编译规则变更** - -1. 新版本中修改了符号的表示,现在连续的">"会被编译器表示为">>",这个在旧版本中会被表示为"> >",错误使用将导致符号不被解析匹配 -2. 废弃-xx选项,如-gcc-toolchain选项,改用--gcc-toolchain选项(该选项在clang3.4以后的版本已表示会弃用,LLVM15上正式废弃) - - **适配指导** - -version-script使用方法可以参考 - -适配实例 - -对于代码中出现连续两个“>”(忽略中间空格数量),在version-script中(由于 mangling差异)会被分别解析为如下"> >"与">>"两种情况,在15中我们需要使用">>" - -原始配置文件 - -``` -{ - global: - extern "C++" { - "google::protobuf::TextFormat::ParseFromString(std::__cxx11::basic_string, std::allocator > const&, google::protobuf::Message*)"; - // LLVM12 "> >"可以被解析,但">>"不行 - "google::protobuf::TextFormat::PrintToString(google::protobuf::Message const&, std::__cxx11::basic_string, std::allocator >*)"; - }; - local: - *; -} -``` - -修改后的配置文件 - -``` -{ - global: - extern "C++" { - "google::protobuf::TextFormat::ParseFromString(std::__cxx11::basic_string, std::allocator> const&, google::protobuf::Message*)"; - // LLVM15 只会解析">>" - "google::protobuf::TextFormat::PrintToString(google::protobuf::Message const&, std::__cxx11::basic_string, std::allocator>*)"; - }; - local: - *; -} -``` - -## cl.arkcompiler.3 LLVM emu-tls变更 - - **变更影响** - -对于LLVM12/LLVM15工具链混用的开发者(禁止行为),会产生libc++.so emu-tls符号无法找到的问题 - - **关键的库依赖变更** - -LLVM15中将emu-tls符号从目标二进制抽取到了libc++.so中,即__emutls_get_address的属性从内部符号变为外部可见的符号(libc++.so中会包含该符号),可能会导致编译出来的动态库依赖libc++.so。 - - **适配指导** - -该符号同时也在libclang_rt.builtin.a中,如果不希望依赖libc++.so可以静态链接libclang_rt.builtin.a库。 - -## cl.arkcompiler.4 LLVM官方release note - - **变更影响** - -新增特性及内部接口变更(如LLVM内部的IR,编译器前端修改),详见官方变更文档 - - **关键变更文档** - -https://releases.llvm.org/13.0.0/docs/ReleaseNotes.html -https://releases.llvm.org/14.0.0/docs/ReleaseNotes.html -https://releases.llvm.org/15.0.0/docs/ReleaseNotes.html - - **适配指导** - -详细修改信息以及适配指导见官方文档 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.3/changelog-web.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.3/changelog-web.md deleted file mode 100644 index 9c5dabb942..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.3/changelog-web.md +++ /dev/null @@ -1,126 +0,0 @@ -# web子系统ChangeLog - -OpenHarmony 4.0.7.3 版本相较于OpenHarmony 之前的版本,web的API变更如下。 - -## cl.web.1 setResponseData接口参数新增 - -**变更影响** - -setResponseData(data: string | number | Resource),新增入参类型`Resource` - -在应用hap不解压场景,应用hap中的文件路径已不存在。当需要读取hap包内资源时,通过使用入参`data:Resource`替代`data:number`,实现对本应用下的资源访问。 - - -**关键的接口/组件变更** - -- 涉及接口 - - setResponseData - -- 变更前: - - ```ts - setResponseData(data: string | number) - ``` - -- 变更后: - - ```ts - setResponseData(data: string | number | Resource) - ``` - -**适配指导** - -应用hap解压时,打开并持有资源文件fd,最后通过`setResponseData(data:number)`将资源响应数据传递给内核。 - -```ts -// xxx.ets -import web_webview from '@ohos.web.webview' -import fileio from '@ohos.fileio'; - -@Entry -@Component -struct WebComponent { - controller: web_webview.WebviewController = new web_webview.WebviewController() - responseweb: WebResourceResponse = new WebResourceResponse() - heads: Header[] = new Array() - - build() { - Column() { - Web({ src: 'www.example.com', controller: this.controller }) - .onInterceptRequest((event) => { - console.log('url:' + event.request.getRequestUrl()) - var head1:Header = { - headerKey:"Connection", - headerValue:"keep-alive" - } - var head2:Header = { - headerKey:"Cache-Control", - headerValue:"no-cache" - } - var length = this.heads.push(head1) - length = this.heads.push(head2) - this.responseweb.setResponseHeader(this.heads) - this.responseweb.setResponseEncoding('utf-8') - this.responseweb.setResponseMimeType('text/html') - this.responseweb.setResponseCode(200) - this.responseweb.setReasonMessage('OK') - - //// fd方案 --start - // '/xxx/.../test.html'为文件的本地路径 - // @ts-ignore - let fd = fileio.openSync('/xxx/.../test.html', 0o102, 0o666) - this.responseweb.setResponseData(fd) - //// fd方案 --end - - return this.responseweb - }) - } - } -} -``` - -应用hap不解压时,应用hap中的文件路径已不存在,通过`setResponseData(data:Resource)`将资源响应数据传递给内核。 -```ts -// xxx.ets -import web_webview from '@ohos.web.webview' - -@Entry -@Component -struct WebComponent { - controller: web_webview.WebviewController = new web_webview.WebviewController() - responseweb: WebResourceResponse = new WebResourceResponse() - heads: Header[] = new Array() - - build() { - Column() { - Web({ src: 'www.example.com', controller: this.controller }) - .onInterceptRequest((event) => { - console.log('url:' + event.request.getRequestUrl()) - var head1:Header = { - headerKey:"Connection", - headerValue:"keep-alive" - } - var head2:Header = { - headerKey:"Cache-Control", - headerValue:"no-cache" - } - var length = this.heads.push(head1) - length = this.heads.push(head2) - this.responseweb.setResponseHeader(this.heads) - this.responseweb.setResponseEncoding('utf-8') - this.responseweb.setResponseMimeType('text/html') - this.responseweb.setResponseCode(200) - this.responseweb.setReasonMessage('OK') - - //// Resource方案 --start - // 指定hap包中rawfile目录下的目标文件 - this.responseweb.setResponseData($rawfile('test.html')) - //// Resource方案 --end - - return this.responseweb - }) - } - } -} -``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.5/changelogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.5/changelogs-arkui.md deleted file mode 100644 index baa0d65d28..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.7.5/changelogs-arkui.md +++ /dev/null @@ -1,26 +0,0 @@ -# arkui子系统ChangeLog - -## cl.arkui.1 Button组件hover状态效果变更 - -Button组件的hover状态由100-105%放大效果变更为0-5%不透明度的叠加效果,hover状态切换到press状态的效果变更为5-10%不透明度的叠加效果。 - -**变更影响** - -影响Button的hover状态的视觉效果以及hover状态切换到press状态的视觉效果。 - -## cl.arkui.2 toast组件多行文本对齐方式 - -toast多行文本对齐方式由居中对齐变为左对齐 - -**变更影响** - -影响toast文本提示框的多行文本的视觉效果。 - -## cl.arkui.3 SideBarContainer组件新增属性、修改属性默认值及新增显示模式 - -1、新增minContentWidth,默认值360vp,开发者未设置时为0vp。设置为小于0的值时按默认值显示。Embed场景下,增大组件尺寸时仅增大内容区的尺寸,缩小组件尺寸时,先缩小内容区的尺寸至minContentWidth,然后再缩小侧边栏的尺寸,当缩小侧边栏的尺寸至minSideBarWidth后,继续缩小组件尺寸时,会保持侧边栏最小尺寸,继续缩小内容区尺寸,并采用截断方式显示内容区,内容区尺寸可以缩小至0vp。minContentWidth优先于侧边栏的maxSideBarWidth与sideBarWidth属性,minContentWidth未设置时默认值优先级低于设置的minSideBarWidth与maxSideBarWidth属性。
2、minSideBarWidth、SideBarWidth的默认宽度在API version 9及以下版本默认值为200vp,API version 10的默认值为240vp。 -
3、新增Auto显示模式,组件尺寸大于等于minSideBarWidth+minContentWidth时,采用Embed模式显示;组件尺寸小于minSideBarWidth+minContentWidth时,采用Overlay模式显示;未设置minSideBarWidth或minContentWidth时,会使用未设置接口的默认值进行计算,若计算后的值小于600vp,则使用600vp做为模式切换的断点值。。 - -**变更影响** - -在API version 10下,影响SideBarContainer组件默认情况下的视觉效果。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.1/changelogs-arkcompiler.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.1/changelogs-arkcompiler.md deleted file mode 100644 index 8dd9017d4d..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.1/changelogs-arkcompiler.md +++ /dev/null @@ -1,23 +0,0 @@ -# ArkCompiler子系统ChangeLog - -## cl.ArkCompiler.1 type编译模式默认使用es2abc - -SDK中ArkCompiler有两个编译器支持ets/ts/js的编译,分别是ts2abc编译器和es2abc编译器。
-编译模式介绍:
-​ 非type编译:ets/ts源码转化为js源码,使用ArkCompiler编译器es2abc生成字节码。
-​ type编译:ets/ts源码转化为ts源码,使用ArkCompiler编译器ts2abc(之前版本)/es2abc(此版本使能)生成字节码。
-应用工程hvigor版本信息查看:
-​ 应用工程hvigor目录hvigor-config.json5文件中hvigorVersion字段以及dependencies中@ohos/hvigor-ohos-plugin字段。
-开启type编译:
-​ hvigor版本大于等于2.6.0-rc.9.s时默认使用type模式编译,或者应用源码(src目录)同级目录build-profile.json5文件中,buildOption标签下配置"aotCompileMode": "type"选项。
- -当开启type编译且使用该版本的SDK时,将默认使用ArkCompiler编译器es2abc编译ts源码生成字节码,并且不推荐使用使能ts2abc的老版本SDK进行type编译。
- -**变更影响**
-使用DevEco Studio进行应用开发,使能type编译模式并使用新版SDK后,由于编译模式的变更以及ArkCompiler编译器的变更,可能会出现应用编译失败,运行时Crash等。
- -**关键的接口/组件变更**
-type编译模式默认使用ArkCompiler编译器es2abc
- -**适配指导**
-1. hvigor版本大于等于2.6.0-rc.9.s时,切换原来的编译模式(非type),开发者需要在build-profile.json5文件中配置"aotCompileMode":""。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.1/changelogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.1/changelogs-arkui.md deleted file mode 100644 index 06cc444f40..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.1/changelogs-arkui.md +++ /dev/null @@ -1,21 +0,0 @@ -# ArkUI子系统ChangeLog - -## cl.arkui.1 uiAppearance部分谓词由公共接口变更为系统接口 - -命名空间uiAppearance及其内部DarkMode枚举谓词由公共接口变更为系统接口。 - -**变更影响** - -无影响。规范性整改,命名空间uiAppearance及其内部DarkMode枚举类型修改前后均只被系统接口使用 - -**关键接口/组件变更** - -如下接口添加系统接口systemapi说明: - -- declare namespace uiAppearance - -- enum DarkMode - -- ALWAYS_DARK = 0 - -- ALWAYS_LIGHT = 1 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.1/changelogs-distributeddatamgr.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.1/changelogs-distributeddatamgr.md deleted file mode 100644 index 5a47ecca15..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.1/changelogs-distributeddatamgr.md +++ /dev/null @@ -1,57 +0,0 @@ -# 分布式数据管理子系统ChangeLog - -## cl.distributeddatamgr.1 ValuesBucket由系统接口变更为公共接口 - -**变更影响** - -基于此前版本开发的应用,仅支持系统应用使用ValuesBucket。现接口类型中的系统接口标识取消,支持第三方开发者使用。 - -**关键接口/组件变更** - -修改前的接口原型: - - ```ts - /** - * Indicates possible value types - * - * @syscap SystemCapability.DistributedDataManager.DataShare.Core - * @systemapi - * @StageModelOnly - * @since 9 - */ - export type ValueType = number | string | boolean; - ``` -修改后的接口原型: - - ```ts - /** - * Indicates possible value types - * - * @syscap SystemCapability.DistributedDataManager.DataShare.Core - * @StageModelOnly - * @since 10 - */ - export type ValueType = number | string | boolean; -} - ``` -## cl.distributeddatamgr.2 dataSharePredicates部分谓词由系统接口变更为公共接口 - -**变更影响** - -基于此前版本开发的应用,仅支持系统应用使用dataSharePredicates。现命名空间dataSharePredicates、类dataSharePredicates及类内部分谓词接口类型中的系统接口标识取消,支持第三方开发者使用。 - -**关键接口/组件变更** - -部分谓词接口的系统接口说明取消,涉及的接口有: - -- equalTo(field: string, value: ValueType): DataSharePredicates - -- and(): DataSharePredicates - -- orderByAsc(field: string): DataSharePredicates - -- orderByDesc(field: string): DataSharePredicates - -- limit(total: number, offset: number): DataSharePredicates - -- in(field: string, value: Array): DataSharePredicates \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-arkui.md deleted file mode 100644 index 30d5a5f3ff..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-arkui.md +++ /dev/null @@ -1,213 +0,0 @@ -# arkui子系统ChangeLog - -## cl.arkui.1 状态变量数据类型声明使用限制。 - -所有的状态装饰器变量需要显式声明变量类型,不允许声明any。 - -**示例:** - -```ts -// xxx.ets -@Entry -@Component -struct DatePickerExample { - // 错误写法: @State isLunar: any = false - @State isLunar: boolean = false - - build() { - ... - } -} -``` - -**变更影响** - -如果状态装饰器变量没有显式声明变量类型,声明any,编译拦截等级由WARN变成ERROR。 - -```ts -// ArkTS:ERROR Please define an explicit type, not any. -@State isLunar: any = false -``` - -**关键的接口/组件变更** - -不涉及。 - -**适配指导** - -状态装饰器变量声明具体的变量类型替代any。 - -## cl.arkui.2 自定义组件成员变量初始化的规则与约束。 - -不允许从父组件初始化`@LocalStorageLink`, `@LocalStorageProp`修饰的变量。 - -**示例:** - -```ts -let NextID: number = 0; - -@Observed -class ClassA { - public id: number; - public c: number; - - constructor(c: number) { - this.id = NextID++; - this.c = c; - } -} - -@Entry -@Component -struct LocalStorageComponent { - build() { - Column() { - Child({ - /* ArkTS:ERROR Property 'simpleVarName' in the custom component 'Child' cannot - initialize here (forbidden to specify). */ - simpleVarName: 1, - /* ArkTS:ERROR Property 'objectName' in the custom component 'Child' cannot - initialize here (forbidden to specify). */ - objectName: new ClassA(1) - }) - } - } -} - -@Component -struct Child { - @LocalStorageLink("storageSimpleProp") simpleVarName: number = 0; - @LocalStorageProp("storageObjectProp") objectName: ClassA = new ClassA(1); - - build() { - } -} -``` - -**变更影响** - -如果父组件初始化`@LocalStorageLink`, `@LocalStorageProp`修饰的变量,编译拦截等级由WARN变成ERROR。 - -**关键的接口/组件变更** - -不涉及。 - -**适配指导** - -构造子组件时,不对子组件的`@LocalStorageLink`, `@LocalStorageProp`修饰的变量进行赋值。 - -如果需要在父组件中修改子组件的`@LocalStorageLink`, `@LocalStorageProp`修饰的变量,则使用LocalStorage提供的API接口方法(比如set方法)赋值。 - -## cl.arkui.3 PromptAction模块中,文本提示框toast的bottom属性含义变更。 - -文本提示框toast的bottom属性值的含义,从文本提示框上边沿到屏幕下边沿,变更为文本提示框下边沿到屏幕下边沿。 - -**示例:** - -```ts -import promptAction from '@ohos.promptAction'; -@Entry -@Component -struct Index { - build() { - Row() { - Button() - .onClick(() => { - try { - promptAction.showToast({ - message: 'Message Info', - duration: 2000 - }); - } catch (error) { - console.error(`showToast args error code is ${error.code}, message is ${error.message}`); - }; - }) - } - } -} -``` - -**变更影响** - -PromptAction模块中,文本提示框toast的bottom属性设置同样的数值,会由于编译器所使用的API版本是否为API version 10+而有所差异。 - -**关键的接口/组件变更** - -不涉及。 - -**适配指导** - -编译器采用API version 9或以往版本以保持之前的样式,或者采用API version 10及以上版本以采用新样式。 - -## cl.arkui.4 AlertDialog控件内容布局变更。 - -AlertDialog的内容属性部分会根据:1)有无标题title,2)是否为单行文本,条件不同而布局有所不同。 - -目前规格:仅无标题title的单行文本情况下为居中,其余情况文本左对齐。 - -**示例:** - -```ts -// xxx.ets -@Entry -@Component -struct AlertDialogExample { - build() { - Column({ space: 5 }) { - Button('one button dialog') - .onClick(() => { - AlertDialog.show( - { - title: 'title', - message: 'text'.repeat(20), - autoCancel: true, - alignment: DialogAlignment.Bottom, - offset: { dx: 0, dy: -20 }, - gridCount: 3, - confirm: { - value: 'button', - action: () => { - console.info('Button-clicking callback') - } - }, - cancel: () => { - console.info('Closed callbacks') - } - } - ) - }) - .backgroundColor(0x317aff) - }.width('100%').margin({ top: 5 }) - } -} -``` - -**变更影响** - -AlertDialog控件message属性对应的文本内容,布局效果变更。 - -**关键的接口/组件变更** - -不涉及。 - -**适配指导** - -无需主动适配,或者可以使用customDialog做相关实现。 - -## cl.arkui.5 popup避让行为优化。 - -变更前,popup发生避让优先在下方空间找位置,导致在上方空间充足也无法设置在上方显示。 - -目前规格:根据开发者设置,若设置在上方,优先在上方空间找位置;若设置在下方,优先在上下方空间找位置。 - -**变更影响** - -使用bindpopup属性,气泡避让行为优化。 - -**关键的接口/组件变更** - -不涉及。 - -**适配指导** - -若发现使用场景中,使用bindpopup属性,气泡出现位置与之前发生上下位置变化,可通过调整placement恢复。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-datashare.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-datashare.md deleted file mode 100644 index 64a399d30f..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-datashare.md +++ /dev/null @@ -1,39 +0,0 @@ -# 分布式数据管理子系统ChangeLog - -## cl.datashare.1 js-apis-data-dataShare API version 10开始托管数据PublishedItem中data的数据类型从Ashmem变更为ArrayBuffer - -**变更影响** - -PublishedItem中data的数据类型从Ashmem变更为ArrayBuffer - -## PublishedItem10+ - -指定发布的数据类型。 - -**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer - -| 名称 | 类型 | 必填 | 说明 | -| -------- | -------- | -------- | -------- | -| key | string | 是 | 指定发布数据的键。 | -| data | string \| ArrayBuffer | 是 | 指定发布的数据。如果数据很大,请使用ArrayBuffer。 | -| subscriberId | string | 是 | 指定订阅者id。 | - -**适配指导** -示例代码如下: - -**示例:** - -```ts -let arrayBuffer = new ArrayBuffer(1); -let version = 1; -let data : Array = [{key:"key2", subscriberId:"11", data:arrayBuffer}]; -function publishCallback(err, result: Array) { - console.info("publishCallback " + JSON.stringify(result)); -} -try { - console.info("data length is:", data.length); - dataShareHelper.publish(data, "com.acts.ohos.data.datasharetest", version, publishCallback); -} catch (e) { - console.error("publish error " + JSON.stringify(e)); -} -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-device_manager.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-device_manager.md deleted file mode 100644 index 308f9c565e..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-device_manager.md +++ /dev/null @@ -1,110 +0,0 @@ -# 设备管理ChangeLog -## cl.device_manager.1 接口权限变更 - -从Openharmony 4.0.8.2版本开始,部分接口新增权限校验。 - -**变更影响** - -从Openharmony 4.0.8.2之后版本开发的应用,需要持有相应权限,否则无法正常调用接口。 - -**关键的接口/组件变更** - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 新增权限 | -| ------------------------- | ------------------- | ------------------------------------------------------------ | -------- | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** release(): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** getTrustedDeviceListSync(): Array<DeviceInfo> | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** getTrustedDeviceListSync(isRefresh: boolean): Array<DeviceInfo>; | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** getTrustedDeviceList(callback:AsyncCallback<Array<DeviceInfo>>): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** getTrustedDeviceList(): Promise<Array<DeviceInfo>> | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** getLocalDeviceInfoSync(): DeviceInfo | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** getLocalDeviceInfo(callback:AsyncCallback<DeviceInfo>): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** getLocalDeviceInfo(): Promise<DeviceInfo> | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** getDeviceInfo(networkId: string, callback:AsyncCallback<DeviceInfo>): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** getDeviceInfo(networkId: string): Promise<DeviceInfo> | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** startDeviceDiscovery(subscribeInfo: SubscribeInfo): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** startDeviceDiscovery(subscribeInfo: SubscribeInfo, filterOptions?: string): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** stopDeviceDiscovery(subscribeId: number): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** publishDeviceDiscovery(publishInfo: PublishInfo): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** unPublishDeviceDiscovery(publishId: number): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** authenticateDevice(deviceInfo: DeviceInfo, authParam: AuthParam, callback: AsyncCallback<{deviceId: string, pinToken ?: number}>): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** unAuthenticateDevice(deviceInfo: DeviceInfo): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** verifyAuthInfo(authInfo: AuthInfo, callback: AsyncCallback<{deviceId: string, level: number}>): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** setUserOperation(operateAction: number, params: string): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** requestCredentialRegisterInfo(requestInfo: string, callback: AsyncCallback<{registerInfo: string}>): void; | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** importCredential(credentialInfo: string, callback: AsyncCallback<{resultInfo: string}>): void; | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** deleteCredential(queryInfo: string, callback: AsyncCallback<{resultInfo: string}>): void; | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** on(type: 'uiStateChange', callback: Callback<{ param: string}>): void; | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** off(type: 'uiStateChange', callback?: Callback<{ param: string}>): void; | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** on(type: 'deviceStateChange', callback: Callback<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** off(type: 'deviceStateChange', callback?: Callback<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** on(type: 'deviceFound', callback: Callback<{ subscribeId: number, device: DeviceInfo }>): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** off(type: 'deviceFound', callback?: Callback<{ subscribeId: number, device: DeviceInfo }>): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** on(type: 'discoverFail', callback: Callback<{ subscribeId: number, reason: number }>): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** off(type: 'discoverFail', callback?: Callback<{ subscribeId: number, reason: number }>): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** on(type: 'publishSuccess', callback: Callback<{ publishId: number }>): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** off(type: 'publishSuccess', callback?: Callback<{ publishId: number }>): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** on(type: 'publishFail', callback: Callback<{ publishId: number, reason: number }>): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** off(type: 'publishFail', callback?: Callback<{ publishId: number, reason: number }>): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** on(type: 'serviceDie', callback: () => void): void | ohos.permission.ACCESS_SERVICE_DM | -| @ohos.distributedHardware.deviceManager | deviceManager | **function** off(type: 'serviceDie', callback?: () => void): void | ohos.permission.ACCESS_SERVICE_DM | - -**适配指导** - -调用以上接口,需要申请相应的权限才能正常调用。 - - -## cl.device_manager.2 所有接口进行系统接口权限校验 - -从Openharmony 4.0.8.2版本开始,所有接口进行系统接口权限校验。 - -**变更影响** - -非系统应用无法调用系统接口,如调用方为非系统应用或未申请SystemApi相关权限,将无法调用接口。 - -**关键的接口/组件变更** - -所有接口均进行系统接口权限校验,接口明细如下: - -| 接口、枚举或变量名 | 类型 | 是否为SystemApi | -| -------- | -------- | ------- | -| createDeviceManager(bundleName: string, callback: AsyncCallback<DeviceManager>): void; | interface | 是 | -| release(): void | interface | 是 | -| getTrustedDeviceListSync(): Array<DeviceInfo> | interface | 是 | -| getTrustedDeviceListSync(isRefresh: boolean): Array<DeviceInfo>; | interface | 是 | -| getTrustedDeviceList(callback:AsyncCallback<Array<DeviceInfo>>): void | interface | 是 | -| getTrustedDeviceList(): Promise<Array<DeviceInfo>> | interface | 是 | -| getLocalDeviceInfoSync(): DeviceInfo | interface | 是 | -| getLocalDeviceInfo(callback:AsyncCallback<DeviceInfo>): void | interface | 是 | -| getLocalDeviceInfo(): Promise<DeviceInfo> | interface | 是 | -| getDeviceInfo(networkId: string, callback:AsyncCallback<DeviceInfo>): void | interface | 是 | -| getDeviceInfo(networkId: string): Promise<DeviceInfo> | interface | 是 | -| startDeviceDiscovery(subscribeInfo: SubscribeInfo): void | interface | 是 | -| startDeviceDiscovery(subscribeInfo: SubscribeInfo, filterOptions?: string): void | interface | 是 | -| stopDeviceDiscovery(subscribeId: number): void | interface | 是 | -| publishDeviceDiscovery(publishInfo: PublishInfo): void | interface | 是 | -| unPublishDeviceDiscovery(publishId: number): void | interface | 是 | -| authenticateDevice(deviceInfo: DeviceInfo, authParam: AuthParam, callback: AsyncCallback<{deviceId: string, pinToken ?: number}>): void |interface | 是 | -| unAuthenticateDevice(deviceInfo: DeviceInfo): void | interface | 是 | -| verifyAuthInfo(authInfo: AuthInfo, callback: AsyncCallback<{deviceId: string, level: number}>): void | interface | 是 | -| setUserOperation(operateAction: number, params: string): void | interface | 是 | -| requestCredentialRegisterInfo(requestInfo: string, callback: AsyncCallback<{registerInfo: string}>): void; | interface | 是 | -| importCredential(credentialInfo: string, callback: AsyncCallback<{resultInfo: string}>): void; | interface | 是 | -| deleteCredential(queryInfo: string, callback: AsyncCallback<{resultInfo: string}>): void; | interface | 是 | -| on(type: 'uiStateChange', callback: Callback<{ param: string}>): void; | interface | 是 | -| off(type: 'uiStateChange', callback?: Callback<{ param: string}>): void; | interface | 是 | -| on(type: 'deviceStateChange', callback: Callback<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void | interface | 是 | -| off(type: 'deviceStateChange', callback?: Callback<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void | interface | 是 | -| on(type: 'deviceFound', callback: Callback<{ subscribeId: number, device: DeviceInfo }>): void | interface | 是 | -| off(type: 'deviceFound', callback?: Callback<{ subscribeId: number, device: DeviceInfo }>): void | interface | 是 | -| on(type: 'discoverFail', callback: Callback<{ subscribeId: number, reason: number }>): void | interface | 是 | -| off(type: 'discoverFail', callback?: Callback<{ subscribeId: number, reason: number }>): void | interface | 是 | -| on(type: 'publishSuccess', callback: Callback<{ publishId: number }>): void | interface | 是 | -| off(type: 'publishSuccess', callback?: Callback<{ publishId: number }>): void | interface | 是 | -| on(type: 'publishFail', callback: Callback<{ publishId: number, reason: number }>): void | interface | 是 | -| off(type: 'publishFail', callback?: Callback<{ publishId: number, reason: number }>): void | interface | 是 | -| on(type: 'serviceDie', callback: () => void): void | interface | 是 | -| off(type: 'serviceDie', callback?: () => void): void | interface | 是 | - -**适配指导** - -调用以上接口,调用方需要为系统应用或申请SystemApi相关权限。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-distributeddatamgr.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-distributeddatamgr.md deleted file mode 100644 index a1e2e70d34..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-distributeddatamgr.md +++ /dev/null @@ -1,192 +0,0 @@ - -# 分布式数据管理子系统ChangeLog - -## cl.distributeddatamgr.1 js-apis-application-dataShareExtensionAbility API version 9开始支持的context属性删除,新增API version 10的context属性取消可选标识符。 - -**变更影响** - -基于此前版本开发的应用,使用context需切换SDK至API version 10。 - -**关键接口/组件变更** - -删除的API version 9的接口原型: - - ```ts - /** - * Indicates datashare extension ability context. - * - * @type ?{ ExtensionContext } - * @syscap SystemCapability.DistributedDataManager.DataShare.Provider - * @systemapi - * @StageModelOnly - * @since 9 - */ - context?: ExtensionContext; - ``` -新增的API version 10的接口原型: - - ```ts - /** - * Indicates datashare extension ability context. - * - * @type { ExtensionContext } - * @syscap SystemCapability.DistributedDataManager.DataShare.Provider - * @systemapi - * @StageModelOnly - * @since 10 - */ - context: ExtensionContext; - ``` - -## cl.distributeddatamgr.2 OH_Predicates 结构体的函数指针成员变量返回值类型由OH_Predicates 变更为OH_Predicates * - -**变更影响** - -该变更为不兼容变更,用户使用OH_Predicates结构体中的函数指针变量时,需要按照新类型进行使用。 - -**关键接口/组件变更** - -修改前的OH_Predicates成员变量原型: - - ```ts - OH_Predicates (*equalTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates (*notEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates (*beginWrap)(OH_Predicates *predicates); - OH_Predicates (*endWrap)(OH_Predicates *predicates); - OH_Predicates (*orOperate)(OH_Predicates *predicates); - OH_Predicates (*andOperate)(OH_Predicates *predicates); - OH_Predicates (*isNull)(OH_Predicates *predicates, const char *field); - OH_Predicates (*isNotNull)(OH_Predicates *predicates, const char *field); - OH_Predicates (*like)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates (*between)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates (*notBetween)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates (*greaterThan)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates (*lessThan)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates (*greaterThanOrEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates (*lessThanOrEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates (*orderBy)(OH_Predicates *predicates, const char *field, OH_OrderType type); - OH_Predicates (*distinct)(OH_Predicates *predicates); - OH_Predicates (*limit)(OH_Predicates *predicates, unsigned int value); - OH_Predicates (*offset)(OH_Predicates *predicates, unsigned int rowOffset); - OH_Predicates (*groupBy)(OH_Predicates *predicates, char const *const *fields, int length); - OH_Predicates (*in)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates (*notIn)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates (*clear)(OH_Predicates *predicates); - ``` - -修改后的OH_Predicates成员变量原型: - - ```ts - OH_Predicates *(*equalTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates *(*notEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates *(*beginWrap)(OH_Predicates *predicates); - OH_Predicates *(*endWrap)(OH_Predicates *predicates); - OH_Predicates *(*orOperate)(OH_Predicates *predicates); - OH_Predicates *(*andOperate)(OH_Predicates *predicates); - OH_Predicates *(*isNull)(OH_Predicates *predicates, const char *field); - OH_Predicates *(*isNotNull)(OH_Predicates *predicates, const char *field); - OH_Predicates *(*like)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates *(*between)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates *(*notBetween)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates *(*greaterThan)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates *(*lessThan)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates *(*greaterThanOrEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates *(*lessThanOrEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates *(*orderBy)(OH_Predicates *predicates, const char *field, OH_OrderType type); - OH_Predicates *(*distinct)(OH_Predicates *predicates); - OH_Predicates *(*limit)(OH_Predicates *predicates, unsigned int value); - OH_Predicates *(*offset)(OH_Predicates *predicates, unsigned int rowOffset); - OH_Predicates *(*groupBy)(OH_Predicates *predicates, char const *const *fields, int length); - OH_Predicates *(*in)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates *(*notIn)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject); - OH_Predicates *(*clear)(OH_Predicates *predicates); - ``` - -**适配指导** -示例代码如下: - -变更前代码示例: - -``` -predicates->beginWrap(predicates).equalTo(predicates, "data1", valueObject).orOperate(predicates); -``` - -变更后代码示例: - -``` -predicates->beginWrap(predicates)->equalTo(predicates, "data1", valueObject)->orOperate(predicates); -``` - -## cl.distributeddatamgr.3 OH_Rdb_ErrCode结构体的错误码信息变更 - -**变更影响** - -该变更主要为将 RDB_ERR_INVALID_ARGS, RDB_ERR_OK错误码更改为RDB_E_INVALID_ARGS和RDB_OK,并增加其他错误码。 - -**关键接口/组件变更** - -修改前的OH_Rdb_ErrCode成员变量原型: - - ```ts - RDB_ERR_INVALID_ARGS = -2, - RDB_ERR = -1, - RDB_ERR_OK = 0 - ``` - -修改后的OH_Predicates成员变量原型: - - ```ts - RDB_ERR = -1, - RDB_OK = 0, - E_BASE = 14800000, - RDB_E_NOT_SUPPORTED = 801, - RDB_E_ERROR = E_BASE, - RDB_E_INVALID_ARGS = (E_BASE + 1), - RDB_E_CANNOT_UPDATE_READONLY = (E_BASE + 2), - RDB_E_REMOVE_FILE = (E_BASE + 3), - RDB_E_EMPTY_TABLE_NAME = (E_BASE + 5), - RDB_E_EMPTY_VALUES_BUCKET = (E_BASE + 6), - RDB_E_EXECUTE_IN_STEP_QUERY = (E_BASE + 7), - RDB_E_INVALID_COLUMN_INDEX = (E_BASE + 8), - RDB_E_INVALID_COLUMN_TYPE = (E_BASE + 9), - RDB_E_EMPTY_FILE_NAME = (E_BASE + 10), - RDB_E_INVALID_FILE_PATH = (E_BASE + 11), - RDB_E_TRANSACTION_IN_EXECUTE = (E_BASE + 12), - RDB_E_INVALID_STATEMENT = (E_BASE + 13), - RDB_E_EXECUTE_WRITE_IN_READ_CONNECTION = (E_BASE + 14), - RDB_E_BEGIN_TRANSACTION_IN_READ_CONNECTION = (E_BASE + 15), - RDB_E_NO_TRANSACTION_IN_SESSION = (E_BASE + 16), - RDB_E_MORE_STEP_QUERY_IN_ONE_SESSION = (E_BASE + 17), - RDB_E_NO_ROW_IN_QUERY = (E_BASE + 18), - RDB_E_INVALID_BIND_ARGS_COUNT = (E_BASE + 19), - RDB_E_INVALID_OBJECT_TYPE = (E_BASE + 20), - RDB_E_INVALID_CONFLICT_FLAG = (E_BASE + 21), - RDB_E_HAVING_CLAUSE_NOT_IN_GROUP_BY = (E_BASE + 22), - RDB_E_NOT_SUPPORTED_BY_STEP_RESULT_SET = (E_BASE + 23), - RDB_E_STEP_RESULT_SET_CROSS_THREADS = (E_BASE + 24), - RDB_E_STEP_RESULT_QUERY_NOT_EXECUTED = (E_BASE + 25), - RDB_E_STEP_RESULT_IS_AFTER_LAST = (E_BASE + 26), - RDB_E_STEP_RESULT_QUERY_EXCEEDED = (E_BASE + 27), - RDB_E_STATEMENT_NOT_PREPARED = (E_BASE + 28), - RDB_E_EXECUTE_RESULT_INCORRECT = (E_BASE + 29), - RDB_E_STEP_RESULT_CLOSED = (E_BASE + 30), - RDB_E_RELATIVE_PATH = (E_BASE + 31), - RDB_E_EMPTY_NEW_ENCRYPT_KEY = (E_BASE + 32), - RDB_E_CHANGE_UNENCRYPTED_TO_ENCRYPTED = (E_BASE + 33), - RDB_E_CHANGE_ENCRYPT_KEY_IN_BUSY = (E_BASE + 34), - RDB_E_STEP_STATEMENT_NOT_INIT = (E_BASE + 35), - RDB_E_NOT_SUPPORTED_ATTACH_IN_WAL_MODE = (E_BASE + 36), - RDB_E_CREATE_FOLDER_FAIL = (E_BASE + 37), - RDB_E_SQLITE_SQL_BUILDER_NORMALIZE_FAIL = (E_BASE + 38), - RDB_E_STORE_SESSION_NOT_GIVE_CONNECTION_TEMPORARILY = (E_BASE + 39), - RDB_E_STORE_SESSION_NO_CURRENT_TRANSACTION = (E_BASE + 40), - RDB_E_NOT_SUPPORT = (E_BASE + 41), - RDB_E_INVALID_PARCEL = (E_BASE + 42), - RDB_E_QUERY_IN_EXECUTE = (E_BASE + 43), - RDB_E_SET_PERSIST_WAL = (E_BASE + 44), - RDB_E_DB_NOT_EXIST = (E_BASE + 45), - RDB_E_ARGS_READ_CON_OVERLOAD = (E_BASE + 46), - RDB_E_WAL_SIZE_OVER_LIMIT = (E_BASE + 47), - RDB_E_CON_OVER_LIMIT = (E_BASE + 48) - ``` - diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-mediaLibrary.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-mediaLibrary.md deleted file mode 100644 index caade19501..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-mediaLibrary.md +++ /dev/null @@ -1,147 +0,0 @@ -# 文件子系统ChangeLog - -## cl.file.1 mediaLibrary相关接口兼容性变更 - -mediaLibrary部分接口兼容性变更。 - -**变更影响** - -[mediaLibrary](../../../application-dev/reference/apis/js-apis-medialibrary.md)部分接口兼容性变更。 -基于此前版本开发的应用,需注意接口的迭代更新。 - -**关键接口/组件变更** - -| 模块名 | 方法/属性/枚举/常量 | 变更类型 | -| ------------------------- | ------------------------------------------------------------ | -------- | -| medialibrary | **function** getFileAssets(options: MediaFetchOptions, callback: AsyncCallback<FetchFileResult>): void | 接口兼容性变更 | -| medialibrary | **function** getFileAssets(options: MediaFetchOptions): Promise<FetchFileResult> | 接口兼容性变更 | -| medialibrary | **function** createAsset(mediaType: MediaType, displayName: string, relativePath: string, callback: AsyncCallback<FileAsset>): void| 接口兼容性变更 | -| medialibrary | **function** createAsset(mediaType: MediaType, displayName: string, relativePath: string): Promise<FileAsset>| 接口兼容性变更 | -| medialibrary | **function** getAlbums(options: MediaFetchOptions, callback: AsyncCallback<Array<Album>>): void | 接口兼容性变更 | -| medialibrary | **function** getAlbums(options: MediaFetchOptions): Promise<Array<Album>> | 接口兼容性变更 | -| medialibrary | **function** FileAsset.commitModify(callback: AsyncCallback<void>): void | 接口兼容性变更 | -| medialibrary | **function** FileAsset.commitModify(): Promise<void> | 接口兼容性变更 | - -**适配指导** - -**getFileAssets接口获取文件资源兼容性影响:** - -在API version 10上,摒弃了物理目录作为相册的设计,采用了逻辑相册的设计,一个相册中可以添加多个文件,一个文件也可以在多个相册中呈现。新的设计将带来parent、albumId、albumUri和albumName属性使用上的不兼容,无法作为MediaFetchOptions的参数在getFileAssets接口中使用。下面示例代码为错误示例: - -1. 使用[getMediaLibrary](../../../application-dev/reference/apis/js-apis-medialibrary.md#medialibrarygetmedialibrary)接口获取媒体库实例。 -2. 创建检索条件[MediaFetchOptions](../../../application-dev/reference/apis/js-apis-medialibrary.md#mediafetchoptions7)。 -3. 调用[getFileAssets](../../../application-dev/reference/apis/js-apis-medialibrary.md#getfileassets7)接口获取文件资源。 - -**错误示例:** - -```js -import mediaLibrary from '@ohos.multimedia.mediaLibrary'; - -async function example() { - try { - let context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - let fileKeyObj = mediaLibrary.FileKey; - let albumId = 1; - let getImageOp = { - selections: fileKeyObj.ALBUM_ID + '= ?', // 使用parent、albumId、albumUri和albumName属性查询均无法获取文件资源。 - selectionArgs: [albumId.toString()], - }; - const fetchFileResult = await media.getFileAssets(getImageOp); // 查询失败,获取的fetchFileResult为空。 - const fileAsset = await fetchFileResult.getFirstObject(); - console.info('mediaLibrary fileAsset displayName: ' + fileAsset.displayName); - } catch (err) { - console.error('mediaLibrary fail, err: ' + err); - } -} -``` - -推荐使用以下方式调用getFileAssets接口获取文件资源: - -**正确示例:** - -```js -import mediaLibrary from '@ohos.multimedia.mediaLibrary'; - -async function example() { - try { - let context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - let fileKeyObj = mediaLibrary.FileKey; - let imageType = mediaLibrary.MediaType.IMAGE; - let getImageOp = { - selections: fileKeyObj.MEDIA_TYPE + '= ?', - selectionArgs: [imageType.toString()], // 查询所有图片类型的文件。 - }; - const fetchFileResult = await media.getFileAssets(getImageOp); - const fileAsset = await fetchFileResult.getFirstObject(); - console.info('mediaLibrary fileAsset displayName: ' + fileAsset.displayName); - } catch (err) { - console.error('mediaLibrary fail, err: ' + err); - } -} -``` - -**createAsset接口创建相册兼容性影响:** - -由于API version 10的SDK上relativePath和相册没有关联关系,文件创建成功后,relativePath的最后一级目录不会作为相册呈现。 - -**getAlbums接口获取相册兼容性影响:** - -由于API version 10的SDK上relativePath和相册没有关联关系,在使用getAlbums时不支持relativePath作为查询条件,并且ALBUM_NAME参数只能使用"Camera"和"Screenshots"。下面示例代码为错误示例: - -1. 使用[getMediaLibrary](../../../application-dev/reference/apis/js-apis-medialibrary.md#medialibrarygetmedialibrary)接口获取媒体库实例。 -2. 创建相册检索条件[MediaFetchOptions](../../../application-dev/reference/apis/js-apis-medialibrary.md#mediafetchoptions7)。 -3. 调用[getAlbums](../../../application-dev/reference/apis/js-apis-medialibrary.md#getalbums7)接口获取相册。 - -**错误示例:** - -```js -import mediaLibrary from '@ohos.multimedia.mediaLibrary'; - -async function example() { - try { - let context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - let AlbumNoArgsfetchOp = { - selections: mediaLibrary.FileKey.ALBUM_NAME + ' = ?', - selectionArgs: ['新建相册1'], // 获取albumName为新建相册1的相册。 - }; - const albumList = await media.getAlbums(AlbumNoArgsfetchOp); // 查询失败,获取的fetchFileResult为空。 - for (let i = 0; i < albumList.length; i++) { - console.info('mediaLibrary album albumName: ' + albumList[i].albumName); - } - } catch (err) { - console.error('mediaLibrary fail, err: ' + err); - } -} -``` - -使用如下示例代码可以获取Camera和Screenshots相册。 - -**正确示例:** - -```js -import mediaLibrary from '@ohos.multimedia.mediaLibrary'; - -async function example() { - try { - let context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - let AlbumNoArgsfetchOp = { - selections: mediaLibrary.FileKey.ALBUM_NAME + ' = ? OR ' + mediaLibrary.FileKey.ALBUM_NAME + ' = ?', - selectionArgs: ['Camera', 'Screenshots'], // 获取相机相册和截屏录屏相册。 - }; - const albumList = await media.getAlbums(AlbumNoArgsfetchOp); - for (let i = 0; i < albumList.length; i++) { - console.info('mediaLibrary album albumName: ' + albumList[i].albumName); - } - } catch (err) { - console.error('mediaLibrary fail, err: ' + err); - } -} -``` - -**FileAsset.commitModify接口获取相册兼容性影响:** - -在API version 10的SDK上去掉了针对audio无意义的orientation属性,在使用commitModify接口时将无法对audio资源的orientation属性进行修改。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-miscdevice.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-miscdevice.md deleted file mode 100755 index 671a7e017c..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.2/changelogs-miscdevice.md +++ /dev/null @@ -1,80 +0,0 @@ -# 泛Sensor子系统Changelog - - -## cl.vibrator.1 新增自定义振动相关属性 - -新增自定义振动效果属性VibrateFromFile,自定义振动配置文件描述符属性HapticFileDescriptor;振动下发接口startVibration支持的振动效果由VibrateEffect = VibrateTime | VibratePreset扩展为VibrateEffect = VibrateTime | VibratePreset | VibrateFromFile。 - -**变更影响** - -基于OpenHarmony4.0.8.2及之后的SDK版本开发的应用,可使用VibrateFromFile属性在支持自定义振动的设备上播放自定义振动文件中配置的振动序列。 - -**关键接口/组件变更** - -@ohos.vibrator.d.ts中新增属性VibrateFromFile,HapticFileDescriptor。 - -| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | -| -- | -- | -- | -- | -| @ohos.vibrator.d.ts | vibrator | HapticFileDescriptor | 新增 | -| @ohos.vibrator.d.ts | vibrator | VibrateFromFile | 新增 | - -**适配指导**
- -通过资源管理接口获取振动配置文件资源,启动自定义振动并停止。 - -```ts -import vibrator from '@ohos.vibrator'; -import resourceManager from '@ohos.resourceManager'; - -const FILE_NAME = "xxx.json"; - -async function openResource(fileName) { - let fileDescriptor = undefined; - let mgr = await resourceManager.getResourceManager(); - await mgr.getRawFd(fileName).then(value => { - fileDescriptor = {fd: value.fd, offset: value.offset, length: value.length}; - console.log('openResource success fileName: ' + fileName); - }).catch(error => { - console.log('openResource err: ' + error); - }); - return fileDescriptor; -} - -async function closeResource(fileName) { - let mgr = await resourceManager.getResourceManager(); - await mgr.closeRawFd(fileName).then(()=> { - console.log('closeResource success fileName: ' + fileName); - }).catch(error => { - console.log('closeResource err: ' + error); - }); -} - -// 获取振动文件资源描述符 -let rawFd = openResource(FILE_NAME); -// 使用startVibration、stopVibration需要添加ohos.permission.VIBRATE权限 -try { - // 启动自定义振动 - vibrator.startVibration({ - type: "file", - hapticFd: { fd: rawFd.fd, offset: rawFd.offset, length: rawFd.length } - }, { - usage: "alarm" - }).then(() => { - console.info('startVibration success'); - }, (error) => { - console.info('startVibration error'); - }); - // 停止所有类型的马达振动 - vibrator.stopVibration(function (error) { - if (error) { - console.log('error.code' + error.code + 'error.message' + error.message); - return; - } - console.log('Callback returned to indicate successful.'); - }) -} catch (error) { - console.info('errCode: ' + error.code + ' ,msg: ' + error.message); -} -// 关闭振动文件资源 -closeResource(FILE_NAME); -``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.3/changelogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.3/changelogs-arkui.md deleted file mode 100644 index 05ba498093..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.3/changelogs-arkui.md +++ /dev/null @@ -1,9 +0,0 @@ -# arkui子系统ChangeLog - -## cl.arkui.1 FormComponent组件中的JS卡片禁用网络图片 - -FormComponent组件中的JS卡片禁止使用网络图片。 - -**变更影响** - -影响FormComponent中JS卡片中网络图片的加载显示。变更前JS卡片支持网络图片加载,变更后JS卡片不支持网络图片的加载。变更后建议将所需的网络图片下载至内存后刷新。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.5/changelogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.5/changelogs-arkui.md deleted file mode 100644 index 2266cab6e9..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.5/changelogs-arkui.md +++ /dev/null @@ -1,83 +0,0 @@ -# arkui子系统ChangeLog - -## cl.arkui.1 stack组件alignContent属性和通用属性align生效顺序 - -**说明** -属性之间的处理原则:如果功能相同,属性按覆盖处理即后设置的生效。alignContent和align功能相同,都是子组件在stack容器组件的对齐方式。 - -**示例:** -```ts -// xxx.ets -@Entry -@Component -struct StackExample { - build() { - Stack({alignContent:Alignment.Start}){ - Text("Stack's child").backgroundColor(Color.Brown).height("100").width(100) - } - .width(300).height(300) - .backgroundColor(Color.Pink) - .align(Alignment.Center) - .alignContent(Alignment.TopEnd) - } -} -``` - -API version 9:子组件按照通用属性align布局 - -![stack](figures/api9.png) - - -API version 10及以后:子组件按照后设置的alignContent布局 - -![stack](figures/api10_and_later.png) - -**变更影响** - -alignContent和align都设置时,API version 9及以前是align生效,API version 10及以后是后设置的生效。 - -## cl.arkui.2 canvas组件fillText接口和strokeText接口行为变更 - -**说明** -fillText和strokeText接口在绘制文字时,不会换行。 - -**示例:** -```ts -// xxx.ets -@Entry -@Component -struct FillText { - private settings: RenderingContextSettings = new RenderingContextSettings(true) - private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings) - - build() { - Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { - Canvas(this.context) - .width('100%') - .height('100%') - .backgroundColor('#ffff00') - .onReady(() =>{ - this.context.font = '50px sans-serif' - this.context.fillText("Hello World!", 0, 100) - this.context.fillText("Hello World! This is a long string to fully show", 0, 150) - this.context.strokeText("Hello World!", 0, 250) - this.context.strokeText("Hello World! This is a long string to fully show", 0, 300) - }) - } - .width('100%') - .height('100%') - } -} -``` - -API version 9:fillText和strokeText接口在绘制文字时,会根据组件宽度换行。 - -![stack](figures/api9filltext.jpeg) - -API version 10及以后:fillText和strokeText接口在绘制文字时,不会换行。 - -![stack](figures/api10filltext.jpeg) - -**变更影响** - -fillText和strokeText接口在绘制文字时,API version 9及以前是根据组件宽度换行,API version 10及以后是不会换行。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.5/figures/api10_and_later.png b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.5/figures/api10_and_later.png deleted file mode 100644 index a5c7e90386f90da43daebe82165ef728dbf0d1d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6449 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 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.5/figures/api10filltext.jpeg b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.5/figures/api10filltext.jpeg deleted file mode 100755 index 36593fdc0a4f8386c703094e58543c19a83c16fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65703 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 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.5/figures/api9.png b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.5/figures/api9.png deleted file mode 100644 index ab945f0162be71defb1d3f6de5ae59fcb15a846e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7184 zcmeHLd0bOhzQ1gOpdb=JTP0OM5CKPJsUk$gK!pJs6eFmlpe#Z$q5^^@sVE{*3!)JP zF%lL9lt9@EfusU%P{c%K2|@q~TL?>lK-N1qo%fv4zUilZ_K){wyg9#ol5_4k_xC-& z?RzfR0rmn*++BCN0!m6sz&Fqb0J{JeKt)+u(V$BeYHAv4YO1Pgn(FEcG!|(tTBN0^ zrL|al>5|3Ty4qS=OAMCi>cRB&^%vR;!{NtIM90LQjEg^eF7bTQ zg=Avd)oY~d={Ig>P;zqf^6%a&DEy(UyrQz|$LgB;hQ>#apFDlm#CrMabz6H!C%doz z?ErUhXn16FN-#Y$E1a7bi50k%0F}SPdWY--T)Gf0WmQ!bRdod}CFNL1RCHCyvAFtO<~ol-#i1=;Tdmhitq_72!TaIt|! zDoT*?RCECZAR&<5H_zlzs;%+lvAzy-3ej4URF-rIhC&+R8af+(&@`u9r1y>Wb*imk zBCSp-#@3APXCfUGor?QaI-iuFkT9Jz#{{DJoz2D_?g&kP^B+a%K!oNmzm65xhe`)8 zfxs;m(<7j-*{D8<=)bmmPTRNR$l+HgkAVJxl)%k78UAZ8ra7kGbh>s(?88KIqE1;5 znxG{MebPpan#h7|hArH73vn~|jpHo@3DE1s}ritNhM!~U$%nncf93*-yYg?Ny1_x8#-MScrR~<&?5X0AJknoK z{cLOue~!?w=d?8lWT%2aFMS9EE~7wTvEL+3e%=KH5+r1~E#~$N8qr>8L={@;42BN7 zNo_;xC*C~;KKYug#TY(>m|tHF0&jgq6G%Ab9=xL*ag&_=!Qk#+Jq$fm2gBj-5Q1LF zLw=_&s9EtD*+m!8O|kBWntq@f{uI-#eN_Gbn%df&ir5CD9#d$?Y7{%xc2d2+Dv`cM zRwdW1+a+-uJ9Qca-gp>vcL{M^%y##|WymGGvzv_L=Ju&%e zyfPPiWmsXt>@|FN;Im~Z4E@g+P{nX;EbZZfjlSH#C;BPuY`RBt^(7gbI|Vs5|g zJ4l|;p+3XT#@R|C`=f8;G$3jKK(Yv8Mmu<~pzni_iOxXSyz0xKU#a!K!yKFcTyx}X z+nO#cdOsP}L`cGd1$nn^2;&au;ZS~HH6fH^paBBykrkaFa0Z1QjJc4pj-6LAqnn=% z0#^7ohJ(F?9}r-no8|FFD3Jbj#OG+@{jS&}%^rlCZOr{`b&JG^^8s2|yD-L3S@U!w zjTh7==UN3{7qpJ`_)K(a#nFmdvyApmV;(TpPdlBzy=7zJu&4h{v+f9jz?!)i1iD_< zGi?XSrWLgh%AUu#b;-rPbsl^6Eg+gE7auVN0bfmmzDu47Yl83-^WeQNn_^iG!ysT* z5X}i1$5wmpObd2RCNb%}ypT0{jxBX>4DB}hHI;6Xa<55Ws?rEpwzYrCK7J^HCY_nKGpGEJ-^M*v@J(rH znyg=Bdg9Oyw459K*|989{7T=Vmv^Y^rwM2Br;*yN8+|=nN@J^f!lRG-_vBI|^7fbe zxKvKX8dF=P(b2XeKBMMT%R^fiZ(5bHHvNQ8QNE09yeHmMU21|g>_qe7!5m?VFjm%7aHks?n#=KC_bqWPHx>lw z!@`YR#@+t#DdMKGc^n^SB@f|kp^S%gT=aDFBYn08?J6lIosFY6Q zT?GNS`-{m5>31_AAns*|)sXHR?;0JBExGqL@Iuj8K@7bnx@y<<-}LndN6C*a{K--4 z`rSzo;D@o05~um%Ln+Ts>_hLC&xxVveI%>O39lrKr2RzhIsbOz0se|2)jDr|muh1@ z10!tc-&QhdAb@MDt=;{~!v6^)omsT!+%2n!ijd-pD$$BU6Kd~emkCGupuipkTCHYF z3nC(9Nm0k|Hm_hc7R`N*XR|v6{CnAD30(w|>d|pYmtk;JP5Ve22&9XQDz+~6M;*O1 zmvEWS7R$}xR9vRSY|j7wTv}y&=ir2^2n4F7wxxJp{(MG{IHogv(w06aA$HBRQH7DW z+c9O%rS!S+tAhnudxF`c#pE~fRTn%>*&vXdxb=s-n{H*1X_4aiI_zj@OJQdZGFDaZ z{`1mJm91HbiJBpsu81tVR`0gFbp8g*eV?slj8Z@#h^7&F=lpsL^PC;nUgX`}4JH9T zjRgiRG&?EDX0*`#g)6BS!G5Xlim=a*$CuTJ*W#gDFjx%9beddptpodo*D>9!MjpPeeo3@WME zu%+jD8@+0lGa0|M9YF~|8r8)X)gM zeBGPT#;l7H_$%Awm9tn}Ewla33#C`{r zYd71&h)K>S27B9?;vO)D{JYreimblJ7J8xX<<4f+L7?5qX!-h#?gI5v>0sHG@r68C^6>IQpypI!0OBPsO}i)qTuu8W5<$$SjBq$D$dtU&yTbKa*L@W3s+kk(Hck!ngsIx!&p- zbPRMb*0?_vWXGV~V;(W2Oa)(sU@AFpgA%y+*nG?r^Ss{hXg`~y%ieTa*C z%`J>>6I?JGhC0L)(|}j*}>O$*<%+cRHPg*(^ zHGzh40)d8w2$^;R2&iFX^x9j#%U@;nr(`!xmH%btR=C4~HzFsZxIw-Q3j5(0_`C&V zff+)B2IJk7ALRx6O2EunJmw>=|U4nRJl3bG^!NDi%*F&KXbv}er05)fo zL{k?Q>xmdD1LAc&o%ujRD4%o?dLbHB#RP#xt3hDKK}V`j5Q?1&_LUIA`~JcCOq{j|AxhMt@Be%`q;$zY5vC-pHF-E|7Z_e zmglk^&DoA?59s}z_}_obYqSqphqbI>j<_;MkS~s}I_`SdF2x;c)@N^OWo+769*=_B zi4{-xGc!DMSeJ8H7w-&iAH2khG`a@01L_+MZ9=Yw&E$m5P=+_BR_EAcy5)WDmS^bv KANLSA*!ed?F=#OW diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.5/figures/api9filltext.jpeg b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.8.5/figures/api9filltext.jpeg deleted file mode 100755 index f4b4ecdfaafa614fc42af83d847654305d492fb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79905 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 | | -| native_avdemuxer.h | | | -| native_avsource.h | | | - -**变更影响** - -对于已发布的SDK,可能影响三方应用的兼容性。 - -**适配指导** - -开发人员需要在引用封装解封装头文件时,修改头文件引用路径。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-accessToken.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-accessToken.md deleted file mode 100644 index 45bec1d566..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-accessToken.md +++ /dev/null @@ -1,71 +0,0 @@ -# 程序访问控制子系统ChangeLog - -## cl.accessToken.1 "媒体和文件"权限组拆分 -原"媒体和文件"权限组内包含以下权限: -- ohos.permission.MEDIA_LOCATION -- ohos.permission.READ_MEDIA -- ohos.permission.WRITE_MEDIA - -对这三个权限所属的权限组进行调整: -- ohos.permission.MEDIA_LOCATION 划分到 "图片和视频" 权限组 -- ohos.permission.READ_MEDIA 和 ohos.permission.WRITE_MEDIA 划分到 "文件" 权限组。 - - -**变更影响** - -权限弹窗是以权限组为单位进行展示的。 - -- 在变更前,如果开发者同时申请以上三个权限,应用仅会弹一次申请"媒体和文件"权限的弹窗; -- 在变更后,如果开发者同时申请以上三个权限,应用会分别弹一次申请"图片和视频"权限的弹窗和申请"文件"权限的弹窗; - -**关键的接口/组件变更** - -修改前的权限组归属: - -| 权限 | 所属权限组 | -| -------- | ---------------------------- | -| ohos.permission.MEDIA_LOCATION | 媒体和文件 | -| ohos.permission.READ_MEDIA | 媒体和文件 | -| ohos.permission.WRITE_MEDIA | 媒体和文件 | - -修改后的权限组归属: - -| 权限 | 所属权限组 | -| -------- | ---------------------------- | -| ohos.permission.MEDIA_LOCATION | 图片和视频 | -| ohos.permission.READ_MEDIA | 文件 | -| ohos.permission.WRITE_MEDIA | 文件 | - - -**适配指导** - -应用开发者无需适配。 - -## cl.accessToken.2 “电话”/“信息”/“通话记录”权限组的权限申请方式调整 - “电话”/“信息”/“通话记录”权限组的共包含以下权限: -- ohos.permission.ANSWER_CALL -- ohos.permission.MANAGE_VOICEMAIL -- ohos.permission.READ_CELL_MESSAGES -- ohos.permission.READ_MESSAGES -- ohos.permission.RECEIVE_MMS -- ohos.permission.RECEIVE_SMS -- ohos.permission.RECEIVE_WAP_MESSAGES -- ohos.permission.SEND_MESSAGES -- ohos.permission.READ_CALL_LOG -- ohos.permission.WRITE_CALL_LOG -- ohos.permission.MEDIA_LOCATION - -当前调整这些权限的申请方式:这些权限仅能通过预授权方式进行授权。 - - -**变更影响** - -当前申请这些权限的系统应用无法通过权限弹窗进行权限请求,仅能通过预授权方式获取权限。 - -**关键的接口/组件变更** - -不涉及。 - -**适配指导** - -申请上述权限时,需要调整权限请求方式,申请权限预授权。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-arkcompiler.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-arkcompiler.md deleted file mode 100644 index 29d80e76f3..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-arkcompiler.md +++ /dev/null @@ -1,23 +0,0 @@ -# arkcompiler子系统ChangeLog - -## cl.arkcompiler.1 sdk中ts2abc编译器下线 - -sdk中arkcompiler原有两个编译器支持ets/js的编译,分别是ts2abc编译器和es2abc编译器。在这个版本的迭代中,ts2abc编译器已经下线,无法调用ts2abc编译器生成abc文件。开发者可以在sdk的ets\build-tools\ets-loader\bin以及js\build-tools\ets-loader\bin目录下发现如下图所示的变更。 - -![stack](figures/api10_sdk_arkcompiler_component_change.png) - -**变更影响**
-升级新版本的sdk后,使用DevEco进行应用开发时不会有任何影响。如果利用脚本调用sdk中的ts2abc编译器进行编译生成abc操作时,需要调用es2abc编译器进行开发。 - -**关键的接口/组件变更** -arkcompiler前端编译器中的ts2abc下线 - -**适配指导** -1. 对于利用DevEco进行应用开发的开发者而言,ts2abc编译器的下线不会造成任何影响,不需要做适配 -2. 对于自己开发脚本调用sdk中的ts2abc编译器的开发者而言,需要切换为调用es2abc编译器来生成abc文件。es2abc编译器的使用说明以及与ts2abc编译器的对比请参考[es2abc和ts2abc使用说明](https://gitee.com/openharmony/arkcompiler_ets_frontend#%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E). 假设编译的文件名叫a.js文件,对于使用频率最高的生成abc文件,两者的编译命令如下: - - script模式编译 - 1. es2abc: es2abc a.js --output a.abc - 2. ts2abc: node --expose-gc pathToIndex/index.js a.js --output a.abc - - module模式编译 - 1. es2abc: es2abc a.js --module --output a.abc - 2. ts2abc: node --expose-gc pathToIndex/index.js a.js --module --output a.abc \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-arkui.md deleted file mode 100644 index e303e499ff..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-arkui.md +++ /dev/null @@ -1,132 +0,0 @@ -# arkui子系统ChangeLog - -## cl.arkui.1 通用事件参数支持undefined - -通用事件(点击事件、触摸事件、挂载卸载事件、按键事件、焦点事件、鼠标事件、组件区域变化事件)参数支持undefined。 - -**示例:** - -```ts -// xxx.ets -@Entry -@Component -struct Example { - build() { - Button("test") - .onClick(()=>{ - console.log("click"); - }) - .onClick(undefined) - } -} -``` - -**变更影响** - -如果事件回调参数为undefined,那么将不再响应已经设置的事件回调。 - - -**关键的接口/组件变更** - -不涉及。 - -**适配指导** - -当事件参数设置为undefined,将会禁用该事件,依据实际应用开发场景进行参数设置即可。 - - -## cl.arkui.2 @Prop/@BuilderParam 状态变量需要初始化或从父组件传值 - -**示例:** - -```ts -// xxx.ets -@Entry -@Component -struct Parent { - @State message: string = 'Parent' - build() { - Column() { - Child() // 编译报错 - } - } -} - -@Component -struct Child { - @Prop message: string - build() { - Column() { - - } - } -} -``` - -**变更影响** - -当@Prop/@BuilderParam 状态变量未初始化且未从父组件传值时,编译无法通过。 - - -**关键的接口/组件变更** - -不涉及。 - -**适配指导** - -对@Prop/@BuilderParam 状态变量做初始化赋值或从父组件调用子组件时传入。 - - -## cl.arkui.3 @BuilderParam 状态变量初始化赋值必须为@Builder函数/方法 - -**示例:** - -```ts -// xxx.ets -@Builder -function builderFunction() { - Text('Hello Builder') -} - -function normal () { - -} - -@Component -struct Index { - @BuilderParam builderParam: ()=>void = builderFunction - @BuilderParam builderParam2: ()=>void = normal // 编译报错 - build() { - Column() { - - } - } -} -``` - -**变更影响** - -@BuilderParam 状态变量初始化赋值非@Builder方法时,编译无法通过。 - - -**关键的接口/组件变更** - -不涉及。 - -**适配指导** - -@BuilderParam 状态变量初始化赋值传入@Builder方法。 - -## cl.arkui.4 Search组件的searchButton属性中SearchButtonOption修改为SearchButtonOptions - -**变更影响** - -如果显式地使用了SearchButtonOption类型,编译无法通过。 - -**关键的接口/组件变更** - -searchButton属性中类型SearchButtonOption修改为SearchButtonOptions。 - -**适配指导** - -SearchButtonOption修改为SearchButtonOptions。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-bundlemanager.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-bundlemanager.md deleted file mode 100644 index 46115e472b..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-bundlemanager.md +++ /dev/null @@ -1,111 +0,0 @@ -# 包管理子系统ChangeLog -## cl.bundlemanager.1 包管理@ohos.bundle.d.ts中getAllBundleInfo接口底层实现变更。 - -@ohos.bundle.d.ts中getAllBundleInfo接口已标记废弃,在targetAPILevel为API9及之后的版本镜像上,返回数据列表为空。 - -**变更影响**
-升级新版本镜像后,使用@ohos.bundle.d.ts中的getAllBundleInfo的接口调用成功后返回数据列表为空。需要应用调用新的接口@ohos.bundle.bundleManager.d.ts中的getAllBundleInfo。 - -**关键的接口/组件变更**
-底层实现变更,使用@ohos.bundle.d.ts中的getAllBundleInfo的接口调用成功后返回数据列表为空。 - -**适配指导**
-1. 应用在使用@ohos.bundle.d.ts中getAllBundleInfo接口的地方可以修改为使用@ohos.bundle.bundleManager.d.ts中getAllBundleInfo,新接口使用方法可参考[指南](../../../application-dev/reference/apis/js-apis-bundleManager.md#bundlemanagergetallbundleinfo)。 -```ets -import bundleManager from '@ohos.bundle.bundleManager'; -``` - -## cl.bundlemanager.2 包管理@ohos.bundle.d.ts中getAllApplicationInfo接口底层实现变更。 - -@ohos.bundle.d.ts中getAllApplicationInfo接口已标记废弃,在targetAPILevel为API9及之后的版本镜像上,返回数据列表为空。 - -**变更影响**
-升级新版本镜像后,使用@ohos.bundle.d.ts中的getAllApplicationInfo的接口调用成功后返回数据列表为空。需要应用调用新的接口@ohos.bundle.bundleManager.d.ts中的getAllApplicationInfo。 - -**关键的接口/组件变更**
-底层实现变更,使用@ohos.bundle.d.ts中的getAllApplicationInfo的接口调用成功后返回数据列表为空。 - -**适配指导**
-1. 应用在使用@ohos.bundle.d.ts中getAllApplicationInfo接口的地方可以修改为使用@ohos.bundle.bundleManager.d.ts中getAllApplicationInfo,新接口使用方法可参考[指南](../../../application-dev/reference/apis/js-apis-bundleManager.md#bundlemanagergetallapplicationinfo)。 -```ets -import bundleManager from '@ohos.bundle.bundleManager'; -``` - -## cl.bundlemanager.3 包管理@ohos.bundle.bundleManager.d.ts中getAllBundleInfo接口权限变更。 - -获取应用列表接口需要由用户选择是否同意授权,因此将 -@ohos.bundle.bundleManager.d.ts中getAllBundleInfo接口权限变更为ohos.permission.GET_INSTALLED_BUNDLE_LIST。 - -**变更影响**
-升级新版本镜像后,使用getAllBundleInfo的接口需要申请新的权限ohos.permission.GET_INSTALLED_BUNDLE_LIST,否则接口会调用失败。 - -**关键的接口/组件变更**
-@ohos.bundle.bundleManager.d.ts中getAllBundleInfo接口权限变更为ohos.permission.GET_INSTALLED_BUNDLE_LIST。 - -**适配指导**
-1. 应用可以在配置文件中新增申请权限ohos.permission.GET_INSTALLED_BUNDLE_LIST。 -2. 该权限为user_grant类型的,安装时默认不会授权,需要应用调用弹框接口由用户选择是否授权或者使用预授权进行授权。 -3. 使用弹框授权方式可以参考[向用户申请授权](../../../application-dev/security/accesstoken-guidelines.md#向用户申请授权)。 -4. 使用预授权方式可以参考[权限预授权](../../../application-dev/security/accesstoken-guidelines.md#user_grant权限预授权)。 - -## cl.bundlemanager.4 包管理@ohos.bundle.bundleManager.d.ts中getAllApplicationInfo接口权限变更。 - -获取应用列表接口需要由用户选择是否同意授权,因此将 -@ohos.bundle.bundleManager.d.ts中getAllApplicationInfo接口权限变更为ohos.permission.GET_INSTALLED_BUNDLE_LIST。 - -**变更影响**
-升级新版本镜像后,使用getAllApplicationInfo的接口需要申请新的权限ohos.permission.GET_INSTALLED_BUNDLE_LIST,否则接口会调用失败。 - -**关键的接口/组件变更**
-@ohos.bundle.bundleManager.d.ts中getAllApplicationInfo接口权限变更为ohos.permission.GET_INSTALLED_BUNDLE_LIST。 - -**适配指导**
-1. 应用可以在配置文件中新增申请权限ohos.permission.GET_INSTALLED_BUNDLE_LIST。 -2. 该权限为user_grant类型的,安装时默认不会授权,需要应用调用弹框接口由用户选择是否授权或者使用预授权进行授权。 -3. 使用弹框授权方式可以参考[向用户申请授权](../../../application-dev/security/accesstoken-guidelines.md#向用户申请授权)。 -4. 使用预授权方式可以参考[权限预授权](../../../application-dev/security/accesstoken-guidelines.md#user_grant权限预授权)。 - -## cl.bundlemanager.5 包管理@ohos.bundle.installer.d.ts中getSpecifiedDistributionType接口移动到@ohos.bundle.bundleManager.d.ts中。 - -包管理@ohos.bundle.installer.d.ts中getSpecifiedDistributionType接口移动到@ohos.bundle.bundleManager.d.ts中。 - -**变更影响**
-升级新版本SDK后,包管理@ohos.bundle.installer.d.ts中getSpecifiedDistributionType接口移动到@ohos.bundle.bundleManager.d.ts中。 - -**关键的接口/组件变更**
-包管理@ohos.bundle.installer.d.ts中getSpecifiedDistributionType接口移动到@ohos.bundle.bundleManager.d.ts中。 - -**适配指导**
-1. 修改导入模块,使用bundleManager中的getSpecifiedDistributionType -```ets -import bundleManager form '@ohos.bundle.bundleManager' -``` - -## cl.bundlemanager.6 包管理@ohos.bundle.installer.d.ts中getAdditionalInfo接口移动到@ohos.bundle.bundleManager.d.ts中。 - -包管理@ohos.bundle.installer.d.ts中getAdditionalInfo接口移动到@ohos.bundle.bundleManager.d.ts中。 - -**变更影响**
-升级新版本SDK后,包管理@ohos.bundle.installer.d.ts中getAdditionalInfo接口移动到@ohos.bundle.bundleManager.d.ts中。 - -**关键的接口/组件变更**
-包管理@ohos.bundle.installer.d.ts中getAdditionalInfo接口移动到@ohos.bundle.bundleManager.d.ts中。 - -**适配指导**
-1. 修改导入模块,使用bundleManager中的getAdditionalInfo -```ets -import bundleManager form '@ohos.bundle.bundleManager' -``` - -## cl.bundlemanager.7 应用配置文件module.json5中proxyDatas更名为proxyData。 - -由于命名规范问题,proxyDatas更名为proxyData。 - -**变更影响**
-升级新版本SDK后,proxyDatas更名为proxyData,应用如果不进行适配,将会编译失败。 - -**关键的接口/组件变更**
-proxyDatas更名为proxyData。 - -**适配指导**
-请使用proxyData替换proxyDatas,其内容不需要变更。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-security.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-security.md deleted file mode 100644 index af231cb94f..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/changelogs-security.md +++ /dev/null @@ -1,279 +0,0 @@ -# security子系统ChangeLog - -## cl.security.1 对API9中已经抛出的异常,补写throws标签 -对于在API9中已经抛出异常而JS DOC中漏写throws标签的接口,在since 9的注释中补上throws标签。 - -**变更影响** - -对于已发布的JS接口,可能影响异常处理流程,包括同步异常和异步异常。应用需要根据最新的throws标签,排查是否有遗漏的异常处理流程,结合实际情况进行适配。 - -**关键的接口/组件变更** - -修改前的接口原型: - - ```ts -interface Key { - /** - * Encode the key object to binary data. - * - * @returns { DataBlob } the binary data of the key object. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ - getEncoded(): DataBlob; -} - -interface AsyKeyGenerator { - /** - * Used to generate asymmetric key pair. - * - * @param { AsyncCallback } callback - the callback used to return keypair. - * @throws { BusinessError } 401 - invalid parameters. - * @throws { BusinessError } 17620001 - memory error. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ - generateKeyPair(callback: AsyncCallback): void; - - /** - * Used to generate asymmetric key pair. - * - * @returns { Promise } the promise used to return keypair. - * @throws { BusinessError } 401 - invalid parameters. - * @throws { BusinessError } 17620001 - memory error. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ - generateKeyPair(): Promise; - - /** - * Used to convert asymmetric key data to key pair object. - * - * @param { DataBlob } pubKey - the public key data blob. - * @param { DataBlob } priKey - the private key data blob. - * @param { AsyncCallback } callback - the callback used to return keypair. - * @throws { BusinessError } 401 - invalid parameters. - * @throws { BusinessError } 17620001 - memory error. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ - convertKey(pubKey: DataBlob, priKey: DataBlob, callback: AsyncCallback): void; - - /** - * Used to convert asymmetric key data to key pair object. - * - * @param { DataBlob } pubKey - the public key data blob. - * @param { DataBlob } priKey - the private key data blob. - * @returns { Promise } the promise used to return keypair. - * @throws { BusinessError } 401 - invalid parameters. - * @throws { BusinessError } 17620001 - memory error. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ - convertKey(pubKey: DataBlob, priKey: DataBlob): Promise; -} - -/** - * Provides the asymmetric key generator instance func. - * - * @param { string } algName - indicates the algorithm name. - * @returns { AsyKeyGenerator } the generator obj create by algName. - * @throws { BusinessError } 401 - invalid parameters. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ -function createAsyKeyGenerator(algName: string): AsyKeyGenerator; - -/** - * Create a cipher object for encryption and decryption operations according to the given specifications. - * Two different Cipher objects should be created when using RSA encryption and decryption, - * even with the same specifications. - * - * @param { string } transformation - indicates the description to be transformed to cipher specifications. - * @returns { Cipher } the cipher object returned by the function. - * @throws { BusinessError } 401 - invalid parameters. - * @throws { BusinessError } 801 - this operation is not supported. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ -function createCipher(transformation: string): Cipher; - -/** - * Create sign class. - * - * @param { string } algName - indicates the algorithm name and params. - * @returns { Sign } the sign class. - * @throws { BusinessError } 401 - invalid parameters. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ -function createSign(algName: string): Sign; - -/** - * Create verify class. - * - * @param { string } algName - indicates the algorithm name and params. - * @returns { Verify } the verify class. - * @throws { BusinessError } 401 - invalid parameters. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ -function createVerify(algName: string): Verify; - -/** - * Create key agreement class. - * - * @param { string } algName - indicates the algorithm name and params. - * @returns { KeyAgreement } the key agreement class. - * @throws { BusinessError } 401 - invalid parameters. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ -function createKeyAgreement(algName: string): KeyAgreement; - ``` -修改后的接口原型: - - ```ts -interface Key { - /** - * Encode the key object to binary data. - * - * @returns { DataBlob } the binary data of the key object. - * @throws { BusinessError } 801 - this operation is not supported. - * @throws { BusinessError } 17620001 - memory error. - * @throws { BusinessError } 17630001 - crypto operation error. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ - getEncoded(): DataBlob; -} - -interface AsyKeyGenerator { - /** - * Used to generate asymmetric keypair. - * - * @param { AsyncCallback } callback - the callback used to return keypair. - * @throws { BusinessError } 401 - invalid parameters. - * @throws { BusinessError } 17620001 - memory error. - * @throws { BusinessError } 17630001 - crypto operation error. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ - generateKeyPair(callback: AsyncCallback): void; - - /** - * Used to generate asymmetric keypair. - * - * @returns { Promise } the promise used to return keypair. - * @throws { BusinessError } 401 - invalid parameters. - * @throws { BusinessError } 17620001 - memory error. - * @throws { BusinessError } 17630001 - crypto operation error. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ - generateKeyPair(): Promise; - - /** - * Used to convert asymmetric key data to keypair object. - * - * @param { DataBlob } pubKey - the public key data blob. - * @param { DataBlob } priKey - the private key data blob. - * @param { AsyncCallback } callback - the callback used to return keypair. - * @throws { BusinessError } 401 - invalid parameters. - * @throws { BusinessError } 17620001 - memory error. - * @throws { BusinessError } 17630001 - crypto operation error. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ - convertKey(pubKey: DataBlob, priKey: DataBlob, callback: AsyncCallback): void; - - /** - * Used to convert asymmetric key data to keypair object. - * - * @param { DataBlob } pubKey - the public key data blob. - * @param { DataBlob } priKey - the private key data blob. - * @returns { Promise } the promise used to return keypair. - * @throws { BusinessError } 401 - invalid parameters. - * @throws { BusinessError } 17620001 - memory error. - * @throws { BusinessError } 17630001 - crypto operation error. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ - convertKey(pubKey: DataBlob, priKey: DataBlob): Promise; -} - -/** - * Create the asymmetric key generator instance according to the given algorithm name. - * - * @param { string } algName - indicates the algorithm name. - * @returns { AsyKeyGenerator } the asymmetric key generator instance. - * @throws { BusinessError } 401 - invalid parameters. - * @throws { BusinessError } 801 - this operation is not supported. - * @throws { BusinessError } 17620001 - memory error. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ -function createAsyKeyGenerator(algName: string): AsyKeyGenerator; - -/** - * Create a cipher object for encryption and decryption operations according to the given specifications. - * Two different Cipher objects should be created when using RSA encryption and decryption, - * even with the same specifications. - * - * @param { string } transformation - indicates the description to be transformed to cipher specifications. - * @returns { Cipher } the cipher object returned by the function. - * @throws { BusinessError } 401 - invalid parameters. - * @throws { BusinessError } 801 - this operation is not supported. - * @throws { BusinessError } 17620001 - memory error. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ -function createCipher(transformation: string): Cipher; - -/** - * Create a sign object for generating signatures. - * - * @param { string } algName - indicates the algorithm name and params. - * @returns { Sign } the sign class. - * @throws { BusinessError } 401 - invalid parameters. - * @throws { BusinessError } 801 - this operation is not supported. - * @throws { BusinessError } 17620001 - memory error. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ -function createSign(algName: string): Sign; - -/** - * Create a verify object for verifying signatures. - * - * @param { string } algName - indicates the algorithm name and the parameters. - * @returns { Verify } the verify class. - * @throws { BusinessError } 401 - invalid parameters. - * @throws { BusinessError } 801 - this operation is not supported. - * @throws { BusinessError } 17620001 - memory error. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ -function createVerify(algName: string): Verify; - -/** - * Create a key agreement object. - * - * @param { string } algName - indicates the algorithm name and params. - * @returns { KeyAgreement } the key agreement object. - * @throws { BusinessError } 401 - invalid parameters. - * @throws { BusinessError } 801 - this operation is not supported. - * @throws { BusinessError } 17620001 - memory error. - * @syscap SystemCapability.Security.CryptoFramework - * @since 9 - */ -function createKeyAgreement(algName: string): KeyAgreement; - ``` - -**适配指导** - -由于漏标的throws异常发生在较少见的情况下,应用可以结合实际情况,排查漏标的throws标签是否需要专门适配。 - -- 对于同步方法,如createSign等,请使用try/catch方式处理错误信息。 - -- 对于异步方法,如convertKey等,请使用try/catch方式处理同步的参数错误,使用error对象的方式获取异步的参数错误和业务执行错误。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/figures/api10_sdk_arkcompiler_component_change.png b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.1/figures/api10_sdk_arkcompiler_component_change.png deleted file mode 100644 index 2229698d9729fb8f4a09bd19ca78f9d217771334..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38376 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 CYoIXz diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-arkui.md deleted file mode 100644 index acae7487a6..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-arkui.md +++ /dev/null @@ -1,80 +0,0 @@ -# arkui子系统ChangeLog - -## cl.arkui.1 滚动事件上报滚动状态枚举值规则变更 - -ScrollState枚举值在API version 9及以下上报规则: - -| 名称 | 描述 | -| ------ | ------------------------------ | -| Idle | 空闲状态。使用控制器提供的方法滚动、拖动滚动条滚动时触发。 | -| Scroll | 手指拖动状态。使用手指拖动List滚动时触发。 | -| Fling | 惯性滚动状态。快速划动松手后惯性滚动和划动到边缘回弹时触发。 | - -从API version 10开始,ScrollState上报规则变更为: - -| 名称 | 描述 | -| ------ | ------------------------------ | -| Idle | 空闲状态。滚动状态回归空闲的时候触发,一个滚动流程的最后一帧回调。控制器提供的无动画的方法控制的滚动也会触发。 | -| Scroll | 滚动状态。手指拖动List滚动时触发,拖动滚动条滚动时触发,滚动鼠标滚轮触发。 | -| Fling | 惯性滚动状态。由动画触发的滚动,包括快速划动松手后的惯性滚动,划动到边缘回弹的滚动,快速拖动内置滚动条松手后的惯性滚动,使用滚动控制器提供的带动画的方法控制的滚动。 | - -ScrollState枚举变更如下。 - -| 场景 | API version 9及以下 |API version 10开始 | -| ------ | ------------------------------ |------------------------------ | -| 手指拖动滑动 | Scroll | Scroll | -| 惯性滚动 | Fling | Fling | -| 过界回弹 | Fling | Fling | -| 鼠标滚轮滚动 | Idle | Scroll | -| 拖动滚动条 | Idle | Scroll | -| 滚动控制器滚动(带动画) | Idle | Fling | -| 滚动控制器滚动(不带动画) | Idle | Idle | - -**变更影响** - -1、ScrollState枚举值从API version 7开始提供,在API version 10变更,不影响API version 9及以下版本使用。
-2、API version 9及以下使用到这个枚举值的接口有List组件的onScroll事件、onScrollFrameBegin事件、Scroll组件的onScrollFrameBegin事件,API version 9及以下滚动状态上报规则不变,不会产生影响;从API version 10开始,List组件的onScroll事件在文章起始列出的部分场景中上报的枚举值会有变化。 - -**关键接口/组件变更** - -List组件接口文档: -- [List组件事件](../../../application-dev/reference/arkui-ts/ts-container-list.md#事件) -- [List组件ScrollState枚举说明](../../../application-dev/reference/arkui-ts/ts-container-list.md#scrollstate枚举说明) - -**适配指导** - -List组件绑定onScroll事件,通过onScroll事件上报当前滚动状态。API version 9及以下上报的滚动状态仍遵循变更前规则,从API version 10开始,上报的滚动状态遵循变更后规则。 - -参考代码如下: -```ts -// xxx.ets -@Entry -@Component -struct ListExample { - private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - - build() { - Column() { - List({ space: 20, initialIndex: 0 }) { - ForEach(this.arr, (item) => { - ListItem() { - Text('' + item) - .width('100%').height(100).fontSize(16) - .textAlign(TextAlign.Center).borderRadius(10).backgroundColor(0xFFFFFF) - } - }, item => item) - } - .listDirection(Axis.Vertical) // 排列方向 - .edgeEffect(EdgeEffect.Spring) // 边缘效果设置为Spring - .onScroll((scrollOffset: number, scrollState: ScrollState) => { - console.log(`onScroll scrollState = ${ScrollState[scrollState]}, scrollOffset = ${[scrollOffset]}`) - }) - .width('90%') - } - .width('100%') - .height('100%') - .backgroundColor(0xDCDCDC) - .padding({ top: 5 }) - } -} -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-distributedDeviceManager.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-distributedDeviceManager.md deleted file mode 100644 index eebd95e898..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-distributedDeviceManager.md +++ /dev/null @@ -1,47 +0,0 @@ -# 设备管理ChangeLog -## cl.distributedDeviceManager.1 接口变更 - -从Openharmony 4.0.9.2版本开始,新增设备管理接口。 - -**变更影响** - -原有的接口[API参考](../../../application-dev/reference/apis/js-apis-device-manager.md)暂时可继续使用,但是停止维护,建议使用新接口进行开发。 - -**关键的接口/组件变更** - -##新增接口如下: - -| 模块名 | 类名 | 新增接口声明 | -| ------------------------------------ | ------------------- | ------------------------------------------------------------ | -| @ohos.distributedDeviceManager | function | **function** createDeviceManager(bundleName: string): DeviceManager; | -| @ohos.distributedDeviceManager | function | **function** releaseDeviceManager(deviceManager: DeviceManager): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** getAvailableDeviceListSync(): Array<DeviceBasicInfo>; | -| @ohos.distributedDeviceManager | DeviceManager | **function** getAvailableDeviceList(callback:AsyncCallback<Array<DeviceBasicInfo>>): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** getAvailableDeviceList(): Promise<Array<DeviceBasicInfo>>; | -| @ohos.distributedDeviceManager | DeviceManager | **function** getLocalDeviceNetworkId(): string; | -| @ohos.distributedDeviceManager | DeviceManager | **function** getLocalDeviceName(): string; | -| @ohos.distributedDeviceManager | DeviceManager | **function** getLocalDeviceType(): number; | -| @ohos.distributedDeviceManager | DeviceManager | **function** getLocalDeviceId(): string; | -| @ohos.distributedDeviceManager | DeviceManager | **function** getDeviceName(networkId: string): string; | -| @ohos.distributedDeviceManager | DeviceManager | **function** getDeviceType(networkId: string): number; | -| @ohos.distributedDeviceManager | DeviceManager | **function** startDiscovering(discoverParam: {[key: string]: Object} , filterOptions?: {[key: string]: Object} ): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** stopDiscovering(): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** bindTarget(deviceId: string, bindParam: {[key: string]: Object} , callback: AsyncCallback<{deviceId: string}>): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** unbindTarget(deviceId: string): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** replyUiAction(action: number, actionResult: string): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** on(type: 'replyResult', callback: Callback<{ param: string}>): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** off(type: 'replyResult', callback?: Callback<{ param: string}>): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** on(type: 'deviceStateChange', callback: Callback<{ action: DeviceStateChange, device: DeviceBasicInfo }>): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** off(type: 'deviceStateChange', callback?: Callback<{ action: DeviceStateChange, device: DeviceBasicInfo }>): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** on(type: 'discoverSuccess', callback: Callback<{ device: DeviceBasicInfo }>): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** off(type: 'discoverSuccess', callback?: Callback<{ device: DeviceBasicInfo }>): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** on(type: 'deviceNameChange', callback: Callback<{ deviceName: string }>): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** off(type: 'deviceNameChange', callback?: Callback<{ deviceName: string }>): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** on(type: 'discoverFailure', callback: Callback<{ reason: number }>): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** off(type: 'discoverFailure', callback?: Callback<{ reason: number }>): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** on(type: 'serviceDie', callback?: Callback<{}>): void; | -| @ohos.distributedDeviceManager | DeviceManager | **function** off(type: 'serviceDie', callback?: Callback<{}>): void; | - -**适配指导** - -请参考各接口的[API参考](../../../application-dev/reference/apis/js-apis-distributedDeviceManager.md) diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-geoLocationManager.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-geoLocationManager.md deleted file mode 100644 index 7a99c6a861..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-geoLocationManager.md +++ /dev/null @@ -1,37 +0,0 @@ -# 位置服务子系统ChangeLog - -## cl.location.1 新增获取WiFi/BT扫描结果的系统接口 - -@ohos.geoLocationManager.d.ts中增加获取WiFi/BT扫描结果的接口,这些接口是systemApi。 - -**变更影响** - -系统应用可以从调用@ohos.geoLocationManager.d.ts中的接口获取WiFi/BT扫描结果,用于网络定位。 - -**关键的接口/组件变更** - -| 类名 | 接口类型 | 接口声明 | 变更类型 | -| -- | -- | -- | -- | -|geoLocationManager| method | function on(type: 'locatingRequiredDataChange', config: LocatingRequiredDataConfig, callback: Callback<Array<LocatingRequiredData>>): void; | 新增接口 | -|geoLocationManager| method | function off(type: 'locatingRequiredDataChange', callback?: Callback<Array<LocatingRequiredData>>): void; | 新增接口 | -|geoLocationManager| method | function getLocatingRequiredData(config: LocatingRequiredDataConfig): Promise<Array<LocatingRequiredData>>; | 新增接口 | - -**适配指导** - -以单次获取扫描信息为例: - - ```ts - import geoLocationManager from '@ohos.geoLocationManager'; - let config = {'type': 1, 'needStartScan': true, 'scanInterval': 10000}; - try { - geoLocationManager.getLocatingRequiredData(config).then((result) => { - console.log('getLocatingRequiredData return: ' + JSON.stringify(result)); - }) - .catch((error) => { - console.log('promise, getLocatingRequiredData: error=' + JSON.stringify(error)); - }); - } catch (err) { - console.error("errCode:" + err.code + ",errMessage:" + err.message); - } - ``` - diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-imf.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-imf.md deleted file mode 100644 index 3463f9c636..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-imf.md +++ /dev/null @@ -1,37 +0,0 @@ -# 输入法框架子系统-输入法框架ChangeLog - -## cl.imf.1 @ohos.InputMethod中on('imeShow')系统接口权限校验失败返回错误码变更 - -**变更影响** - -使用on('imeShow')接口,系统权限校验失败的返回码从201变更为202。 - -## cl.imf.2 @ohos.InputMethod中on('imeHide')系统接口权限校验失败返回错误码变更 - -**变更影响** - -使用on('imeHide')接口,系统权限校验失败的返回码从201变更为202。 - -## cl.imf.3 @ohos.InputMethod中off接口新增参数 - -off接口新增需要取消订阅的回调函数作为可选参数,需要与on接口传入的保持一致。 - -| 接口 | 变更前 | 变更后 | -| ------------------------- | ------------------------------------- | ------------------------------------------------------------ | -| off('insertText') | off(type: 'insertText'): void | off(type: 'insertText', callback?: (text: string) => void): void | -| off('deleteLeft') | off(type: 'deleteLeft'): void | off(type: 'deleteLeft', callback?: (length: number) => void): void | -| off('deleteRight') | off(type: 'deleteRight'): void | off(type: 'deleteRight', callback?: (length: number) => void): void | -| off('sendKeyboardStatus') | off(type: 'sendKeyboardStatus'): void | off(type: 'sendKeyboardStatus', callback?: (keyboardStatus: KeyboardStatus) => void): void | -| off('sendFunctionKey') | off(type: 'sendFunctionKey'): void | off(type: 'sendFunctionKey', callback?: (functionKey: FunctionKey) => void): void | -| off('moveCursor') | off(type: 'moveCursor'): void | off(type: 'moveCursor', callback?: (direction: Direction) => void): void | -| off('handleExtendAction') | off(type: 'handleExtendAction'): void | off(type: 'handleExtendAction', callback?: (action: ExtendAction) => void): void | -| off('selectByRange') | off(type: 'selectByRange'): void | off(type: 'selectByRange', callback?: Callback\): void | -| off('selectByMovement') | off(type: 'selectByMovement'): void | off(type: 'selectByMovement', callback?: Callback\): void | - -**变更影响** - -以上接口的调用,有多个订阅回调时,可传入订阅回调函数只取消单个回调函数的订阅,当该参数不填写时,取消订阅对应的所有回调事件。 - -**适配指导** - -请参考接口说明:[@ohos.inputMethod.d.ts](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-inputmethod.md) diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-multimedia.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-multimedia.md deleted file mode 100644 index e0cbeea3e9..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-multimedia.md +++ /dev/null @@ -1,330 +0,0 @@ -# multimedia子系统ChangeLog - -## cl.multimedia.1 音频C接口流类型枚举声明变更 - -对于在API10中已经新增的音频C接口,音频输出流类型错写为AUDIOSTREAM_TYPE_RERNDERER,需要修正为AUDIOSTREAM_TYPE_RENDERER。 - -**变更影响** - -对于已发布的C接口,可能影响三方应用的兼容性。 - -**关键的接口/组件变更** - -修改前的接口原型: - - ```C -enum OH_AudioStream_Type { - /** - * The type for audio stream is renderer. - */ - AUDIOSTREAM_TYPE_RERNDERER = 1, - - /** - * The type for audio stream is capturer. - */ - AUDIOSTREAM_TYPE_CAPTURER = 2 -}; - ``` - -修改后的接口原型: - - ```C -enum OH_AudioStream_Type { - /** - * The type for audio stream is renderer. - */ - AUDIOSTREAM_TYPE_RENDERER = 1, - - /** - * The type for audio stream is capturer. - */ - AUDIOSTREAM_TYPE_CAPTURER = 2 -}; - ``` - -**适配指导** - -开发人员需要在使用音频输出流类型AUDIOSTREAM_TYPE_RERNDERER时,修改为AUDIOSTREAM_TYPE_RENDERER。例如: - -修改前 - -```C -OH_AudioStreamBuilder* builder; -OH_AudioStreamBuilder_Create(&builder, AUDIOSTREAM_TYPE_RERNDERER); -``` - -修改后 - -```C -OH_AudioStreamBuilder* builder; -OH_AudioStreamBuilder_Create(&builder, AUDIOSTREAM_TYPE_RENDERER); -``` - -## cl.multimedia.2 移除OH_AudioStream_Content - -对于在API10中已经新增的音频C接口,音频输出流属性中将删除掉OH_AudioStream_Content。 - -**变更影响** - -对于已发布的C接口,可能影响三方应用的兼容性。 - -**关键的接口/组件变更** - -- native_audiostream_base.h 文件 - -修改前的接口原型: - -```C -typedef enum { - AUDIOSTREAM_CONTENT_TYPE_UNKNOWN = 0, - AUDIOSTREAM_CONTENT_TYPE_SPEECH = 1, - AUDIOSTREAM_CONTENT_TYPE_MUSIC = 2, - AUDIOSTREAM_CONTENT_TYPE_MOVIE = 3, -} OH_AudioStream_Content; -``` -修改后 -删除OH_AudioStream_Content枚举定义 - -- native_audiostreambuilder.h 文件 - -修改前 - -```C -OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererInfo(OH_AudioStreamBuilder* builder, - OH_AudioStream_Usage usage, OH_AudioStream_Content content); -``` - -修改后 -```C -OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererInfo(OH_AudioStreamBuilder* builder, - OH_AudioStream_Usage usage); -``` - -- native_audiorenderer.h 文件 - -修改前 - -```C -OH_AudioStream_Result OH_AudioRenderer_GetRendererInfo(OH_AudioRenderer* renderer, - OH_AudioStream_Usage* usage, OH_AudioStream_Content* content); -``` - -修改后 -```C -OH_AudioStream_Result OH_AudioRenderer_GetRendererInfo(OH_AudioRenderer* renderer, - OH_AudioStream_Usage* usage); -``` - -**适配指导** - -对于OH_AudioStreamBuilder_SetRendererInfo接口,开发者按照所属场景,原本设置的OH_AudioStream_Content类型可对比下表,使用对应的OH_AudioStream_Usage类型。 - -| OH_AudioStream_Content | OH_AudioStream_Usage | -| ------------------------------- | ------------------------------------- | -| AUDIOSTREAM_CONTENT_TYPE_SPEECH | AUDIOSTREAM_USAGE_VOICE_COMMUNICATION | -| AUDIOSTREAM_CONTENT_TYPE_MUSIC | AUDIOSTREAM_USAGE_MUSIC | -| AUDIOSTREAM_CONTENT_TYPE_MOVIE | AUDIOSTREAM_USAGE_MOVIE | - -对于OH_AudioRenderer_GetRendererInfo接口,开发者使用新的接口只能获取到OH_AudioStream_Usage属性,不能获取OH_AudioStream_Content属性。 - -## cl.multimedia.3 OH_AudioStream_Usage变更 - -API10的音频C接口native_audiostream_base.h 文件中,在OH_AudioStream_Usage枚举中删除了AUDIOSTREAM_USAGE_MEDIA枚举值,将AUDIOSTREAM_USAGE_COMMUNICATION枚举值变更为AUDIOSTREAM_USAGE_VOICE_COMMUNICATION和AUDIOSTREAM_USAGE_VOICE_ASSISTANT。 - -**变更影响** - -对于已发布的C接口,可能影响三方应用的兼容性。如果开发者使用AUDIOSTREAM_USAGE_MEDIA和AUDIOSTREAM_USAGE_COMMUNICATION枚举值,会有兼容性问题。 - -**关键的接口/组件变更** - -修改前 - -```C -typedef enum { - AUDIOSTREAM_USAGE_UNKNOWN = 0, - AUDIOSTREAM_USAGE_MEDIA = 1, - AUDIOSTREAM_USAGE_COMMUNICATION = 2, -} OH_AudioStream_Usage; -``` - -修改后 -```C -typedef enum { - /** - * Unknown usage. - */ - AUDIOSTREAM_USAGE_UNKNOWN = 0, - /** - * Music usage. - */ - AUDIOSTREAM_USAGE_MUSIC = 1, - /** - * Voice communication usage. - */ - AUDIOSTREAM_USAGE_VOICE_COMMUNICATION = 2, - /** - * Voice assistant usage. - */ - AUDIOSTREAM_USAGE_VOICE_ASSISTANT = 3, - /** - * Movie or video usage. - */ - AUDIOSTREAM_USAGE_MOVIE = 10, - -} OH_AudioStream_Usage; -``` - -**适配指导** - -用户通过OH_AudioStreamBuilder_SetRendererInfo接口不能再设置OH_AudioStream_Usage值为AUDIOSTREAM_USAGE_MEDIA,改为使用AUDIOSTREAM_USAGE_MUSIC或者AUDIOSTREAM_USAGE_MOVIE。 - -修改前 - -```C -OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_MEDIA); -``` - -修改后 - -```C -OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_MUSIC); // 音乐场景 -``` - -或者 - -```C -OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_MOVIE); // 视频场景 -``` - -用户通过OH_AudioStreamBuilder_SetRendererInfo接口不能再设置OH_AudioStream_Usage值为AUDIOSTREAM_USAGE_COMMUNICATION,改为使用AUDIOSTREAM_USAGE_VOICE_COMMUNICATION或者AUDIOSTREAM_USAGE_VOICE_ASSISTANT。 - -修改前 - -```C -OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_COMMUNICATION); -``` - -修改后 - -```C -OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_VOICE_COMMUNICATION); // 通话场景 -``` - -或者 - -```C -OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_VOICE_ASSISTANT); // 语音场景 -``` - -## cl.multimedia.4 OH_AudioStream_SampleFormat变更,删除AUDIOSTREAM_SAMPLE_F32LE - -API10的音频C接口native_audiostream_base.h 文件中,在OH_AudioStream_SampleFormat枚举中删除了AUDIOSTREAM_SAMPLE_F32LE枚举值。 - -**变更影响** - -对于已发布的C接口,可能影响三方应用的兼容性。如果开发者使用AUDIOSTREAM_SAMPLE_F32LE会有兼容性问题。 - -**关键的接口/组件变更** - -修改前 - -```C -typedef enum { - AUDIOSTREAM_SAMPLE_U8 = 0, - AUDIOSTREAM_SAMPLE_S16LE = 1, - AUDIOSTREAM_SAMPLE_S24LE = 2, - AUDIOSTREAM_SAMPLE_S32LE = 3, - AUDIOSTREAM_SAMPLE_F32LE = 4, -} OH_AudioStream_SampleFormat; -``` - -修改后 -```C -typedef enum { - /** - * Unsigned 8 format. - */ - AUDIOSTREAM_SAMPLE_U8 = 0, - /** - * Signed 16 bit integer, little endian. - */ - AUDIOSTREAM_SAMPLE_S16LE = 1, - /** - * Signed 24 bit integer, little endian. - */ - AUDIOSTREAM_SAMPLE_S24LE = 2, - /** - * Signed 32 bit integer, little endian. - */ - AUDIOSTREAM_SAMPLE_S32LE = 3, -} OH_AudioStream_SampleFormat; -``` - -**适配指导** - -修改后用户不能再设置采样格式为AUDIOSTREAM_SAMPLE_F32LE枚举值。 - -## cl.multimedia.5 OH_AudioStream_Result添加枚举值 - -API10的音频C接口native_audiostream_base.h 文件中,在OH_AudioStream_Result枚举中给枚举值定义数值。 - -**变更影响** - -无影响 - -**关键的接口/组件变更** - -修改前 - -```C -typedef enum { - /** - * The call was successful. - */ - AUDIOSTREAM_SUCCESS, - - /** - * This means that the function was executed with an invalid input parameter. - */ - AUDIOSTREAM_ERROR_INVALID_PARAM, - - /** - * Execution status exception. - */ - AUDIOSTREAM_ERROR_ILLEGAL_STATE, - - /** - * An system error has occurred. - */ - AUDIOSTREAM_ERROR_SYSTEM -} OH_AudioStream_Result; -``` - -修改后 -```C -typedef enum { - /** - * The call was successful. - */ - AUDIOSTREAM_SUCCESS = 0, - - /** - * This means that the function was executed with an invalid input parameter. - */ - AUDIOSTREAM_ERROR_INVALID_PARAM = 1, - - /** - * Execution status exception. - */ - AUDIOSTREAM_ERROR_ILLEGAL_STATE = 2, - - /** - * An system error has occurred. - */ - AUDIOSTREAM_ERROR_SYSTEM = 3 -} OH_AudioStream_Result; -``` - -**适配指导** - -无兼容性影响,不涉及。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-screenlock.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-screenlock.md deleted file mode 100644 index d75ed8bec4..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changelogs-screenlock.md +++ /dev/null @@ -1,54 +0,0 @@ -# 主题框架子系统锁屏管理ChangeLog - -## cl.screenlock.1 代码实例名称变更 - -锁屏管理的包名为'@ohos.screenLock',在导入时,使用的代码实例应为screenLock,而不是screenlock。 - -**变更影响** - -无。 - -**关键的接口/组件变更** - -修改前的接口调用: - - ```js -screenlock.isLocked(); -screenlock.unlock(); -screenlock.lock(); -screenlock.onSystemEvent(event=>{}); -screenlock.sendScreenLockEvent('unlockScreenResult', 0); -screenlock.isScreenLocked() -screenlock.isSecureMode(); -screenlock.unlockScreen(); - ``` - -修改后的接口调用: - - ```js -screenLock.isLocked(); -screenLock.unlock(); -screenLock.lock(); -screenLock.onSystemEvent(event=>{}); -screenLock.sendScreenLockEvent('unlockScreenResult', 0); -screenLock.isScreenLocked() -screenLock.isSecureMode(); -screenLock.unlockScreen(); - ``` - -**适配指导** - -导入时使用screenLock,例如:: - -修改前 - -```js -import screenlock from '@ohos.screenLock'; -``` - -修改后 - -```js -import screenLock from '@ohos.screenLock'; -``` - diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changlogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changlogs-arkui.md deleted file mode 100644 index d43660575a..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.2/changlogs-arkui.md +++ /dev/null @@ -1,33 +0,0 @@ -# arkui子系统ChangeLog - -## ArkUI系统组件使用限制 - - ArkUI系统组件必须在struct的build方法,pageTransition方法,@Builder修饰的函数内使用。 - -**示例:** - -``` -@Entry -@Component -struct Index { - build() { - Row() { - } - - } -} -// ERROR:UI component 'Text' cannot be used in this place. -Text('Hello World') -``` - -**变更影响** - - 如果ArkUI系统组件不在struct的build方法,pageTransition方法,@Builder修饰的函数内使用,编译报错。 - -**关键的接口/组件变更** - -不涉及。 - -**适配指导** - - ArkUI系统组件必须在struct的build方法,pageTransition方法,@Builder修饰的函数内使用。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelog-@Prop.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelog-@Prop.md deleted file mode 100644 index cdd0d07538..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelog-@Prop.md +++ /dev/null @@ -1,122 +0,0 @@ -# arkui子系统状态管理ChangeLog - - -# ArkUI子系统@Prop装饰器支持Object行为变化 - -## cl.@Prop支持Object api9浅拷贝,api10变更为深拷贝 - -**变更影响** -@Prop支持Object在api9为浅拷贝,具体行为表现为: -- Object类型:浅拷贝Object.keys(propObj) 返回的所有属性。即只拷贝最外层的Object,Object中property还是指向原来的父组件的数据源。 -- 数组类型:浅拷贝所有的数组项,即只拷贝最外层的array,其他行为和Object一致。 -- 拷贝Object和数组的prototype。 - -@Prop支持Object在api10变更为深拷贝,具体行为表现为: -- Object类型:完全拷贝Object.keys(propObj) 返回的所有属性。 -- 数组类型:完全拷贝所有的数组项; -- 拷贝Object和数组的prototype。 - -**适配指导** -@Prop深浅拷贝的变更在UI渲染上的影响主要在@ObjectLink相关的场景,因为@ObjectLink会代理其修饰对象属性。 -例子如下: -api9:PropClassAArray组件中@Prop objArray改变ClassA的属性,或者设置新的数组项,都会引起父组件StateClassAArray创建的ObjectLinkClassA中的@ObjectLink obj的改变。 -这个更新是因为父组件StateClassAArray中@State stateClassAArray到子组件PropClassAArray中@Prop objArray是浅拷贝引起的,因为浅拷贝只拷贝了数组项的引用,所以数据源也被改变,而@ObjectLink代理了数据源的属性,所以引发了ObjectLinkClassA组件中的@ObjectLink obj的更新(从StateClassAArray组件中构造的)。 - -api10:在上述场景中,因为父组件StateClassAArray中@State stateClassAArray到子组件PropClassAArray中@Prop objArray是深拷贝,完整拷贝了ClassA的对象,所以不会改变数据源,从而不会引发ObjectLinkClassA组件中的@ObjectLink obj的更新(从StateClassAArray组件中构造的)。 - - -![zh-cn_image_0000001588291546](figures/zh-cn_image_0000001588291546.png) - - - -```ts -let nextId = 0; - -@Observed -class ClassA { - id : number; - a : number; - constructor(a : number = 0) { - this.id = nextId++; - this.a = a; - } -} - -@Component -struct ObjectLinkClassA { - @ObjectLink obj : ClassA; - - build() { - Row() { - Text(`ObjectLink: obj: ${this.obj.a}`) - .height(100) - .onClick(() => { - this.obj.a += 1; - console.info(`ObjectLink onClick ClassA property changed to ${this.obj.a}`) - }) - }.border({width: 3, color: Color.Red}) - } -} - -@Component -struct PropClassAArray { - @Prop objArray : Array = []; - - build() { - Column() { - Text(`green box: @Prop : Array item [0] + [1]`) - Row() { - ObjectLinkClassA({ obj: this.objArray[0] }) - Text("[0] Assign new ClassA") - .height(100) - .onClick(() => { - this.objArray[0] = new ClassA(); - console.info(`PropClassAArray[0] onClick ClassA object assign ${this.objArray[0].a}`) - }) - Text("Change ClassA property") - .height(100) - .onClick(() => { - this.objArray[0].a += 1; - console.info(`PropClassAArray[1] onClick ClassA property change ${this.objArray[1].a}`) - }) - } - }.border({width: 3, color: Color.Green}) - } -} - -@Entry -@Component -struct StateClassAArray { - @State stateClassAArray : Array = [ new ClassA(), new ClassA() ]; - - build() { - Column() { - Column() { - Text("Red box: @ObjectLink from @State array item[0]") - Row() { - ObjectLinkClassA({obj : this.stateClassAArray[0] }) - Text("Assign new ClassA") - .height(100) - .onClick(() => { - this.stateClassAArray[0] = new ClassA(); - console.info(`StateClassAArray[0] onClick ClassA object assign ${this.stateClassAArray[0].a}`) - }) - Text("Change ClassA property") - .height(100) - .onClick(() => { - this.stateClassAArray[0].a += 1; - console.info(`StateClassAArray onClick stateClassAArray[0] changed to ${this.stateClassAArray[0].a}`) - }) - } - - }.border({width: 3, color: Color.Blue}) - - Divider().height(5) - - // api9浅拷贝:只拷贝指向源数组项的引用,不拷贝数组项ClassA实例自身 - // api10深拷贝:完整拷贝this.stateClassAArray,包括其数组项。 - PropClassAArray({ objArray: this.stateClassAArray }) - } - } -} -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-arkui.md deleted file mode 100644 index 52b7034587..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-arkui.md +++ /dev/null @@ -1,229 +0,0 @@ -# arkui子系统ChangeLog - - -## cl.arkui.1 编译拦截@Extend/@AnimatableExtend参数个数不符合预期 - -@Extend/@AnimatableExtend装饰器参数有且仅能有一个。 - -**变更影响** - -当@Extend/@AnimatableExtend装饰器参数有多个时,编译报错。 - -**错误示例:** - -```ts -// xxx.ets - -@Extend(Text, Button) // 编译报错: @Extend should have one and only one parameter -function fancy() { - .width(100) -} - -@AnimatableExtend(Text, Polyline) // 编译报错: @AnimatableExtend should have one and only one parameter -function fancy2() { - .height(100) -} - -@Entry -@Component -struct Example { - build() { - Column() { - Text('text') - .fancy() - .fancy2() - } - } -} -``` - -**关键接口/组件变更** - -不涉及 - -**适配指导** - -@Extend和AnimatableExtend装饰器仅能传一个参数。 - -参考代码如下: -```ts -// xxx.ets - -@Extend(Text) -function fancy() { - .width(100) -} - -@AnimatableExtend(Text) -function fancy2() { - .height(100) -} - -@Entry -@Component -struct Example { - build() { - Column() { - Text('text') - .fancy() - .fancy2() - } - } -} -``` - -## cl.arkui.2 编译拦截@Link/@ObjectLink成员变量未从父组件传值 - -子组件的@Link/@ObjectLink成员变量需要从父组件传值。 - -**变更影响** - -子组件的@Link/@ObjectLink当没有从父组件传值时,编译报错。 - -**错误示例:** - -```ts -// xxx.ets - -@Observed -class Count { - message: string = 'count' -} - -@Entry -@Component -struct Parent { - @State state1: string = 'state1'; - @State state2: Count = new Count(); - build() { - Column() { - Child() // 编译报错:Property 'link' in the custom component 'Child' is missing (mandatory to specify). - // 编译报错:Property 'objectLink' in the custom component 'Child' is missing (mandatory to specify). - } - } -} - -@Component -struct Child { - @Link link: string; - @ObjectLink objectLink: Count; - build() { - Column() { - Text(this.link) - .fontSize(50) - Text(this.objectLink.message) - .fontSize(50) - } - } -} -``` - -**关键接口/组件变更** - -不涉及 - -**适配指导** - -子组件的@Link/@ObjectLink成员变量需要从父组件传值。 - -参考代码如下: -```ts -// xxx.ets - -@Observed -class Count { - message: string = 'count' -} - -@Entry -@Component -struct Parent { - @State state1: string = 'state1'; - @State state2: Count = new Count(); - build() { - Column() { - Child({link: $state1, objectLink: this.state2}) - } - } -} - -@Component -struct Child { - @Link link: string; - @ObjectLink objectLink: Count; - build() { - Column() { - Text(this.link) - .fontSize(50) - Text(this.objectLink.message) - .fontSize(50) - } - } -} -``` -## cl.arkui.3 canvas组件onReady事件行为变更 - -**说明** -onReady事件在组件创建完成后或组件大小发生变化时触发,并清空画布。 - -**示例:** -```ts -@Entry -@Component -struct OnReadyDiff { - @State message: string = 'init ' - @State isShow: boolean = false - @State myHeight: number = 300 - private settings: RenderingContextSettings = new RenderingContextSettings(true); - private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); - - build() { - Row() { - Column() { - Text(this.message) - .fontSize(50) - .fontWeight(FontWeight.Bold) - Button('ChangePosition') - .onClick(()=>{ - this.isShow = !this.isShow - }) - if (this.isShow) { - Button('new button') - .height(200) - } - Button('ChangeHeight') - .onClick(()=>{ - this.myHeight = this.myHeight==300?500:300 - }) - - Canvas(this.context) - .width(300) - .height(this.myHeight) - .backgroundColor('#ffff00') - .onReady(() =>{ - this.context.fillRect(0, 0, 100, 100) - this.message += 'a ' - }) - Button('draw another') - .onClick(()=>{ - this.context.fillRect(100, 100, 100, 100) - }) - } - .width('100%') - } - .height('100%') - } -} -``` - -API version 9:onReady在组件创建完成时触发,位置变化时会触发,组件大小变化时也会触发。 - -![stack](figures/api9onReady.gif) - -API version 10及以后:onReady在组件创建完成时触发,在组件位置变化时不会触发,组件大小变化时会触发。 - -![stack](figures/api10onReady.gif) - -**变更影响** - -onReady事件在组件位置发生变化时行为变更,API version 9及以前会触发,API version 10及以后不会触发。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-bundlemanager.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-bundlemanager.md deleted file mode 100644 index 1949dde5be..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-bundlemanager.md +++ /dev/null @@ -1,13 +0,0 @@ -# 包管理子系统ChangeLog -## cl.bundlemanager.1 module.json配置文件schema变更 - -module.json配置文件中,module字段的name属性、ability字段的name属性、extensionAbility字段的name属性,需要以英文字母开头,并仅含有英文字母、数字以及下划线和点符号。 - -**变更影响**
-升级新版本sdk后,如果module字段的name属性、ability字段的name属性、extensionAbility字段的name属性不符合上述要求,则编译失败。 - -**关键的接口/组件变更**
-module.json配置文件中,module字段的name属性、ability字段的name属性、extensionAbility字段的name属性,需要以英文字母开头,并仅含有英文字母、数字以及下划线和点符号。 - -**适配指导**
-修改对应的字段,使其满足以英文字母开头,并仅含有英文字母、数字以及下划线和点符号的要求。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-media.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-media.md deleted file mode 100644 index 8edafeade0..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-media.md +++ /dev/null @@ -1,24 +0,0 @@ -# 媒体子系统ChangeLog - -## cl.media.1 播放功能接口变更 - -删除音轨切换相关接口。 - -**变更影响** - -删除音轨切换相关接口,相关接口不可使用。 - -**关键的接口/组件变更** - -删除接口如下: - -| 类名 | 删除接口声明 | -| -------------- | ------------------------------------------------------------ | -| Media.Core | MD_KEY_LANGUAGE | -| Media.AVPlayer | selectTrack(index: number): void | -| Media.AVPlayer | deselectTrack(index: number): void | -| Media.AVPlayer | getCurrentTrack(trackType: MediaType, callback: AsyncCallback\): void | -| Media.AVPlayer | getCurrentTrack(trackType: MediaType): Promise\ | -| Media.AVPlayer | on(type: 'trackChange', callback: (index: number, isSelect: boolean) => void): void; | -| Media.AVPlayer | off(type: 'trackChange'): void | - diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-multimedia.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-multimedia.md deleted file mode 100644 index 0f0e81d9d1..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-multimedia.md +++ /dev/null @@ -1,29 +0,0 @@ -# multimedia子系统ChangeLog - -## cl.multimedia.1 getAudioEffectInfoArray接口入参变更,删除Content type入参 - -对于getAudioEffectInfoArray,适配4.0.9.2修改,删除Content type入参。 - -**变更影响** - -对于已发布的js接口,可能影响三方应用的兼容性。 - -**关键的接口/组件变更** - -修改前的接口原型: - - ```js -getAudioEffectInfoArray(content: ContentType, usage: StreamUsage, callback: AsyncCallback): void; -getAudioEffectInfoArray(content: ContentType, usage: StreamUsage): Promise; - ``` - -修改后的接口原型: - - ```js -getAudioEffectInfoArray(usage: StreamUsage, callback: AsyncCallback): void; -getAudioEffectInfoArray(usage: StreamUsage): Promise; - ``` - -**适配指导** - -修改后用户调用该接口时,只需要传入StreamUsage入参,对于已经适配的用户,直接删去ContentType type入参即可。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/figures/api10onReady.gif b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/figures/api10onReady.gif deleted file mode 100755 index 5c0cb27ddf42514e174f1cabb9890aee792a96b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97177 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 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/figures/api9onReady.gif b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/figures/api9onReady.gif deleted file mode 100755 index 619d0a18ff2c73359f7d487b86aca147cd9d7f66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104832 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�U%S# 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 b6-{AeWgvHHbZ8(`V{&C>Zd7kaX=VUBIjB#| diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/figures/zh-cn_image_0000001588291546.png b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.3/figures/zh-cn_image_0000001588291546.png deleted file mode 100644 index 7161b0170e120ae2b39b39ae49b9f5e52b18f7c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57640 zcmeFZWmr{v^e(z=P+CPKRZ2t&kuD_#B@MczOJdPsAV|v+>Fx#z=@t-a>6UJgTr_t~ z_x{&8=RWt#z2EM9wuo!Z_{E5KyyKnQTV7TY|04NC6bgke^;k?1g*tx)g*xSma~?if z&UhOF!8oMs{kV>rlGADz|6AWnquIly4JEz`~m7Q0>O(wiC zYJU6WS6ihTyL+}28KY`+&aCsjUqV#RjVdN$Me@|1PT%ytXT`>l*vD4#Gbs`MW{6JK zH02i2)!AcOX9AA!@TV~ybdJ?I%-3{g1zbA9n_GFu*Vb+_k>Q;`2Lt+hbo#Tuyzn3Y zK#|a#`_FHPuKoYNBMb9?yAJ)l|E}CatyczaLyJTx6d7j#<=*?=n>S9$%cD?ql$bLp z6do1w6E)9t5wQ!@8y)`y92DxkmxMcx_@h&(PkE0CP$)JBbwI4t-&au#xYN51~| z_&T?QN%(qJGe|Y{*ZR93VSj=J zr~~QJqeCF^=TB*=MH>a3Jc=8z zd!~pb_!-H_$Y9zT&XbdqOQ=7pUBfPUGsb-66?i|s)(<0{wkt1k+?*AKM|H+0s`q7_^PO=IE_6(pB!OLM@p=Q@^nPSq9VC1LxxxS7JD-j zxiEj=qH_D(5sTu}ZyyfW6crU+JbM}*qTq|`xx8#96MkQuCG^Pwb}g`^DlIp+KSt2G zr>~EcxcX)v<;9tqnGFYl+4Z^U>3L5Ii;v`TFzf-V>FH^s+IQ!Ewzt1@bS#aMO{Hs| z+ce(Wn7MQNcIS8R%V4cwn9nsdvJVek+F}GFmmpZ4$AQRL^Rc(5C+XWaE?!Cksc78O z#lzV{Lqi`)O&etvqIhj!zFDP#9d{!-o$FYUld;`Z98I+64l7dY+HEY_>(P>v=9N zEftv$bJ+}biizDIlGoQy&dAK<)c<+qDk*6|Nely6DV2bOJm!JxzO7VrKRzrYK0ZEs zb!=v4=9kFGOslEJW{cv;z~aKfwB%&*y}dm?^kOhe`SSg}BR9drKlLW2rq5($1FUUq z=+OiPV9mY1ekGun`k3hH8!8NpO-y_q7di`2C#R%HxDb;26NpgA@lX65pH?bPF#y>}Z{K8RMbb$6}mVAbL>R)YPzMR6v09u*Z8pTnOxYR75fd#Z)E zmxpRgR@r79aKH%4M~4cHKd+Xr3CTq9C}5^-`Sgp2XI}F>u$mOxByZxm#>vTkCXPh27Nb$kh7x<yLK z^;b;^`zl|2yn?oJk;#|*f&#cP7)4J{&y^q)Tcar#3E6pwS7l{jI?FRu!w&}rLbQ@uo;rBs~-Oolz`6iWM{L!~B1 zm!%8#8Y$_|8EY^gc7sPZg@v`~>FJ3B?QLzvTIJ-mv@G4K(Hc#UV<^s@or;+0Rno#g zpw7w8ejzF8l_C>qAk$s5BKw7#sc9zN!lW;2fU_(FZ#t=!l@;Qqkl0w79V$z8 zLh+?GBJ$MX6#~=Xo6XBX>&pcl5#tLGmp1lXel|CE31Ua|SjuhYWWh6x`g1hOU`7z% z@pz+U=@}WlqPwqi7#KDBT}Qkhg2&*KUYK{kV!ckCF$zUO{MV^w)*T>Dv_^I(B;0~r z)I?eJ5c8|MTd)0UC#Ugm>;X8WuHBqHU$ns~o&BwajI6942xj#bh5qXiR0LkvEMH@a*Ztg&~U0$JUac!^4?kJ5nz* z%0A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

b63iR=1COIY%3{zFL&Xsv2`V4tJqb`u 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 O)l$<{eR{||;C}&zz%tMP diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.5/changelogs-arkui.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.5/changelogs-arkui.md deleted file mode 100644 index 793df76331..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.5/changelogs-arkui.md +++ /dev/null @@ -1,73 +0,0 @@ -# arkui子系统ChangeLog - -## cl.arkui.1 Navigation menus属性显示变更 - -**变更影响** - -menus的value属性值不做显示,如果需要显示,可以使用自定义Builder显示。 - -**示例:** -```ts -@Entry -@Component -struct Index { - build() { - Column() { - Navigation() { - Text('Navigation') - }.title("Navigation Menu") - .menus([ - {icon: 'common/image/icon.png', value: 'menu1'}, - {icon: 'common/image/icon.png', value: 'menu2'}, - {icon: 'common/image/icon.png', value: 'menu3'} - ]) - } - } -} -``` -API Version 9:menus的value属性会显示 - -![Navigation](figures/navigation_menu_api9.png) - -API Version 10: menus中的value属性不显示 -![Navigation](figures/navigation_menu_api10.png) - -## cl.arkui.2 Navigation的titleMode属性Free模式默认显示位置变更 - -**变更影响** -1. Navigation组件自定义标题并titleMode设置为Full模式或Free模式显示位置相同 -2. 使用自定义title结合Free模式的标签会出现标签位置向右偏移 - -**示例:** -```ts -@Entry -@Component -struct Index { - @Builder NavigationTile() { - Column() { - Text('title').fontColor('#182431').fontSize(30).lineHeight(41) - Text('subTitle').fontColor('#182431').fontSize(14).lineHeight(19).margin(top:2, bottom: 20) - } - } - - build() { - Column() { - Navigation() { - Text('Navigation') - }.title(this.NavigationTitle) - .titleMode(NavigationTitleMode.Free) - .menus([ - {icon: 'common/image/icon.png', value: 'menu1'} - ]) - } - } -} -``` - -API Version 9: Free模式显示位置 - -![Navigation](figures/navigation_title_mode_free_sdk9.png) - -API Version 10: Free模式显示位置与Full模式显示位置相同 - -![Navigation](figures/navigation_title_mode_free_sdk10.png) \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.5/changelogs-formfwk.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.5/changelogs-formfwk.md deleted file mode 100644 index ae1e218d4c..0000000000 --- a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.5/changelogs-formfwk.md +++ /dev/null @@ -1,144 +0,0 @@ -# formfwk子系统ChangeLog - -## cl.formfwk.1 @ohos.app.form.formHost.d.ts部分接口移出,接口权限变动 - -1. @ohos.app.form.formHost.d.ts中涉及监听和获取卡片动态信息的接口移至@ohos.app.form.formObserver.d.ts; -2. 涉及接口需申请权限由ohos.permission.REQUIRE_FORM修改为ohos.permission.OBSERVE_FORM_RUNNING。 - -**变更影响** - -对于已发布的js接口,可能影响三方应用的兼容性。 - -**关键的接口/组件变更** - -| 接口 | 修改前所属d.ts | 修改后所属d.ts | 修改前所需权限 | 修改后所需权限 | -| -------- | -------- | -------- | -------- | -------- | -| on('formAdd') | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM|ohos.permission.OBSERVE_FORM_RUNNING| -| off('formAdd')| @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM|ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | -| on('formRemove') | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | -| off('formRemove') | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | -| on('notifyVisible') | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | -| off('notifyVisible') | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | -| on('notifyInvisible') | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | -| off('notifyInvisible') | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | -| getRunningFormInfos | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | -| getRunningFormInfosByFilter | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | -| getRunningFormInfoById | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | - - -**适配指导** - -已使用相关接口开发的应用工程,需要对接口进行适配。从OpenHarmony 4.0.9.5版本起,相关接口使用应导入@ohos.app.form.formObserver.d.ts,并申请ohos.permission.OBSERVE_FORM_RUNNING权限。 - -**示例:** -```js -import formObserver from @ohos.app.form.formObserver.d.ts; - -try { - formObserver.getRunningFormInfos((error, data) => { - if (error) { - console.error(`error, code: ${error.code}, message: ${error.message}`); - } else { - console.log('formHost getRunningFormInfos, data: ${JSON.stringify(data)}'); - } - }, 'com.example.ohos.formjsdemo'); -} catch(error) { - console.error(`catch error, code: ${error.code}, message: ${error.message}`); -} -``` - -## cl.formfwk.2 事件订阅,取消订阅相关接口(on/off)参数顺序调整 - -事件订阅,取消订阅相关接口(on/off)中的callback调整为接口最后一个参数。 - -**变更影响** - -对于已发布的js接口,可能影响三方应用的兼容性。 - -**关键的接口/组件变更** - -修改前的接口原型: - -```js -function on(type: 'formAdd', observerCallback: Callback, bundleName?: string): void; -function off(type: 'formAdd', observerCallback?: Callback, bundleName?: string): void; - -function on(type: 'formRemove', observerCallback: Callback, bundleName?: string): void; -function off(type: 'formRemove', observerCallback?: Callback, bundleName?: string): void; - -function on( - type: 'notifyVisible', - observerCallback: Callback>, - hostBundleName?: string - ): void; -function off( - type: 'notifyVisible', - observerCallback?: Callback>, - hostBundleName?: string - ): void; - -function on( - type: 'notifyInvisible', - observerCallback: Callback>, - hostBundleName?: string - ): void; -function off( - type: 'notifyInvisible', - observerCallback?: Callback>, - hostBundleName?: string - ): void; -``` - -修改后的接口原型: - -```js -function on(type: 'formAdd', observerCallback: Callback): void; -function on(type: 'formAdd', hostBundleName: string, observerCallback: Callback): void; -function off(type: 'formAdd', hostBundleName?: string, observerCallback?: Callback): void; - -function on(type: 'formRemove', observerCallback: Callback): void; -function on(type: 'formRemove', hostBundleName: string, observerCallback: Callback): void; -function off(type: 'formRemove', hostBundleName?: string, observerCallback?: Callback): void; - -function on(type: 'notifyVisible', observerCallback: Callback>): void; -function on( - type: 'notifyVisible', - hostBundleName: string, - observerCallback: Callback> - ): void; -function off( - type: 'notifyVisible', - hostBundleName?: string, - observerCallback?: Callback> - ): void; - -function on(type: 'notifyInvisible', observerCallback: Callback>): void; -function on( - type: 'notifyInvisible', - hostBundleName: string, - observerCallback: Callback>, - ): void; -function off( - type: 'notifyInvisible', - hostBundleName?: string, - observerCallback?: Callback> - ): void; -``` - - -**适配指导** - -已使用相关接口开发的应用工程,需要对接口进行适配。从OpenHarmony 4.0.9.5版本起,相关接口使用应注意入参顺序的调整,将callback作为最后一个参数进行接口调用。 - -**示例:** -```js -import formObserver from @ohos.app.form.formObserver.d.ts; - -let bundleName = 'ohos.samples.FormApplication'; -let callback = function(data) { - console.log('a new form added, data: ${JSON.stringify(data)'); -} - -formHost.on('formAdd', callback); -formHost.on('formAdd', bundleName, callback); -``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.5/figures/navigation_menu_api10.png b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.5/figures/navigation_menu_api10.png deleted file mode 100644 index 24a30ea3a944793806fb279980de4a3d03390539..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28490 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 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.5/figures/navigation_title_mode_free_sdk10.png b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.9.5/figures/navigation_title_mode_free_sdk10.png deleted file mode 100644 index 4ef990a8e4cf03ea48063d182bd6b461f111fb62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20677 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ä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 diff --git a/zh-cn/release-notes/changelogs/v3.2-beta4/Readme.md b/zh-cn/release-notes/changelogs/v3.2-beta4/Readme.md new file mode 100644 index 0000000000..5d4b22da0f --- /dev/null +++ b/zh-cn/release-notes/changelogs/v3.2-beta4/Readme.md @@ -0,0 +1,29 @@ +# Readme + +- [元能力](changelogs-ability.md) +- [帐号](changelogs-account_os_account.md) +- [ArkUI](changelogs-arkui.md) +- [多媒体-相机](changelogs-camera.md) +- [设备管理](changelogs-device-manager.md) +- [USB](changelogs-device-usb.md) +- [分布式调度](changelogs-dmsfwk.md) +- [分布式软总线](changelogs-dsoftbus.md) +- [定制管理](changelogs-enterprise_device_management.md) +- [文件管理](changelogs-filemanagement.md) +- [位置服务](changelogs-geolocation.md) +- [全球化](changelogs-global.md) +- [输入法框架](changelogs-inputmethod-framworks.md) +- [多媒体](changelogs-multimedia.md) +- [多模输入](changelogs-multimodalinput.md) +- [事件通知](changelogs-notification.md) +- [电源管理](changelogs-power.md) +- [上传下载](changelogs-request.md) +- [资源管理](changelogs-resource-manager.md) +- [资源调度](changelogs-resourceschedule.md) +- [电话服务](changelogs-telephony.md) +- [测试](changelogs-testfwk_arkxtest.md) +- [主题](changelogs-theme.md) +- [用户IAM](changelogs-useriam.md) +- [元能力-WantAgent](changelogs-wantAgent.md) +- [Web](changelogs-web.md) +- [基础通信-WIFI](changelogs-wifi.md) diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelog-x-x.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelog-x-x.md similarity index 100% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelog-x-x.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelog-x-x.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-ability.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-ability.md similarity index 100% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-ability.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-ability.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-account_os_account.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-account_os_account.md similarity index 58% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-account_os_account.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-account_os_account.md index 7aa6bffc9c..3270d7b74c 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-account_os_account.md +++ b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-account_os_account.md @@ -1,105 +1,234 @@ -# 帐号子系统changeLog - -## cl.account_os_account.1 变更错误码定义及其返回方式 - -针对帐号子系统API存在错误码定义不统一和抛出方式不符合OpenHarmony错误码规范的问题,从API9开始作以下变更: - -- 新增统一的错误码定义: - - [帐号公共错误码](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/errorcodes/errorcode-account.md) - - [应用帐号错误码](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/errorcodes/errorcode-account.md) - -- 按以下方式返回错误码: - - 异步接口:错误信息通过AsyncCallback或Promise的error对象返回。其中,参数类型和数量错误信息,通过抛出异常的方式返回。 - - 同步接口:错误信息通过抛出异常的方式返回。 - -**变更影响** - -基于此前版本开发的应用,需适配变更后的新错误码和错误信息返回方式,否则会影响原有业务逻辑。 - -**关键接口/组件变更** - -以下接口涉及新错误码和错误信息返回方式变更: - - class AccountManager - - activateOsAccount(localId: number, callback: AsyncCallback<void>): void; - - removeOsAccount(localId: number, callback: AsyncCallback<void>): void; - - setOsAccountConstraints(localId: number, constraints: Array<string>, enable: boolean, callback: AsyncCallback<void>): void; - - setOsAccountName(localId: number, localName: string, callback: AsyncCallback<void>): void; - - queryMaxOsAccountNumber(callback: AsyncCallback<number>): void; - - queryAllCreatedOsAccounts(callback: AsyncCallback<Array<OsAccountInfo>>): void; - - createOsAccount(localName: string, type: OsAccountType, callback: AsyncCallback<OsAccountInfo>): void; - - createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo, callback: AsyncCallback<OsAccountInfo>): void; - - queryOsAccountById(localId: number, callback: AsyncCallback<OsAccountInfo>): void; - - getOsAccountProfilePhoto(localId: number, callback: AsyncCallback<string>): void; - - setOsAccountProfilePhoto(localId: number, photo: string, callback: AsyncCallback<void>): void; - - on(type: 'activate' | 'activating', name: string, callback: Callback<number>): void; - - off(type: 'activate' | 'activating', name: string, callback?: Callback<number>): void; - - isMainOsAccount(callback: AsyncCallback<boolean>): void; - - queryOsAccountConstraintSourceTypes(localId: number, constraint: string, callback: AsyncCallback<Array<ConstraintSourceTypeInfo>>): void; - - class UserAuth - - constructor(); - - getVersion(): number; - - getAvailableStatus(authType: AuthType, authTrustLevel: AuthTrustLevel): number; - - getProperty(request: GetPropertyRequest, callback: AsyncCallback<ExecutorProperty>): void; - - setProperty(request: SetPropertyRequest, callback: AsyncCallback<number>): void; - - auth(challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array; - - authUser(userId: number, challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array; - - cancelAuth(contextID: Uint8Array): number; - - class PINAuth - - constructor(); - - registerInputer(inputer: IInputer): boolean; - - unregisterInputer(authType: AuthType): void; - - class UserIdentityManager - - constructor(); - - openSession(callback: AsyncCallback<Uint8Array>): void; - - addCredential(credentialInfo: CredentialInfo, callback: IIdmCallback): void; - - updateCredential(credentialInfo: CredentialInfo, callback: IIdmCallback): void; - - closeSession(): void; - - cancel(challenge: Uint8Array): number; - - delUser(token: Uint8Array, callback: IIdmCallback): void; - - delCred(credentialId: Uint8Array, token: Uint8Array, callback: IIdmCallback): void; - - getAuthInfo(callback: AsyncCallback<Array<EnrolledCredInfo>>): void; - - interface IInputData - - onSetData: (authSubType: AuthSubType, data: Uint8Array) => void; - -**适配指导** - -异步接口的错误信息处理逻辑以activateOsAccount为例,示例代码如下: - -```ts -import account_osAccount from "@ohos.account.osAccount" -let accountMgr = account_osAccount.getAccountManager() -let callbackFunc = (err) => { - if (err != null) { // handle the bussiness error - console.log("account_osAccount failed, error: " + JSON.stringify(err)); - } else { - console.log("account_osAccount successfully"); - } -} -try { - accountMgr.activateOsAccount("100", callbackFunc); -} catch (err) { // handle the parameter type error - console.log("account_osAccount failed for incorrect parameter type, error: " + JSON.stringify(err)); -} -try { - accountMgr.activateOsAccount(); -} catch (err) { // handle the parameter number error - console.log("account_osAccount failed for incorrect parameter number, error: " + JSON.stringify(err)); -} -``` - -同步接口的错误信息处理以registerInputer为例,示例代码如下: - -```ts -import account_osAccount from "@ohos.account.osAccount" -let pinAuth = new account_osAccount.PINAuth() -try { - pinAuth.registerInputer({}) -} catch (err) { // handle the parameter type error - console.log("account_osAccount failed for incorrect parameter type, error: " + JSON.stringify(err)); -} -try { - pinAuth.registerInputer() -} catch (err) { // handle the parameter number error - console.log("account_osAccount failed for incorrect parameter number, error: " + JSON.stringify(err)); -} -``` +# 帐号子系统changeLog + +## cl.account_os_account.1 变更错误码定义及其返回方式 + +针对帐号子系统API存在错误码定义不统一和抛出方式不符合OpenHarmony错误码规范的问题,从API9开始作以下变更: + +- 新增统一的错误码定义: + [帐号公共错误码](../../../application-dev/reference/errorcodes/errorcode-account.md) + +- 按以下方式返回错误码: + - 异步接口:错误信息通过AsyncCallback或Promise的error对象返回。其中,参数类型和数量错误信息,通过抛出异常的方式返回。 + - 同步接口:错误信息通过抛出异常的方式返回。 + +**变更影响** + +基于此前版本开发的应用,需适配变更后的新错误码和错误信息返回方式,否则会影响原有业务逻辑。 + +**关键接口/组件变更** + +以下接口涉及新错误码和错误信息返回方式变更: + - class AccountManager + - activateOsAccount(localId: number, callback: AsyncCallback<void>): void; + - removeOsAccount(localId: number, callback: AsyncCallback<void>): void; + - setOsAccountConstraints(localId: number, constraints: Array<string>, enable: boolean, callback: AsyncCallback<void>): void; + - setOsAccountName(localId: number, localName: string, callback: AsyncCallback<void>): void; + - queryMaxOsAccountNumber(callback: AsyncCallback<number>): void; + - queryAllCreatedOsAccounts(callback: AsyncCallback<Array<OsAccountInfo>>): void; + - createOsAccount(localName: string, type: OsAccountType, callback: AsyncCallback<OsAccountInfo>): void; + - createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo, callback: AsyncCallback<OsAccountInfo>): void; + - queryOsAccountById(localId: number, callback: AsyncCallback<OsAccountInfo>): void; + - getOsAccountProfilePhoto(localId: number, callback: AsyncCallback<string>): void; + - setOsAccountProfilePhoto(localId: number, photo: string, callback: AsyncCallback<void>): void; + - on(type: 'activate' | 'activating', name: string, callback: Callback<number>): void; + - off(type: 'activate' | 'activating', name: string, callback?: Callback<number>): void; + - isMainOsAccount(callback: AsyncCallback<boolean>): void; + - queryOsAccountConstraintSourceTypes(localId: number, constraint: string, callback: AsyncCallback<Array<ConstraintSourceTypeInfo>>): void; + - class UserAuth + - constructor(); + - getVersion(): number; + - getAvailableStatus(authType: AuthType, authTrustLevel: AuthTrustLevel): number; + - getProperty(request: GetPropertyRequest, callback: AsyncCallback<ExecutorProperty>): void; + - setProperty(request: SetPropertyRequest, callback: AsyncCallback<number>): void; + - auth(challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array; + - authUser(userId: number, challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array; + - cancelAuth(contextID: Uint8Array): number; + - class PINAuth + - constructor(); + - registerInputer(inputer: IInputer): boolean; + - unregisterInputer(authType: AuthType): void; + - class UserIdentityManager + - constructor(); + - openSession(callback: AsyncCallback<Uint8Array>): void; + - addCredential(credentialInfo: CredentialInfo, callback: IIdmCallback): void; + - updateCredential(credentialInfo: CredentialInfo, callback: IIdmCallback): void; + - closeSession(): void; + - cancel(challenge: Uint8Array): number; + - delUser(token: Uint8Array, callback: IIdmCallback): void; + - delCred(credentialId: Uint8Array, token: Uint8Array, callback: IIdmCallback): void; + - getAuthInfo(callback: AsyncCallback<Array<EnrolledCredInfo>>): void; + - interface IInputData + - onSetData: (authSubType: AuthSubType, data: Uint8Array) => void; + +**适配指导** + +异步接口的错误信息处理逻辑以activateOsAccount为例,示例代码如下: + +```ts +import account_osAccount from "@ohos.account.osAccount" +let accountMgr = account_osAccount.getAccountManager() +let callbackFunc = (err) => { + if (err != null) { // handle the bussiness error + console.log("account_osAccount failed, error: " + JSON.stringify(err)); + } else { + console.log("account_osAccount successfully"); + } +} +try { + accountMgr.activateOsAccount("100", callbackFunc); +} catch (err) { // handle the parameter type error + console.log("account_osAccount failed for incorrect parameter type, error: " + JSON.stringify(err)); +} +try { + accountMgr.activateOsAccount(); +} catch (err) { // handle the parameter number error + console.log("account_osAccount failed for incorrect parameter number, error: " + JSON.stringify(err)); +} +``` + +同步接口的错误信息处理以registerInputer为例,示例代码如下: + +```ts +import account_osAccount from "@ohos.account.osAccount" +let pinAuth = new account_osAccount.PINAuth() +try { + pinAuth.registerInputer({}) +} catch (err) { // handle the parameter type error + console.log("account_osAccount failed for incorrect parameter type, error: " + JSON.stringify(err)); +} +try { + pinAuth.registerInputer() +} catch (err) { // handle the parameter number error + console.log("account_osAccount failed for incorrect parameter number, error: " + JSON.stringify(err)); +} +``` + +# 帐号子系统ChangeLog + +## cl.account_os_account.2 帐号SystemAPI错误信息返回方式变更 + +已发布的部分帐号SystemAPI使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。从API9开始作以下变更: + +异步接口:通过AsyncCallback或Promise的error对象返回错误信息。 + +同步接口:通过抛出异常的方式返回错误信息。 + +**变更影响** + +基于此前版本开发的应用,需适配变更接口的错误信息返回方式,否则会影响原有业务逻辑。 + +**关键接口/组件变更** + +变更前: + + - class UserAuth + - setProperty(request: SetPropertyRequest, callback: AsyncCallback<number>): void; + - setProperty(request: SetPropertyRequest): Promise<number>; + - cancelAuth(contextID: Uint8Array): number; + - class PINAuth + - registerInputer(inputer: Inputer): boolean; + - UserIdentityManager + - cancel(challenge: Uint8Array): number; + +变更后: + + - class UserAuth + - setProperty(request: SetPropertyRequest, callback: AsyncCallback<void>): void; + - setProperty(request: SetPropertyRequest): Promise<void>; + - cancelAuth(contextID: Uint8Array): void; + - class PINAuth + - registerInputer(inputer: Inputer): void; + - UserIdentityManager + - cancel(challenge: Uint8Array): void; + +**适配指导** + +异步接口以setProperty为例,示例代码如下: + +``` +import account_osAccount from "@ohos.account.osAccount" +userAuth.setProperty({ + authType: account_osAccount.AuthType.PIN, + key: account_osAccount.SetPropertyType.INIT_ALGORITHM, + setInfo: new Uint8Array([0]) +}, (err) => { + if (err) { + console.log("setProperty failed, error: " + JSON.stringify(err)); + } else { + console.log("setProperty successfully"); + } +}); + +userAuth.setProperty({ + authType: account_osAccount.AuthType.PIN, + key: account_osAccount.SetPropertyType.INIT_ALGORITHM, + setInfo: new Uint8Array([0]) +}).catch((err) => { + if (err) { + console.log("setProperty failed, error: " + JSON.stringify(err)); + } else { + console.log("setProperty successfully"); + } +}); +``` + +同步接口以registerInputer为例,示例代码如下: + +``` +import account_osAccount from "@ohos.account.osAccount" +let pinAuth = new account_osAccount.PINAuth() +let inputer = { + onGetData: (authType, passwordRecipient) => { + let password = new Uint8Array([0]); + passwordRecipient.onSetData(authType, password); + } +} +try { + pinAuth.registerInputer(inputer); +} catch (err) { + console.log("registerInputer failed, error: " + JSON.stringify(err)); +} +``` + +## cl.account_os_account.3 应用帐号鉴权服务ACTION定义变更 + +**变更影响** + +基于此前版本开发的应用,需适配修改应用配置文件(FA模型为config.json或Stage模型为module.json5)中的ACTION才能正常对外提供应用鉴权服务。 + +**关键接口/组件变更** + +涉及的常量: + +@ohos.ability.wantConstant.ACTION_APP_ACCOUNT_AUTH + +变更前: + +ACTION_APP_ACCOUNT_AUTH = "account.appAccount.action.auth" + +变更后: + +ACTION_APP_ACCOUNT_AUTH = "ohos.appAccount.action.auth" + +**适配指导** + +提供应用帐号鉴权服务的三方应用,需要在相关ServiceAbility的配置文件(FA模型为config.json或Stage模型为module.json5)中适配变更后的应用帐号认证ACTION,示例如下: + +``` +"abilities": [ + { + "name": "ServiceAbility", + "srcEnty": "./ets/ServiceAbility/ServiceAbility.ts", + ... + "visible": true, + "skills": { + { + "actions": [ + "ohos.appAccount.action.auth" + ] + } + } + }] +} + +``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelogs-arkui.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-arkui.md similarity index 94% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelogs-arkui.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-arkui.md index 2a76e25c34..3293eb4d93 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelogs-arkui.md +++ b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-arkui.md @@ -69,7 +69,7 @@ ArkUI子系统alertDialog, actionSheet, customDialog组件及prompt, promptActio ## cl.arkui.3 自定义组件成员变量初始化的方式与约束校验场景补全 -自定义组件成员变量初始化规则此版本修复了某些遗漏场景的校验。 +自定义组件成员变量初始化规则请参考文档,此版本修复了某些遗漏场景的校验。 **变更影响** @@ -86,7 +86,7 @@ ArkUI子系统alertDialog, actionSheet, customDialog组件及prompt, promptActio ## cl.arkui.4 自定义父子组件成员变量赋值约束校验场景补全 -自定义父子组件成员变量赋值规则此版本修复了某些遗漏场景的校验。 +自定义父子组件成员变量赋值规则请参考文档,此版本修复了某些遗漏场景的校验。 **变更影响** diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-camera.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-camera.md similarity index 99% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-camera.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-camera.md index 9d5c7e9811..b7b5b8c3c8 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-camera.md +++ b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-camera.md @@ -1,7 +1,5 @@ # 媒体子系统JS API变更Changelog -OpenHarmony3.2 Beta4版本相较于OpenHarmony3.2 Beta3版本,媒体子系统camera部件API变更如下 - ## camera接口变更 基于以下原因新增部分功能接口以及废弃部分接口: 1. 提升开发者使用相机接口的便利。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-device-manager.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-device-manager.md similarity index 100% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-device-manager.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-device-manager.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-device-usb.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-device-usb.md old mode 100755 new mode 100644 similarity index 96% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-device-usb.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-device-usb.md index 329d267fc9..15629e9353 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-device-usb.md +++ b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-device-usb.md @@ -1,27 +1,27 @@ -# USB管理 changeLog - -## cl.usb_manager.1 API错误信息返回方式变更 - -USB管理接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。从API9开始作出变更,选择通过抛出异常的方式返回错误信息。 - -**变更影响** - -基于此前版本开发的应用,需适配接口的错误信息返回方式,否则会影响原有业务逻辑。 - -**关键接口/组件变更** - -USB模块名由@ohos.usb.d.ts 变更为 @ohos.usbV9.d.ts,模块内所有接口均增加错误码处理。 - -**适配指导** - -接口以getDevices为例,示例代码如下: - -```ts -import usbV9 from '@ohos.usbV9' - -try { -usbV9.getDevices(); // 如果给该接口传入不合适的参数,则会抛出异常 -} catch (err) { -console.error("getDevices errCode:" + err.code + ",errMessage:" + err.message); -} +# USB管理 changeLog + +## cl.usb_manager.1 API错误信息返回方式变更 + +USB管理接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。从API9开始作出变更,选择通过抛出异常的方式返回错误信息。 + +**变更影响** + +基于此前版本开发的应用,需适配接口的错误信息返回方式,否则会影响原有业务逻辑。 + +**关键接口/组件变更** + +USB模块名由@ohos.usb.d.ts 变更为 @ohos.usbV9.d.ts,模块内所有接口均增加错误码处理。 + +**适配指导** + +接口以getDevices为例,示例代码如下: + +```ts +import usbV9 from '@ohos.usbV9' + +try { +usbV9.getDevices(); // 如果给该接口传入不合适的参数,则会抛出异常 +} catch (err) { +console.error("getDevices errCode:" + err.code + ",errMessage:" + err.message); +} ``` \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelog-dmsfwk.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-dmsfwk.md similarity index 81% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelog-dmsfwk.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-dmsfwk.md index 88316500aa..6876e37497 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelog-dmsfwk.md +++ b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-dmsfwk.md @@ -99,4 +99,24 @@ continuationManager.off 设备取消选择事件 } catch (err) { console.error('off failed, cause: ' + JSON.stringify(err)); } -``` \ No newline at end of file +``` + +## cl.DistributedManagerService.2 continuationManager接口新增DATASYNC权限校验 + +此前版本continuationManager接口未对调用方进行校验,不符合OpenHarmony的API接口规范。 +已做出以下变更:调用方使用continuationManager前需提前申请"ohos.permission.DISTRIBUTED_DATASYNC"权限。 + +**变更影响** + +基于此前版本开发的应用,需提前申请"ohos.permission.DISTRIBUTED_DATASYNC"权限,否则会影响原有业务逻辑。 + +**关键的接口/组件变更** + +涉及接口 + + - continuationManager.registerContinuation; + - continuationManager.on; + - continuationManager.off; + - continuationManager.unregisterContinuation; + - continuationManager.updateContinuationState; + - continuationManager.startContinuationDeviceManager; \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-dsoftbus.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-dsoftbus.md similarity index 98% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-dsoftbus.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-dsoftbus.md index 2f7b7d8cb2..e52128d7c3 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-dsoftbus.md +++ b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-dsoftbus.md @@ -1,145 +1,145 @@ -# 软总线子系统Changelog - -## IPC&RPC API支持异常处理方式和支持传入布尔值与数值选择同步或异步方式发送信息变更 -1. 软总线IPC&RPC部分接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误规范; -2. 支持传入布尔值选择同步或异步方式发送信息。 -#### 变更影响 - -此版本兼容之前的应用开发,不需要适配,后续可调用新增接口支持以下两个变更: -1. 支持异常处理并返回错误码; -2. 提供通过布尔值或通过0与非0数字选择同步或异步发消息。 - -#### 关键接口/组件变更 - -为适配统一的API异常处理方式,对IPC&RPC相关接口进行废弃,并新增对应接口和方法。新增接口支持统一的错误码异常处理规范,功能上与原接口保持一致。 -| 类名 | 废弃接口 | 新增替换类名 | 新增替代接口 | -| ------------ | ------------ | ------------ | ------------ | -| MessageParcel | static create(): MessageParcel | MessageSequence | static create(): MessageSequence | -| MessageParcel | reclaim(): void | MessageSequence | reclaim(): void | -| MessageParcel | writeRemoteObject(object: IRemoteObject): boolean| MessageSequence |writeRemoteObject(object: IRemoteObject): void| -| MessageParcel | readRemoteObject(): IRemoteObject | MessageSequence | readRemoteObject(): IRemoteObject | -| MessageParcel | writeInterfaceToken(token: string): boolean | MessageSequence | writeInterfaceToken(token: string): void | -| MessageParcel | readInterfaceToken(): string | MessageSequence | readInterfaceToken(): string | -| MessageParcel | getSize(): number | MessageSequence | getSize(): number | -| MessageParcel | getCapacity(): number | MessageSequence | getCapacity(): number| -| MessageParcel | setSize(size: number): boolean | MessageSequence | setCapacity(size: number): void | -| MessageParcel | getReadableBytes(): number | MessageSequence | getReadableBytes(): number | -| MessageParcel | getReadPosition(): number | MessageSequence | getReadPosition(): number | -| MessageParcel | getWritePosition(): number | MessageSequence | getWritePosition(): number | -| MessageParcel | rewindRead(pos: number): boolean | MessageSequence | rewindRead(pos: number): void | -| MessageParcel | rewindWrite(pos: number): boolean | MessageSequence | rewindWrite(pos: number): void | -| MessageParcel | writeNoException(): void | MessageSequence | writeNoException(): void | -| MessageParcel | readException(): void | MessageSequence | readException(): void | -| MessageParcel | writeByte(val: number): boolean | MessageSequence | writeByte(val: number): void | -| MessageParcel | writeShort(val: number): boolean | MessageSequence | writeShort(val: number): void | -| MessageParcel | writeInt(val: number): boolean | MessageSequence | writeInt(val: number): void | -| MessageParcel | writeLong(val: number): boolean | MessageSequence | writeLong(val: number): void | -| MessageParcel | writeFloat(val: number): boolean | MessageSequence | writeFloat(val: number): void | -| MessageParcel | writeDouble(val: number): boolean | MessageSequence | writeDouble(val: number): void | -| MessageParcel | writeBoolean(val: boolean): boolean | MessageSequence | writeBoolean(val: boolean): void | -| MessageParcel | writeChar(val: number): boolean | MessageSequence | writeChar(val: number): void | -| MessageParcel | writeString(val: string): boolean | MessageSequence | writeString(val: string): void | -| MessageParcel | writeSequenceable(val: Sequenceable): boolean | MessageSequence | writeParcelable(val: Parcelable): void | -| MessageParcel | writeByteArray(byteArray: number[]): boolean | MessageSequence | writeByteArray(byteArray: number[]): void | -| MessageParcel | writeShortArray(shortArray: number[]): boolean | MessageSequence | writeShortArray(shortArray: number[]): void | -| MessageParcel | writeIntArray(intArray: number[]): boolean | MessageSequence | writeIntArray(intArray: number[]): void | -| MessageParcel | writeLongArray(longArray: number[]): boolean | MessageSequence | writeLongArray(longArray: number[]): void | -| MessageParcel | writeFloatArray(floatArray: number[]): boolean | MessageSequence | writeFloatArray(floatArray: number[]): void | -| MessageParcel | writeDoubleArray(doubleArray: number[]): boolean | MessageSequence | writeDoubleArray(doubleArray: number[]): void | -| MessageParcel | writeBooleanArray(booleanArray: boolean[]): boolean | MessageSequence | writeBooleanArray(booleanArray: boolean[]): void | -| MessageParcel | writeCharArray(charArray: number[]): boolean | MessageSequence | writeCharArray(charArray: number[]): void | -| MessageParcel | writeStringArray(stringArray: string[]): boolean | MessageSequence | writeStringArray(stringArray: string[]): void | -| MessageParcel | writeSequenceableArray(sequenceableArray: Sequenceable[]): boolean | MessageSequence | writeParcelableArray(sequenceableArray: Parcelable[]): void | -| MessageParcel | writeRemoteObjectArray(objectArray: IRemoteObject[]): boolean | MessageSequence | writeRemoteObjectArray(objectArray: IRemoteObject[]): void | -| MessageParcel | readByte(): number | MessageSequence | readByte(): number | -| MessageParcel | readShort(): number | MessageSequence | readShort(): number | -| MessageParcel | readLong(): number | MessageSequence | readLong(): number | -| MessageParcel | readFloat(): number | MessageSequence | readFloat(): number | -| MessageParcel | readDouble(): number | MessageSequence | readDouble(): number | -| MessageParcel | readBoolean(): boolean | MessageSequence | readBoolean(): boolean | -| MessageParcel | readChar(): number | MessageSequence | readChar(): number | -| MessageParcel | readString(): string | MessageSequence | readString(): string | -| MessageParcel | readSequenceable(dataIn: Sequenceable) : boolean | MessageSequence | readSequenceable(dataIn: Parcelable) : void | -| MessageParcel | readByteArray(dataIn: number[]) : void | MessageSequence | readByteArray(dataIn: number[]) : void | -| MessageParcel | readByteArray(): number[] | MessageSequence | readByteArray(): number[] | -| MessageParcel | readShortArray(dataIn: number[]) : void | MessageSequence | readShortArray(dataIn: number[]) : void | -| MessageParcel | readShortArray(): number[] | MessageSequence | readShortArray(): number[] | -| MessageParcel | readIntArray(dataIn: number[]) : void | MessageSequence | readIntArray(dataIn: number[]) : void | -| MessageParcel | readIntArray() : number[] | MessageSequence | readIntArray() : number[] | -| MessageParcel | readLongArray(dataIn: number[]) : void | MessageSequence | readLongArray(dataIn: number[]) : void | -| MessageParcel | readLongArray(): number[] | MessageSequence | readLongArray(): number[] | -| MessageParcel | readFloatArray(dataIn: number[]) : void | MessageSequence | readFloatArray(dataIn: number[]) : void | -| MessageParcel | readFloatArray(): number[] | MessageSequence | readFloatArray(): number[] | -| MessageParcel | readDoubleArray(dataIn: number[]) : void | MessageSequence | readDoubleArray(dataIn: number[]) : void | -| MessageParcel | readDoubleArray(): number[] | MessageSequence | readDoubleArray(): number[] | -| MessageParcel | readBooleanArray(dataIn: boolean[]) : void | MessageSequence | readBooleanArray(dataIn: boolean[]) : void | -| MessageParcel | readBooleanArray(): boolean[] | MessageSequence | readBooleanArray(): boolean[] | -| MessageParcel | readCharArray(dataIn: number[]) : void | MessageSequence | readCharArray(dataIn: number[]) : void | -| MessageParcel | readCharArray(): number[] | MessageSequence | readCharArray(): number[] | -| MessageParcel | readStringArray(dataIn: string[]) : void | MessageSequence | readStringArray(dataIn: string[]) : void | -| MessageParcel | readStringArray(): string[] | MessageSequence | readStringArray(): string[] | -| MessageParcel | readSequenceableArray(sequenceableArray: Sequenceable[]): void | MessageSequence | readSequenceableArray(sequenceableArray: Parcelable[]): void | -| MessageParcel | readRemoteObjectArray(objects: IRemoteObject[]): void | MessageSequence | readRemoteObjectArray(objects: IRemoteObject[]): void | -| MessageParcel | readRemoteObjectArray(): IRemoteObject[] | MessageSequence | readRemoteObjectArray(): IRemoteObject[] | -| MessageParcel | static closeFileDescriptor(fd: number): void | MessageSequence | static closeFileDescriptor(fd: number): void | -| MessageParcel | static dupFileDescriptor(fd: number) :number | MessageSequence | static dupFileDescriptor(fd: number) :number | -| MessageParcel | containFileDescriptors(): boolean | MessageSequence | containFileDescriptors(): boolean | -| MessageParcel | writeFileDescriptor(fd: number): boolean | MessageSequence | writeFileDescriptor(fd: number): void | -| MessageParcel | readFileDescriptor(): number | MessageSequence | readFileDescriptor(): number | -| MessageParcel | writeAshmem(ashmem: Ashmem): boolean | MessageSequence | writeAshmem(ashmem: Ashmem): void | -| MessageParcel | readAshmem(): Ashmem | MessageSequence | readAshmem(): Ashmem | -| MessageParcel | writeRawData(rawData: number[], size: number): boolean | MessageSequence | writeRawData(rawData: number[], size: number): void | -| MessageParcel | readRawData(size: number): number[] | MessageSequence | readRawData(size: number): number[] | -| Sequenceable | marshalling(dataOut: MessageParcel): boolean | Parcelable | marshalling(dataOut: MessageSequence): boolean | -| Sequenceable | unmarshalling(dataIn: MessageParcel) : boolean | Parcelable | unmarshalling(dataIn: MessageSequence) : boolean | -| SendRequestResult | errCode: number | RequestResult | errCode: number | -| SendRequestResult | code: number | RequestResult | code: number | -| SendRequestResult | data: MessageParcel | RequestResult | data: MessageSequence | -| SendRequestResult | reply: MessageParcel | RequestResult | reply: MessageSequence | -| IRemoteObject | queryLocalInterface(descriptor: string): IRemoteBroker | NA | getLocalInterface(descriptor: string): IRemoteBroker | -| IRemoteObject | getInterfaceDescriptor(): string | NA | getDescriptor(): string | -| IRemoteObject | addDeathRecipient(recipient: DeathRecipient, flags: number): boolean | NA | registerDeathRecipient(recipient: DeathRecipient, flags: number): void | -| IRemoteObject | removeDeathRecipient(recipient: DeathRecipient, flags: number): boolean | NA | unregisterDeathRecipient(recipient: DeathRecipient, flags: number): void | -| IRemoteObject | NA | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption): Promise | -| IRemoteObject | sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption, callback: AsyncCallback): void | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption,callback: AsyncCallback): void | -| MessageOption | NA | NA | isAsync(): boolean | -| MessageOption | NA | NA | setAsync(async: boolean): void | -| MessageOption | NA | NA | constructor(async?: boolean) | -| RemoteObject | queryLocalInterface(descriptor: string): IRemoteBroker | NA | getLocalInterface(descriptor: string): IRemoteBroker | -| RemoteObject | attachLocalInterface(localInterface: IRemoteBroker, descriptor: string): void | NA | modifyLocalInterface(localInterface: IRemoteBroker, descriptor: string): void | -| RemoteObject | getInterfaceDescriptor(): string | NA | getDescriptor(): string | -| RemoteObject | onRemoteRequestEx(code : number, data : MessageParcel, reply: MessageParcel, options : MessageOption): boolean \| Promise | NA | onRemoteMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption): boolean \| Promise | -| RemoteObject | sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): Promise | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption): Promise | -| RemoteObject | sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption, callback: AsyncCallback): void | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption, callback: AsyncCallback): void | -| RemoteProxy | queryLocalInterface(interface: string): IRemoteBroker | NA | getLocalInterface(descriptor: string): IRemoteBroker | -| RemoteProxy | getInterfaceDescriptor(): string | NA | getDescriptor(): string | -| RemoteProxy | addDeathRecipient(recipient: DeathRecipient, flags: number): boolean | NA | registerDeathRecipient(recipient: DeathRecipient, flags: number): void | -| RemoteProxy | removeDeathRecipient(recipient: DeathRecipient, flags: number): boolean | NA | unregisterDeathRecipient(recipient: DeathRecipient, flags: number): void | -| RemoteProxy | NA | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption): Promise | -| RemoteProxy | sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption, callback: AsyncCallback): void | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption, callback: AsyncCallback): void | -| IPCSkeleton | static flushCommands(object: IRemoteObject): number | NA | static flushCmdBuffer(object: IRemoteObject): void | -| IPCSkeleton | static setCallingIdentity(identity: string): boolean | NA | static restoreCallingIdentity(identity: string): void | -| Ashmem | static createAshmem(name: string, size: number): Ashmem | NA | static create(name: string, size: number): Ashmem | -| Ashmem | static createAshmemFromExisting(ashmem: Ashmem): Ashmem | NA | static create(ashmem: Ashmem): Ashmem | -| Ashmem | mapAshmem(mapType: number): boolean | NA | mapTypedAshmem(mapType: number): void | -| Ashmem | mapReadAndWriteAshmem(): boolean | NA | mapReadWriteAshmem(): void | -| Ashmem | mapReadOnlyAshmem(): boolean | NA | mapReadonlyAshmem(): void | -| Ashmem | setProtection(protectionType: number): boolean | NA | setProtectionType(protectionType: number): void | -| Ashmem | writeToAshmem(buf: number[], size: number, offset: number): boolean | NA | writeAshmem(buf: number[], size: number, offset: number): void | -| Ashmem | readFromAshmem(size: number, offset: number): number[] | NA | readAshmem(size: number, offset: number): number[] | - -#### 适配指导 - -新增的接口以抛异常的方式返回错误码及对应的错误信息,以MessageParcel中的create接口为例,使用示例代码如下: -```js -import rpc from '@ohos.rpc' - -try { - var data = rpc.MessageParcel.create(); - data.reclaim(); -} catch (error) { - console.info("create meassageParcel failed, errorCode = " + error.errCode); - console.info("create meassageParcel failed, errorMessage = " + error.errorMessage); -} -``` +# 软总线子系统Changelog + +## IPC&RPC API支持异常处理方式和支持传入布尔值与数值选择同步或异步方式发送信息变更 +1. 软总线IPC&RPC部分接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误规范; +2. 支持传入布尔值选择同步或异步方式发送信息。 +#### 变更影响 + +此版本兼容之前的应用开发,不需要适配,后续可调用新增接口支持以下两个变更: +1. 支持异常处理并返回错误码; +2. 提供通过布尔值或通过0与非0数字选择同步或异步发消息。 + +#### 关键接口/组件变更 + +为适配统一的API异常处理方式,对IPC&RPC相关接口进行废弃,并新增对应接口和方法。新增接口支持统一的错误码异常处理规范,功能上与原接口保持一致。 +| 类名 | 废弃接口 | 新增替换类名 | 新增替代接口 | +| ------------ | ------------ | ------------ | ------------ | +| MessageParcel | static create(): MessageParcel | MessageSequence | static create(): MessageSequence | +| MessageParcel | reclaim(): void | MessageSequence | reclaim(): void | +| MessageParcel | writeRemoteObject(object: IRemoteObject): boolean| MessageSequence |writeRemoteObject(object: IRemoteObject): void| +| MessageParcel | readRemoteObject(): IRemoteObject | MessageSequence | readRemoteObject(): IRemoteObject | +| MessageParcel | writeInterfaceToken(token: string): boolean | MessageSequence | writeInterfaceToken(token: string): void | +| MessageParcel | readInterfaceToken(): string | MessageSequence | readInterfaceToken(): string | +| MessageParcel | getSize(): number | MessageSequence | getSize(): number | +| MessageParcel | getCapacity(): number | MessageSequence | getCapacity(): number| +| MessageParcel | setSize(size: number): boolean | MessageSequence | setCapacity(size: number): void | +| MessageParcel | getReadableBytes(): number | MessageSequence | getReadableBytes(): number | +| MessageParcel | getReadPosition(): number | MessageSequence | getReadPosition(): number | +| MessageParcel | getWritePosition(): number | MessageSequence | getWritePosition(): number | +| MessageParcel | rewindRead(pos: number): boolean | MessageSequence | rewindRead(pos: number): void | +| MessageParcel | rewindWrite(pos: number): boolean | MessageSequence | rewindWrite(pos: number): void | +| MessageParcel | writeNoException(): void | MessageSequence | writeNoException(): void | +| MessageParcel | readException(): void | MessageSequence | readException(): void | +| MessageParcel | writeByte(val: number): boolean | MessageSequence | writeByte(val: number): void | +| MessageParcel | writeShort(val: number): boolean | MessageSequence | writeShort(val: number): void | +| MessageParcel | writeInt(val: number): boolean | MessageSequence | writeInt(val: number): void | +| MessageParcel | writeLong(val: number): boolean | MessageSequence | writeLong(val: number): void | +| MessageParcel | writeFloat(val: number): boolean | MessageSequence | writeFloat(val: number): void | +| MessageParcel | writeDouble(val: number): boolean | MessageSequence | writeDouble(val: number): void | +| MessageParcel | writeBoolean(val: boolean): boolean | MessageSequence | writeBoolean(val: boolean): void | +| MessageParcel | writeChar(val: number): boolean | MessageSequence | writeChar(val: number): void | +| MessageParcel | writeString(val: string): boolean | MessageSequence | writeString(val: string): void | +| MessageParcel | writeSequenceable(val: Sequenceable): boolean | MessageSequence | writeParcelable(val: Parcelable): void | +| MessageParcel | writeByteArray(byteArray: number[]): boolean | MessageSequence | writeByteArray(byteArray: number[]): void | +| MessageParcel | writeShortArray(shortArray: number[]): boolean | MessageSequence | writeShortArray(shortArray: number[]): void | +| MessageParcel | writeIntArray(intArray: number[]): boolean | MessageSequence | writeIntArray(intArray: number[]): void | +| MessageParcel | writeLongArray(longArray: number[]): boolean | MessageSequence | writeLongArray(longArray: number[]): void | +| MessageParcel | writeFloatArray(floatArray: number[]): boolean | MessageSequence | writeFloatArray(floatArray: number[]): void | +| MessageParcel | writeDoubleArray(doubleArray: number[]): boolean | MessageSequence | writeDoubleArray(doubleArray: number[]): void | +| MessageParcel | writeBooleanArray(booleanArray: boolean[]): boolean | MessageSequence | writeBooleanArray(booleanArray: boolean[]): void | +| MessageParcel | writeCharArray(charArray: number[]): boolean | MessageSequence | writeCharArray(charArray: number[]): void | +| MessageParcel | writeStringArray(stringArray: string[]): boolean | MessageSequence | writeStringArray(stringArray: string[]): void | +| MessageParcel | writeSequenceableArray(sequenceableArray: Sequenceable[]): boolean | MessageSequence | writeParcelableArray(sequenceableArray: Parcelable[]): void | +| MessageParcel | writeRemoteObjectArray(objectArray: IRemoteObject[]): boolean | MessageSequence | writeRemoteObjectArray(objectArray: IRemoteObject[]): void | +| MessageParcel | readByte(): number | MessageSequence | readByte(): number | +| MessageParcel | readShort(): number | MessageSequence | readShort(): number | +| MessageParcel | readLong(): number | MessageSequence | readLong(): number | +| MessageParcel | readFloat(): number | MessageSequence | readFloat(): number | +| MessageParcel | readDouble(): number | MessageSequence | readDouble(): number | +| MessageParcel | readBoolean(): boolean | MessageSequence | readBoolean(): boolean | +| MessageParcel | readChar(): number | MessageSequence | readChar(): number | +| MessageParcel | readString(): string | MessageSequence | readString(): string | +| MessageParcel | readSequenceable(dataIn: Sequenceable) : boolean | MessageSequence | readSequenceable(dataIn: Parcelable) : void | +| MessageParcel | readByteArray(dataIn: number[]) : void | MessageSequence | readByteArray(dataIn: number[]) : void | +| MessageParcel | readByteArray(): number[] | MessageSequence | readByteArray(): number[] | +| MessageParcel | readShortArray(dataIn: number[]) : void | MessageSequence | readShortArray(dataIn: number[]) : void | +| MessageParcel | readShortArray(): number[] | MessageSequence | readShortArray(): number[] | +| MessageParcel | readIntArray(dataIn: number[]) : void | MessageSequence | readIntArray(dataIn: number[]) : void | +| MessageParcel | readIntArray() : number[] | MessageSequence | readIntArray() : number[] | +| MessageParcel | readLongArray(dataIn: number[]) : void | MessageSequence | readLongArray(dataIn: number[]) : void | +| MessageParcel | readLongArray(): number[] | MessageSequence | readLongArray(): number[] | +| MessageParcel | readFloatArray(dataIn: number[]) : void | MessageSequence | readFloatArray(dataIn: number[]) : void | +| MessageParcel | readFloatArray(): number[] | MessageSequence | readFloatArray(): number[] | +| MessageParcel | readDoubleArray(dataIn: number[]) : void | MessageSequence | readDoubleArray(dataIn: number[]) : void | +| MessageParcel | readDoubleArray(): number[] | MessageSequence | readDoubleArray(): number[] | +| MessageParcel | readBooleanArray(dataIn: boolean[]) : void | MessageSequence | readBooleanArray(dataIn: boolean[]) : void | +| MessageParcel | readBooleanArray(): boolean[] | MessageSequence | readBooleanArray(): boolean[] | +| MessageParcel | readCharArray(dataIn: number[]) : void | MessageSequence | readCharArray(dataIn: number[]) : void | +| MessageParcel | readCharArray(): number[] | MessageSequence | readCharArray(): number[] | +| MessageParcel | readStringArray(dataIn: string[]) : void | MessageSequence | readStringArray(dataIn: string[]) : void | +| MessageParcel | readStringArray(): string[] | MessageSequence | readStringArray(): string[] | +| MessageParcel | readSequenceableArray(sequenceableArray: Sequenceable[]): void | MessageSequence | readSequenceableArray(sequenceableArray: Parcelable[]): void | +| MessageParcel | readRemoteObjectArray(objects: IRemoteObject[]): void | MessageSequence | readRemoteObjectArray(objects: IRemoteObject[]): void | +| MessageParcel | readRemoteObjectArray(): IRemoteObject[] | MessageSequence | readRemoteObjectArray(): IRemoteObject[] | +| MessageParcel | static closeFileDescriptor(fd: number): void | MessageSequence | static closeFileDescriptor(fd: number): void | +| MessageParcel | static dupFileDescriptor(fd: number) :number | MessageSequence | static dupFileDescriptor(fd: number) :number | +| MessageParcel | containFileDescriptors(): boolean | MessageSequence | containFileDescriptors(): boolean | +| MessageParcel | writeFileDescriptor(fd: number): boolean | MessageSequence | writeFileDescriptor(fd: number): void | +| MessageParcel | readFileDescriptor(): number | MessageSequence | readFileDescriptor(): number | +| MessageParcel | writeAshmem(ashmem: Ashmem): boolean | MessageSequence | writeAshmem(ashmem: Ashmem): void | +| MessageParcel | readAshmem(): Ashmem | MessageSequence | readAshmem(): Ashmem | +| MessageParcel | writeRawData(rawData: number[], size: number): boolean | MessageSequence | writeRawData(rawData: number[], size: number): void | +| MessageParcel | readRawData(size: number): number[] | MessageSequence | readRawData(size: number): number[] | +| Sequenceable | marshalling(dataOut: MessageParcel): boolean | Parcelable | marshalling(dataOut: MessageSequence): boolean | +| Sequenceable | unmarshalling(dataIn: MessageParcel) : boolean | Parcelable | unmarshalling(dataIn: MessageSequence) : boolean | +| SendRequestResult | errCode: number | RequestResult | errCode: number | +| SendRequestResult | code: number | RequestResult | code: number | +| SendRequestResult | data: MessageParcel | RequestResult | data: MessageSequence | +| SendRequestResult | reply: MessageParcel | RequestResult | reply: MessageSequence | +| IRemoteObject | queryLocalInterface(descriptor: string): IRemoteBroker | NA | getLocalInterface(descriptor: string): IRemoteBroker | +| IRemoteObject | getInterfaceDescriptor(): string | NA | getDescriptor(): string | +| IRemoteObject | addDeathRecipient(recipient: DeathRecipient, flags: number): boolean | NA | registerDeathRecipient(recipient: DeathRecipient, flags: number): void | +| IRemoteObject | removeDeathRecipient(recipient: DeathRecipient, flags: number): boolean | NA | unregisterDeathRecipient(recipient: DeathRecipient, flags: number): void | +| IRemoteObject | NA | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption): Promise | +| IRemoteObject | sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption, callback: AsyncCallback): void | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption,callback: AsyncCallback): void | +| MessageOption | NA | NA | isAsync(): boolean | +| MessageOption | NA | NA | setAsync(async: boolean): void | +| MessageOption | NA | NA | constructor(async?: boolean) | +| RemoteObject | queryLocalInterface(descriptor: string): IRemoteBroker | NA | getLocalInterface(descriptor: string): IRemoteBroker | +| RemoteObject | attachLocalInterface(localInterface: IRemoteBroker, descriptor: string): void | NA | modifyLocalInterface(localInterface: IRemoteBroker, descriptor: string): void | +| RemoteObject | getInterfaceDescriptor(): string | NA | getDescriptor(): string | +| RemoteObject | onRemoteRequestEx(code : number, data : MessageParcel, reply: MessageParcel, options : MessageOption): boolean \| Promise | NA | onRemoteMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption): boolean \| Promise | +| RemoteObject | sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): Promise | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption): Promise | +| RemoteObject | sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption, callback: AsyncCallback): void | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption, callback: AsyncCallback): void | +| RemoteProxy | queryLocalInterface(interface: string): IRemoteBroker | NA | getLocalInterface(descriptor: string): IRemoteBroker | +| RemoteProxy | getInterfaceDescriptor(): string | NA | getDescriptor(): string | +| RemoteProxy | addDeathRecipient(recipient: DeathRecipient, flags: number): boolean | NA | registerDeathRecipient(recipient: DeathRecipient, flags: number): void | +| RemoteProxy | removeDeathRecipient(recipient: DeathRecipient, flags: number): boolean | NA | unregisterDeathRecipient(recipient: DeathRecipient, flags: number): void | +| RemoteProxy | NA | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption): Promise | +| RemoteProxy | sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption, callback: AsyncCallback): void | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption, callback: AsyncCallback): void | +| IPCSkeleton | static flushCommands(object: IRemoteObject): number | NA | static flushCmdBuffer(object: IRemoteObject): void | +| IPCSkeleton | static setCallingIdentity(identity: string): boolean | NA | static restoreCallingIdentity(identity: string): void | +| Ashmem | static createAshmem(name: string, size: number): Ashmem | NA | static create(name: string, size: number): Ashmem | +| Ashmem | static createAshmemFromExisting(ashmem: Ashmem): Ashmem | NA | static create(ashmem: Ashmem): Ashmem | +| Ashmem | mapAshmem(mapType: number): boolean | NA | mapTypedAshmem(mapType: number): void | +| Ashmem | mapReadAndWriteAshmem(): boolean | NA | mapReadWriteAshmem(): void | +| Ashmem | mapReadOnlyAshmem(): boolean | NA | mapReadonlyAshmem(): void | +| Ashmem | setProtection(protectionType: number): boolean | NA | setProtectionType(protectionType: number): void | +| Ashmem | writeToAshmem(buf: number[], size: number, offset: number): boolean | NA | writeAshmem(buf: number[], size: number, offset: number): void | +| Ashmem | readFromAshmem(size: number, offset: number): number[] | NA | readAshmem(size: number, offset: number): number[] | + +#### 适配指导 + +新增的接口以抛异常的方式返回错误码及对应的错误信息,以MessageParcel中的create接口为例,使用示例代码如下: +```js +import rpc from '@ohos.rpc' + +try { + var data = rpc.MessageParcel.create(); + data.reclaim(); +} catch (error) { + console.info("create meassageParcel failed, errorCode = " + error.errCode); + console.info("create meassageParcel failed, errorMessage = " + error.errorMessage); +} +``` 更多接口的示例代码可参考[RPC通信API文档](../../../application-dev/reference/apis/js-apis-rpc.md)。 \ No newline at end of file diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-enterprise_device_management.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-enterprise_device_management.md similarity index 99% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-enterprise_device_management.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-enterprise_device_management.md index 5ab2c1109b..1a345ef8f6 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-enterprise_device_management.md +++ b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-enterprise_device_management.md @@ -1,7 +1,5 @@ # 定制子系统ChangeLog -OpenHarmony 3.2.8.3 版本相较于OpenHarmony 3.2.8.1版本,定制子系统的API变更如下: - ## cl.Customization.1 企业设备管理模块名称变更 从Opeharmonny 3.2.8.3版本开始,将"@ohos.enterpriseDeviceManager.d.ts"改为"@ohos.enterprise.adminManager.d.ts",开发者需要根据以下说明对应用进行适配。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-filemanagement.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-filemanagement.md similarity index 100% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-filemanagement.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-filemanagement.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-geolocation.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-geolocation.md similarity index 100% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-geolocation.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-geolocation.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-global.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-global.md similarity index 100% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-global.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-global.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-inputmethod-framworks.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-inputmethod-framworks.md similarity index 100% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-inputmethod-framworks.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-inputmethod-framworks.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-multimedia.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-multimedia.md similarity index 100% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-multimedia.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-multimedia.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-multimodalinput.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-multimodalinput.md old mode 100755 new mode 100644 similarity index 100% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-multimodalinput.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-multimodalinput.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-notification.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-notification.md similarity index 100% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-notification.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-notification.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-power.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-power.md similarity index 100% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-power.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-power.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-request.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-request.md similarity index 99% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-request.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-request.md index ec7e3f8202..7156bc1a5f 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-request.md +++ b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-request.md @@ -1,7 +1,5 @@ # 上传下载子系统ChangeLog -OpenHarmony 3.2.8.1版本相较于OpenHarmony 3.2.beta3版本,request子系统的API变更如下 - ## cl.request.1 错误码定义及API部分接口名称变更 - 新增上传下载接口的[错误码](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/errorcodes/errorcode-request.md)处理。 diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-resource-manager.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-resource-manager.md similarity index 100% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-resource-manager.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-resource-manager.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.2/changelog-resourceschedule.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-resourceschedule.md similarity index 99% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.2/changelog-resourceschedule.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-resourceschedule.md index 6c12f40834..2434d2d229 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.2/changelog-resourceschedule.md +++ b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-resourceschedule.md @@ -1,316 +1,316 @@ -# 资源调度子系统ChangeLog - -## cl.resourceschedule.backgroundTaskManager -对资源调度子系统backgroundTaskManager仓原有接口进行整改,原有API8及之前的接口全部废弃,原有API9接口删除,需要使用新的API9接口。新的API9接口符合错误码规范。 - -**变更影响** - -基于OpenHarmony3.2.8.2及之后的SDK版本开发的应用,需适配API9的模块和接口,以及的API异常处理返回方式,否则会影响原有业务逻辑。 - -**关键接口/组件变更** - -以下方法、属性、枚举和常量均从API9变更。废弃@ohos.backgroundTaskManager.d.ts文件,新增@ohos.resourceschedule.backgroundTaskManager.d.ts文件,将相关接口变更至对应的文件。 - -| 类名 | 接口类型 | 接口声明 | 说明 | -| -- | -- | -- | -- | -| backgroundTaskManager | namespace | declare namespace backgroundTaskManager | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager | method | function resetAllEfficiencyResources(): void; | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager | method | function applyEfficiencyResources(request: EfficiencyResourcesRequest): bool; | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts,修改为function applyEfficiencyResources(request: EfficiencyResourcesRequest): void; | -| backgroundTaskManager | method | function stopBackgroundRunning(context: Context): Promise; | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager | method | function stopBackgroundRunning(context: Context, callback: AsyncCallback): void; | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager | method | function startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: WantAgent): Promise; | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager | method | function startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: WantAgent, callback: AsyncCallback): void; | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager | method | function requestSuspendDelay(reason: string, callback: Callback): DelaySuspendInfo; | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager | method | function getRemainingDelayTime(requestId: number): Promise; | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager | method | function getRemainingDelayTime(requestId: number, callback: AsyncCallback): void; | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager | method | function cancelSuspendDelay(requestId: number): void; | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.BackgroundMode | enum | export enum BackgroundMode | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.BackgroundMode | enum | DATA_TRANSFER = 1 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.BackgroundMode | enum | AUDIO_PLAYBACK = 2 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.BackgroundMode | enum | AUDIO_RECORDING = 3 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.BackgroundMode | enum | LOCATION = 4 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.BackgroundMode | enum | BLUETOOTH_INTERACTION = 5 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.BackgroundMode | enum | MULTI_DEVICE_CONNECTION = 6 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.BackgroundMode | enum | WIFI_INTERACTION = 7 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.BackgroundMode | enum | VOIP = 8 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.BackgroundMode | enum | TASK_KEEPING = 9 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.DelaySuspendInfo | interface | interface DelaySuspendInfo | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.DelaySuspendInfo | field | requestId: number | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.DelaySuspendInfo | field | actualDelayTime: number | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.ResourceType | enum | export enum ResourceType | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.ResourceType | enum | CPU = 1 | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.ResourceType | enum | COMMON_EVENT = 1 << 1 | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.ResourceType | enum | TIMER = 1 << 2 | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.ResourceType | enum | WORK_SCHEDULER = 1 << 3 | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.ResourceType | enum | BLUETOOTH = 1 << 4 | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.ResourceType | enum | GPS = 1 << 5 | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.ResourceType | enum | AUDIO = 1 << 6 | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.EfficiencyResourcesRequest | interface | export interface EfficiencyResourcesRequest | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.EfficiencyResourcesRequest | field | reason: string | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.EfficiencyResourcesRequest | field | isProcess?: bool | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.EfficiencyResourcesRequest | field | isPersist?: bool | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.EfficiencyResourcesRequest | field | timeOut: number | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.EfficiencyResourcesRequest | field | isApply: bool | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | -| backgroundTaskManager.EfficiencyResourcesRequest | field | resourceTypes: number | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | - - -**适配指导**
- -导入backgroundTaskManager模块。 -``` -import bundle form '@ohos.resourceschedule.backgroundTaskManager' -``` -此外还需要适配异常处理,具体参考[backgroundTaskManager接口文档](../../../application-dev/reference/apis/js-apis-resourceschedule-backgroundTaskManager.md)。 - -## c2.resourceschedule.usageStatistics -对资源调度子系统deviceUsageStatistics仓原有接口进行整改,原有API8及之前的接口全部废弃,原有API9接口删除,需要使用新的API9接口。新的API9接口符合错误码规范。 - -**变更影响** - -基于OpenHarmony3.2.8.2及之后的SDK版本开发的应用,需适配API9的模块和接口,以及的API异常处理返回方式,否则会影响原有业务逻辑。 - -**关键接口/组件变更** - -以下方法、属性、枚举和常量均从API9变更,废弃@ohos.bundleState.d.ts文件,新增@ohos.resourceschedule.usageStatistics.d.ts文件,类名也将从bundleState变更为usageStatistics。 - -| 类名 | 接口类型 | 方法/属性/枚举/常量 | 变更类型 | -| ----------------------------------------- | --------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| bundleState | method | function isIdleState(bundleName: string, callback: AsyncCallback): void; | 废弃,移动到usageStatistics.isIdleState | -| bundleState | method | function isIdleState(bundleName: string): Promise; | 废弃,移动到usageStatistics.isIdleState | -| bundleState | method | function queryAppUsagePriorityGroup(callback: AsyncCallback): void; | 废弃,修改为function queryAppGroup(callback: AsyncCallback): void; | -| bundleState | method | function queryAppUsagePriorityGroup(): Promise; | 废弃,修改为function queryAppGroup(): Promise; | -| bundleState | method | function queryBundleStateInfos(begin: number, end: number, callback: AsyncCallback): void; | 废弃,修改为function queryBundleStatsInfos(begin: number, end: number, callback: AsyncCallback): void; | -| bundleState | method | function queryBundleStateInfos(begin: number, end: number): Promise; | 废弃, 修改为function queryBundleStatsInfos(begin: number, end: number): Promise; | -| bundleState | method | function queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number): Promise>; | 废弃,修改为function queryBundleStatsInfoByInterval(byInterval: IntervalType, begin: number, end: number): Promise>; | -| bundleState | method | function queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number, callback: AsyncCallback>): void; | 废弃,修改为function queryBundleStatsInfoByInterval(byInterval: IntervalType, begin: number, end: number, callback: AsyncCallback>): void; | -| bundleState | method | function queryBundleActiveStates(begin: number, end: number): Promise>; | 废弃,修改为function queryBundleEvents(begin: number, end: number): Promise>; | -| bundleState | method | function queryBundleActiveStates(begin: number, end: number, callback: AsyncCallback>): void; | 废弃,修改为function queryBundleEvents(begin: number, end: number, callback: AsyncCallback>): void; | -| bundleState | method | function queryCurrentBundleActiveStates(begin: number, end: number): Promise>; | 废弃,修改为function queryCurrentBundleEvents(begin: number, end: number): Promise>; | -| bundleState | method | function queryCurrentBundleActiveStates(begin: number, end: number, callback: AsyncCallback>): void; | 废弃,修改为function queryCurrentBundleEvents(begin: number, end: number, callback: AsyncCallback>): void; | -| bundleState | method | function getRecentlyUsedModules(maxNum?: number): Promise>; | 废弃,修改为两个接口function QueryModuleUsageRecords(maxNum: number): Promise>; function QueryModuleUsageRecords(): Promise>; | -| bundleState | method | function getRecentlyUsedModules(maxNum?: number, callback: AsyncCallback>): void; | 废弃,修改为两个接口function QueryModuleUsageRecords(maxNum: number, callback: AsyncCallback>): void; function QueryModuleUsageRecords(callback: AsyncCallback>): void; | -| bundleState | method | function queryAppUsagePriorityGroup(bundleName? : string): Promise; | 废弃,修改为function queryAppGroup(bundleName: string): Promise; | -| bundleState | method | function queryAppUsagePriorityGroup(bundleName? : string, callback: AsyncCallback): void; | 废弃,修改为function queryAppGroup(bundleName: string, callback: AsyncCallback): void; | -| bundleState | method | function setBundleGroup(bundleName: string, newGroup: GroupType, callback: AsyncCallback): void; | 废弃,修改为function setAppGroup(bundleName: string, newGroup: GroupType, callback: AsyncCallback): void; | -| bundleState | method | function setBundleGroup(bundleName: string, newGroup: GroupType): Promise; | 废弃,修改为function setAppGroup(bundleName: string, newGroup: GroupType): Promise; | -| bundleState | method | function registerGroupCallBack(callback: Callback, callback: AsyncCallback): void; | 废弃,修改为function registerAppGroupCallBack(callback: Callback, callback: AsyncCallback): void; | -| bundleState | method | function registerGroupCallBack(callback: Callback): Promise; | 废弃,修改为function registerAppGroupCallBack(callback: Callback): Promise; | -| bundleState | method | function unRegisterGroupCallBack(callback: AsyncCallback): void; | 变更,修改为function unregisterAppGroupCallBack(): Promise; | -| bundleState | method | function unRegisterGroupCallBack(): Promise; | 变更,修改为function unregisterAppGroupCallBack(): Promise; | -| bundleState | method | function queryBundleActiveEventStates(begin: number, end: number, callback: AsyncCallback>): void; | 变更,修改为function queryDeviceEventStats(begin: number, end: number, callback: AsyncCallback>): void; | -| bundleState | method | function queryBundleActiveEventStates(begin: number, end: number): Promise>; | 接口从API9变更,修改为function queryDeviceEventStats(begin: number, end: number): Promise>; | -| bundleState | method | function queryAppNotificationNumber(begin: number, end: number, callback: AsyncCallback>): void; | 接口从API9变更,修改为function queryNotificationEventStats(begin: number, end: number, callback: AsyncCallback>): void; | -| bundleState | method | function queryAppNotificationNumber(begin: number, end: number): Promise>; | 接口从API9变更,修改为function queryNotificationEventStats(begin: number, end: number): Promise>; | -| bundleState.BundleActiveGroupCallbackInfo | interface | interface BundleActiveGroupCallbackInfo | 变更,修改为usageStatistics.AppGroupCallbackInfo | -| bundleState.BundleActiveGroupCallbackInfo | field | bundleName: string | 变更,移动到usageStatistics.AppGroupCallbackInfo | -| bundleState.BundleActiveGroupCallbackInfo | field | changeReason: number | 变更,移动到usageStatistics.AppGroupCallbackInfo | -| bundleState.BundleActiveGroupCallbackInfo | field | userId: number | 变更,移动到usageStatistics.AppGroupCallbackInfo | -| bundleState.BundleActiveGroupCallbackInfo | field | appUsageNewGroup: number | 废弃,修改为appNewGroup | -| bundleState.BundleActiveGroupCallbackInfo | field | appUsageOldGroup: number | 废弃,修改为appOldGroup | -| bundleState.BundleActiveEventState | interface | interface BundleActiveEventState | 废弃,修改为usageStatistics.DeviceEventStats | -| bundleState.BundleActiveEventState | field | count: number | 变更,移动到usageStatistics.DeviceEventStats | -| bundleState.BundleActiveEventState | field | eventId: number | 变更,移动到usageStatistics.DeviceEventStats | -| bundleState.BundleActiveEventState | field | name: string | 变更,移动到usageStatistics.DeviceEventStats | -| bundleState.BundleActiveModuleInfo | interface | interface BundleActiveModuleInfo | 接口从API9变更,修改为usageStatistics.HapModuleInfo | -| bundleState.BundleActiveModuleInfo | field | formRecords: Array | 变更,修改为formRecords: Array | -| bundleState.BundleActiveModuleInfo | field | lastModuleUsedTime: number | 变更,移动到usageStatistics.HapModuleInfo | -| bundleState.BundleActiveModuleInfo | field | launchedCount: number | 变更,移动到usageStatistics.HapModuleInfo | -| bundleState.BundleActiveModuleInfo | field | abilityIconId?: number | 变更,移动到usageStatistics.HapModuleInfo | -| bundleState.BundleActiveModuleInfo | field | abilityDescriptionId?: number | 变更,移动到usageStatistics.HapModuleInfo | -| bundleState.BundleActiveModuleInfo | field | abilityLableId?: number | 变更,移动到usageStatistics.HapModuleInfo | -| bundleState.BundleActiveModuleInfo | field | descriptionId?: number; | 变更,移动到usageStatistics.HapModuleInfo | -| bundleState.BundleActiveModuleInfo | field | labelId?: number | 变更,移动到usageStatistics.HapModuleInfo | -| bundleState.BundleActiveModuleInfo | field | appLabelId?: number | 变更,移动到usageStatistics.HapModuleInfo | -| bundleState.BundleActiveModuleInfo | field | abilityName?: string | 变更,移动到usageStatistics.HapModuleInfo | -| bundleState.BundleActiveModuleInfo | field | moduleName: string | 变更,移动到usageStatistics.HapModuleInfo | -| bundleState.BundleActiveModuleInfo | field | bundleName: string | 变更,移动到usageStatistics.HapModuleInfo | -| bundleState.BundleActiveModuleInfo | field | deviceId?: string | 变更,移动到usageStatistics.HapModuleInfo | -| bundleState.GroupType | enum | enum GroupType | 变更,移动到usageStatistics.GroupType | -| bundleState.GroupType | enum | ACTIVE_GROUP_ALIVE | 废弃,修改为ALIVE_GROUP | -| bundleState.GroupType | enum | ACTIVE_GROUP_DAILY | 废弃,修改为DAILY_GROUP | -| bundleState.GroupType | enum | ACTIVE_GROUP_FIXED | 废弃,修改为FIXED_GROUP | -| bundleState.GroupType | enum | ACTIVE_GROUP_RARE | 废弃,修改为RARE_GROUP | -| bundleState.GroupType | enum | ACTIVE_GROUP_LIMIT | 废弃,修改为LIMITED_GROUP | -| bundleState.GroupType | enum | ACTIVE_GROUP_NEVER | 废弃,修改为NEVER_GROUP | -| bundleState.IntervalType | enum | enum IntervalType | 废弃,移动到usageStatistics.IntervalType | -| bundleState.IntervalType | enum | BY_OPTIMIZED | 废弃,移动到usageStatistics.IntervalType | -| bundleState.IntervalType | enum | BY_DAILY | 废弃,移动到usageStatistics.IntervalType | -| bundleState.IntervalType | enum | BY_WEEKLY | 废弃,移动到usageStatistics.IntervalType | -| bundleState.IntervalType | enum | BY_MONTHLY | 废弃,移动到usageStatistics.IntervalType | -| bundleState.IntervalType | enum | BY_ANNUALLY | 废弃,移动到usageStatistics.IntervalType | -| bundleState.BundleActiveInfoResponse | interface | interface BundleActiveInfoResponse | 废弃,修改为usageStatistics.BundleStatsMap | -| bundleState.BundleActiveState | interface | interface BundleActiveState | 废弃,修改为usageStatistics.BundleEvents | -| bundleState.BundleActiveState | field | stateType?: number | 废弃,修改为eventId | -| bundleState.BundleActiveState | field | stateOccurredTime?: number | 废弃,修改为eventOccurredTime | -| bundleState.BundleActiveState | field | nameOfClass?: string | 废弃,移动到usageStatistics.BundleEvents | -| bundleState.BundleActiveState | field | indexOfLink?: string | 废弃,移动到usageStatistics.BundleEvents | -| bundleState.BundleActiveState | field | bundleName?: string | 废弃,移动到usageStatistics.BundleEvents | -| bundleState.BundleActiveState | field | appUsagePriorityGroup?: number | 废弃,修改为appGroup | -| bundleState.BundleStateInfo | interface | interface BundleStateInfo | 废弃,修改为usageStatistics.BundleStatsInfo | -| bundleState.BundleStateInfo | method | merge(toMerge: BundleStateInfo): void | 废弃 | -| bundleState.BundleStateInfo | field | infosEndTime?: number | 废弃,移动到usageStatistics.BundleStatsInfo | -| bundleState.BundleStateInfo | field | infosBeginTime?: number | 废弃,移动到usageStatistics.BundleStatsInfo | -| bundleState.BundleStateInfo | field | fgAbilityPrevAccessTime?: number | 废弃,移动到usageStatistics.BundleStatsInfo | -| bundleState.BundleStateInfo | field | fgAbilityAccessTotalTime?: number | 废弃,移动到usageStatistics.BundleStatsInfo | -| bundleState.BundleStateInfo | field | bundleName?: string | 废弃,移动到usageStatistics.BundleStatsInfo | -| bundleState.BundleStateInfo | field | abilitySeenTotalTime?: number | 废弃,移动到usageStatistics.BundleStatsInfo | -| bundleState.BundleStateInfo | field | abilityPrevSeenTime?: number | 废弃,移动到usageStatistics.BundleStatsInfo | -| bundleState.BundleStateInfo | field | abilityPrevAccessTime?: number | 废弃,移动到usageStatistics.BundleStatsInfo | -| bundleState.BundleStateInfo | field | abilityInFgTotalTime?: number | 废弃,移动到usageStatistics.BundleStatsInfo | -| bundleState.BundleStateInfo | field | id: number | 废弃,移动到usageStatistics.BundleStatsInfo | -| bundleState | namespace | declare namespace bundleState | 废弃,修改为usageStatistics,移植到ohos.resourceschedule.usageStatistics.d.ts | - - -**适配指导**
- -导入usageStatistics模块。 -``` -import bundle form '@ohos.resourceschedule.usageStatistics' -``` -此外还需要适配异常处理,具体参考[usageStatistics接口文档](../../../application-dev/reference/apis/js-apis-resourceschedule-deviceUsageStatistics.md)。 - - -## c3.resourceschedule.workScheduler -对资源调度子系统workScheduler仓原有接口进行整改,原有API9接口变更为新的API9接口。新的API9接口符合错误码规范。 - -**变更影响** - -基于OpenHarmony3.2.8.2及之后的SDK版本开发的应用,需适配API9的模块和接口,以及的API异常处理返回方式,否则会影响原有业务逻辑。 - -**关键接口/组件变更** - -以下方法、属性、枚举和常量均从API9变更。废弃@ohos.workScheduler.d.ts文件,新增@ohos.resourceschedule.workScheduler.d.ts文件,将相关接口变更至对应的文件中。 - -| 类名 | 接口类型 | 接口声明 | 变更类型 | -| -- | -- | -- | -- | -| workScheduler | namespace | declare namespace workScheduler | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | interface | export interface WorkInfo | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | parameters?: {[key: string]: any} | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | idleWaitTime?: number | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | isDeepIdle?: boolean | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | repeatCount?: number | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | isRepeat?: boolean | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | repeatCycleTime?: number | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | storageRequest?: StorageRequest | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | batteryStatus?: BatteryStatus | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | batteryLevel?: number | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | chargerType?: ChargingType | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | isCharging?: boolean | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | networkType?: NetworkType | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | isPersisted?: boolean | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | abilityName: string | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | bundleName: string | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.WorkInfo | field | workId: number | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler | method | function isLastWorkTimeOut(workId: number): Promise; | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler | method | function isLastWorkTimeOut(workId: number, callback: AsyncCallback): boolean; | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler | method | function stopAndClearWorks(): boolean; | 接口API8变更,移植到ohos.resourceschedule.workScheduler.d.ts,修改为function stopAndClearWorks(): boolean; | -| workScheduler | method | function obtainAllWorks(): Promise>; | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler | method | function obtainAllWorks(callback: AsyncCallback): Array; | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler | method | function getWorkStatus(workId: number): Promise; | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler | method | function getWorkStatus(workId: number, callback: AsyncCallback): void; | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler | method | function stopWork(work: WorkInfo, needCancel?: boolean): boolean; | 接口API8变更,移植到ohos.resourceschedule.workScheduler.d.ts,修改为function stopWork(work: WorkInfo, needCancel?: boolean): void; | -| workScheduler | method | function startWork(work: WorkInfo): boolean; | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts,修改为function startWork(work: WorkInfo): void; | -| workScheduler.NetworkType | enum | export enum NetworkType | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.NetworkType | enum | NETWORK_TYPE_ANY = 0 | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.NetworkType | enum | NETWORK_TYPE_MOBILE | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.NetworkType | enum | NETWORK_TYPE_WIFI | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.NetworkType | enum | NETWORK_TYPE_BLUETOOTH | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.NetworkType | enum | NETWORK_TYPE_WIFI_P2P | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.NetworkType | enum | NETWORK_TYPE_ETHERNET | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.ChargingType | enum | export enum ChargingType | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.ChargingType | enum | CHARGING_PLUGGED_ANY = 0 | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.ChargingType | enum | CHARGING_PLUGGED_AC | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.ChargingType | enum | CHARGING_PLUGGED_USB | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.ChargingType | enum | CHARGING_PLUGGED_WIRELESS | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.BatteryStatus | enum | export enum BatteryStatus | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.BatteryStatus | enum | BATTERY_STATUS_LOW = 0 | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.BatteryStatus | enum | BATTERY_STATUS_OKAY | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.BatteryStatus | enum | BATTERY_STATUS_LOW_OR_OKAY | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.StorageRequest | enum | export enum StorageRequest | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.BatteryStatus | enum | STORAGE_LEVEL_LOW = 0 | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.BatteryStatus | enum | STORAGE_LEVEL_OKAY | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | -| workScheduler.BatteryStatus | enum | STORAGE_LEVEL_LOW_OR_OKAY | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | - - -**适配指导**
- -导入workScheduler模块。 -``` -import bundle form '@ohos.resourceschedule.workScheduler' -``` -此外还需要适配异常处理,具体参考[workScheduler接口文档](../../../application-dev/reference/apis/js-apis-resourceschedule-workScheduler.md)。 - - -## c4.resourceschedule.reminderAgent -对资源调度子系统提醒代理原有接口进行整改,原有API8及之前的接口全部废弃,原有API9接口删除,需要使用新的API9接口。新的API9接口符合错误码规范。 - -**变更影响** - -基于OpenHarmony3.2.8.2及之后的SDK版本开发的应用,需适配API9的模块和接口,以及的API异常处理返回方式,否则会影响原有业务逻辑。 - -**关键接口/组件变更** - -以下方法、属性、枚举和常量均从API9变更,废弃@ohos.reminderAgent.d.ts文件,新增@ohos.reminderAgentManager.d.ts文件,类名也将从reminderAgent变更为reminderAgentManager。 - -| 类名 | 接口类型 | 方法/属性/枚举/常量 | 变更类型 | -| --------------------- | ----------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| reminderAgent | method | publishReminder(reminderReq: ReminderRequest, callback: AsyncCallback): void; | 废弃,移动到reminderAgentManager | -| reminderAgent | method | publishReminder(reminderReq: ReminderRequest): Promise; | 废弃,移动到reminderAgentManager | -| reminderAgent | method | cancelReminder(reminderId: number, callback: AsyncCallback): void; | 废弃,移动到reminderAgentManager | -| reminderAgent | method | cancelReminder(reminderId: number): Promise; | 废弃,移动到reminderAgentManager | -| reminderAgent | method | getValidReminders(callback: AsyncCallback>): void; | 废弃,移动到reminderAgentManager | -| reminderAgent | method | getValidReminders(): Promise>; | 废弃,移动到reminderAgentManager | -| reminderAgent | method | cancelAllReminders(callback: AsyncCallback): void; | 废弃,移动到reminderAgentManager | -| reminderAgent | method | cancelAllReminders(): Promise; | 废弃,移动到reminderAgentManager | -| reminderAgent | method | addNotificationSlot(slot: NotificationSlot, callback: AsyncCallback): void; | 废弃,移动到reminderAgentManager | -| reminderAgent | method | addNotificationSlot(slot: NotificationSlot): Promise; | 废弃,移动到reminderAgentManager | -| reminderAgent | method | removeNotificationSlot(slotType: notification.SlotType, callback: AsyncCallback): void; | 废弃,移动到reminderAgentManager | -| reminderAgent | method | removeNotificationSlot(slotType: notification.SlotType): Promise; | 废弃,移动到reminderAgentManager | -| reminderAgent.ActionButtonType | enum | ACTION_BUTTON_TYPE_CLOSE | 废弃,移动到reminderAgentManager.ActionButtonType | -| reminderAgent.ActionButtonType | enum | ACTION_BUTTON_TYPE_SNOOZE | 废弃,移动到reminderAgentManager.ActionButtonType | -| reminderAgent.ReminderType | enum | REMINDER_TYPE_TIMER | 废弃,移动到reminderAgentManager.ReminderType | -| reminderAgent.ReminderType | enum | REMINDER_TYPE_CALENDAR | 废弃,移动到reminderAgentManager.ReminderType | -| reminderAgent.ReminderType | enum | REMINDER_TYPE_CALENDAR | 废弃,移动到reminderAgentManager.ReminderType | -| reminderAgent.ActionButton | field | title:string | 废弃,移动到reminderAgentManager.ActionButton | -| reminderAgent.ActionButton | field | type:ActionButtonType | 废弃,移动到reminderAgentManager.ActionButton | -| reminderAgent.WantAgent | field | pkgName:string | 废弃,移动到reminderAgentManager.WantAgent | -| reminderAgent.WantAgent | field | abilityName:string | 废弃,移动到reminderAgentManager.WantAgent | -| reminderAgent.MaxScreenWantAgent | field | pkgName:string | 废弃,移动到reminderAgentManager.MaxScreenWantAgent | -| reminderAgent.MaxScreenWantAgent | field | abilityName:string | 废弃,移动到reminderAgentManager.MaxScreenWantAgent | -| reminderAgent.ReminderRequest | field | reminderType:ReminderType | 废弃,移动到reminderAgentManager.ReminderRequest | -| reminderAgent.ReminderRequest | field | actionButton?:ActionButton | 废弃,移动到reminderAgentManager.ReminderRequest | -| reminderAgent.ReminderRequest | field | wantAgent?:WantAgent | 废弃,移动到reminderAgentManager.ReminderRequest | -| reminderAgent.ReminderRequest | field | maxScreenWantAgent?:MaxScreenWantAgent | 废弃,移动到reminderAgentManager.ReminderRequest | -| reminderAgent.ReminderRequest | field | ringDuration?:number | 废弃,移动到reminderAgentManager.ReminderRequest | -| reminderAgent.ReminderRequest | field | snoozeTimes?:number | 废弃,移动到reminderAgentManager.ReminderRequest | -| reminderAgent.ReminderRequest | field | timeInterval?:number | 废弃,移动到reminderAgentManager.ReminderRequest | -| reminderAgent.ReminderRequest | field | title?:string | 废弃,移动到reminderAgentManager.ReminderRequest | -| reminderAgent.ReminderRequest | field | content?:string | 废弃,移动到reminderAgentManager.ReminderRequest | -| reminderAgent.ReminderRequest | field | expiredContent?:string | 废弃,移动到reminderAgentManager.ReminderRequest | -| reminderAgent.ReminderRequest | field | snoozeContent?:string | 废弃,移动到reminderAgentManager.ReminderRequest | -| reminderAgent.ReminderRequest | field | notificationId?:number | 废弃,移动到reminderAgentManager.ReminderRequest | -| reminderAgent.ReminderRequest | field | slotType?: notification.SlotType | 废弃,移动到reminderAgentManager.ReminderRequest | -| reminderAgent.ReminderRequestCalendar | field | dateTime:LocalDateTime | 废弃,移动到reminderAgentManager.ReminderRequestCalendar | -| reminderAgent.ReminderRequestCalendar | field | repeatMonths?:Array | 废弃,移动到reminderAgentManager.ReminderRequestCalendar | -| reminderAgent.ReminderRequestCalendar | field | repeatDays?:Array | 废弃,移动到reminderAgentManager.ReminderRequestCalendar | -| reminderAgent.ReminderRequestAlarm | field | hour:number | 废弃,移动到reminderAgentManager.ReminderRequestAlarm | -| reminderAgent.ReminderRequestAlarm | field | minute:number | 废弃,移动到reminderAgentManager.ReminderRequestAlarm | -| reminderAgent.ReminderRequestAlarm | field | daysOfWeek?:Array | 废弃,移动到reminderAgentManager.ReminderRequestAlarm | -| reminderAgent.ReminderRequestTimer | field | triggerTimeInSeconds:number | 废弃,移动到reminderAgentManager.ReminderRequestTimer | -| reminderAgent.LocalDateTime | field | year:number | 废弃,移动到reminderAgentManager.LocalDateTime | -| reminderAgent.LocalDateTime | field | month:number | 废弃,移动到reminderAgentManager.LocalDateTime | -| reminderAgent.LocalDateTime | field | day:number | 废弃,移动到reminderAgentManager.LocalDateTime | -| reminderAgent.LocalDateTime | field | hour:number | 废弃,移动到reminderAgentManager.LocalDateTime | -| reminderAgent.LocalDateTime | field | minute:number | 废弃,移动到reminderAgentManager.LocalDateTime | -| reminderAgent.LocalDateTime | field | second?:number | 废弃,移动到reminderAgentManager.LocalDateTime | - - -**适配指导**
- -导入reminderAgentManager模块。 -``` -import bundle form '@ohos.reminderAgentManager' -``` -此外还需要适配异常处理,具体参考[reminderAgentManager接口文档](../../../application-dev/reference/apis/js-apis-reminderAgentManager.md)。 - - +# 资源调度子系统ChangeLog + +## cl.resourceschedule.backgroundTaskManager +对资源调度子系统backgroundTaskManager仓原有接口进行整改,原有API8及之前的接口全部废弃,原有API9接口删除,需要使用新的API9接口。新的API9接口符合错误码规范。 + +**变更影响** + +基于OpenHarmony3.2.8.2及之后的SDK版本开发的应用,需适配API9的模块和接口,以及的API异常处理返回方式,否则会影响原有业务逻辑。 + +**关键接口/组件变更** + +以下方法、属性、枚举和常量均从API9变更。废弃@ohos.backgroundTaskManager.d.ts文件,新增@ohos.resourceschedule.backgroundTaskManager.d.ts文件,将相关接口变更至对应的文件。 + +| 类名 | 接口类型 | 接口声明 | 说明 | +| -- | -- | -- | -- | +| backgroundTaskManager | namespace | declare namespace backgroundTaskManager | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager | method | function resetAllEfficiencyResources(): void; | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager | method | function applyEfficiencyResources(request: EfficiencyResourcesRequest): bool; | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts,修改为function applyEfficiencyResources(request: EfficiencyResourcesRequest): void; | +| backgroundTaskManager | method | function stopBackgroundRunning(context: Context): Promise; | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager | method | function stopBackgroundRunning(context: Context, callback: AsyncCallback): void; | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager | method | function startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: WantAgent): Promise; | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager | method | function startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: WantAgent, callback: AsyncCallback): void; | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager | method | function requestSuspendDelay(reason: string, callback: Callback): DelaySuspendInfo; | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager | method | function getRemainingDelayTime(requestId: number): Promise; | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager | method | function getRemainingDelayTime(requestId: number, callback: AsyncCallback): void; | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager | method | function cancelSuspendDelay(requestId: number): void; | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.BackgroundMode | enum | export enum BackgroundMode | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.BackgroundMode | enum | DATA_TRANSFER = 1 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.BackgroundMode | enum | AUDIO_PLAYBACK = 2 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.BackgroundMode | enum | AUDIO_RECORDING = 3 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.BackgroundMode | enum | LOCATION = 4 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.BackgroundMode | enum | BLUETOOTH_INTERACTION = 5 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.BackgroundMode | enum | MULTI_DEVICE_CONNECTION = 6 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.BackgroundMode | enum | WIFI_INTERACTION = 7 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.BackgroundMode | enum | VOIP = 8 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.BackgroundMode | enum | TASK_KEEPING = 9 | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.DelaySuspendInfo | interface | interface DelaySuspendInfo | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.DelaySuspendInfo | field | requestId: number | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.DelaySuspendInfo | field | actualDelayTime: number | 接口从API9开始废弃,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.ResourceType | enum | export enum ResourceType | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.ResourceType | enum | CPU = 1 | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.ResourceType | enum | COMMON_EVENT = 1 << 1 | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.ResourceType | enum | TIMER = 1 << 2 | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.ResourceType | enum | WORK_SCHEDULER = 1 << 3 | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.ResourceType | enum | BLUETOOTH = 1 << 4 | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.ResourceType | enum | GPS = 1 << 5 | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.ResourceType | enum | AUDIO = 1 << 6 | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.EfficiencyResourcesRequest | interface | export interface EfficiencyResourcesRequest | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.EfficiencyResourcesRequest | field | reason: string | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.EfficiencyResourcesRequest | field | isProcess?: bool | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.EfficiencyResourcesRequest | field | isPersist?: bool | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.EfficiencyResourcesRequest | field | timeOut: number | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.EfficiencyResourcesRequest | field | isApply: bool | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | +| backgroundTaskManager.EfficiencyResourcesRequest | field | resourceTypes: number | 接口API9变更,移植到ohos.resourceschedule.backgroundTaskManager.d.ts | + + +**适配指导**
+ +导入backgroundTaskManager模块。 +``` +import bundle form '@ohos.resourceschedule.backgroundTaskManager' +``` +此外还需要适配异常处理,具体参考[backgroundTaskManager接口文档](../../../application-dev/reference/apis/js-apis-resourceschedule-backgroundTaskManager.md)。 + +## c2.resourceschedule.usageStatistics +对资源调度子系统deviceUsageStatistics仓原有接口进行整改,原有API8及之前的接口全部废弃,原有API9接口删除,需要使用新的API9接口。新的API9接口符合错误码规范。 + +**变更影响** + +基于OpenHarmony3.2.8.2及之后的SDK版本开发的应用,需适配API9的模块和接口,以及的API异常处理返回方式,否则会影响原有业务逻辑。 + +**关键接口/组件变更** + +以下方法、属性、枚举和常量均从API9变更,废弃@ohos.bundleState.d.ts文件,新增@ohos.resourceschedule.usageStatistics.d.ts文件,类名也将从bundleState变更为usageStatistics。 + +| 类名 | 接口类型 | 方法/属性/枚举/常量 | 变更类型 | +| ----------------------------------------- | --------- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| bundleState | method | function isIdleState(bundleName: string, callback: AsyncCallback): void; | 废弃,移动到usageStatistics.isIdleState | +| bundleState | method | function isIdleState(bundleName: string): Promise; | 废弃,移动到usageStatistics.isIdleState | +| bundleState | method | function queryAppUsagePriorityGroup(callback: AsyncCallback): void; | 废弃,修改为function queryAppGroup(callback: AsyncCallback): void; | +| bundleState | method | function queryAppUsagePriorityGroup(): Promise; | 废弃,修改为function queryAppGroup(): Promise; | +| bundleState | method | function queryBundleStateInfos(begin: number, end: number, callback: AsyncCallback): void; | 废弃,修改为function queryBundleStatsInfos(begin: number, end: number, callback: AsyncCallback): void; | +| bundleState | method | function queryBundleStateInfos(begin: number, end: number): Promise; | 废弃, 修改为function queryBundleStatsInfos(begin: number, end: number): Promise; | +| bundleState | method | function queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number): Promise>; | 废弃,修改为function queryBundleStatsInfoByInterval(byInterval: IntervalType, begin: number, end: number): Promise>; | +| bundleState | method | function queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number, callback: AsyncCallback>): void; | 废弃,修改为function queryBundleStatsInfoByInterval(byInterval: IntervalType, begin: number, end: number, callback: AsyncCallback>): void; | +| bundleState | method | function queryBundleActiveStates(begin: number, end: number): Promise>; | 废弃,修改为function queryBundleEvents(begin: number, end: number): Promise>; | +| bundleState | method | function queryBundleActiveStates(begin: number, end: number, callback: AsyncCallback>): void; | 废弃,修改为function queryBundleEvents(begin: number, end: number, callback: AsyncCallback>): void; | +| bundleState | method | function queryCurrentBundleActiveStates(begin: number, end: number): Promise>; | 废弃,修改为function queryCurrentBundleEvents(begin: number, end: number): Promise>; | +| bundleState | method | function queryCurrentBundleActiveStates(begin: number, end: number, callback: AsyncCallback>): void; | 废弃,修改为function queryCurrentBundleEvents(begin: number, end: number, callback: AsyncCallback>): void; | +| bundleState | method | function getRecentlyUsedModules(maxNum?: number): Promise>; | 废弃,修改为两个接口function QueryModuleUsageRecords(maxNum: number): Promise>; function QueryModuleUsageRecords(): Promise>; | +| bundleState | method | function getRecentlyUsedModules(maxNum?: number, callback: AsyncCallback>): void; | 废弃,修改为两个接口function QueryModuleUsageRecords(maxNum: number, callback: AsyncCallback>): void; function QueryModuleUsageRecords(callback: AsyncCallback>): void; | +| bundleState | method | function queryAppUsagePriorityGroup(bundleName? : string): Promise; | 废弃,修改为function queryAppGroup(bundleName: string): Promise; | +| bundleState | method | function queryAppUsagePriorityGroup(bundleName? : string, callback: AsyncCallback): void; | 废弃,修改为function queryAppGroup(bundleName: string, callback: AsyncCallback): void; | +| bundleState | method | function setBundleGroup(bundleName: string, newGroup: GroupType, callback: AsyncCallback): void; | 废弃,修改为function setAppGroup(bundleName: string, newGroup: GroupType, callback: AsyncCallback): void; | +| bundleState | method | function setBundleGroup(bundleName: string, newGroup: GroupType): Promise; | 废弃,修改为function setAppGroup(bundleName: string, newGroup: GroupType): Promise; | +| bundleState | method | function registerGroupCallBack(callback: Callback, callback: AsyncCallback): void; | 废弃,修改为function registerAppGroupCallBack(callback: Callback, callback: AsyncCallback): void; | +| bundleState | method | function registerGroupCallBack(callback: Callback): Promise; | 废弃,修改为function registerAppGroupCallBack(callback: Callback): Promise; | +| bundleState | method | function unRegisterGroupCallBack(callback: AsyncCallback): void; | 变更,修改为function unregisterAppGroupCallBack(): Promise; | +| bundleState | method | function unRegisterGroupCallBack(): Promise; | 变更,修改为function unregisterAppGroupCallBack(): Promise; | +| bundleState | method | function queryBundleActiveEventStates(begin: number, end: number, callback: AsyncCallback>): void; | 变更,修改为function queryDeviceEventStats(begin: number, end: number, callback: AsyncCallback>): void; | +| bundleState | method | function queryBundleActiveEventStates(begin: number, end: number): Promise>; | 接口从API9变更,修改为function queryDeviceEventStats(begin: number, end: number): Promise>; | +| bundleState | method | function queryAppNotificationNumber(begin: number, end: number, callback: AsyncCallback>): void; | 接口从API9变更,修改为function queryNotificationEventStats(begin: number, end: number, callback: AsyncCallback>): void; | +| bundleState | method | function queryAppNotificationNumber(begin: number, end: number): Promise>; | 接口从API9变更,修改为function queryNotificationEventStats(begin: number, end: number): Promise>; | +| bundleState.BundleActiveGroupCallbackInfo | interface | interface BundleActiveGroupCallbackInfo | 变更,修改为usageStatistics.AppGroupCallbackInfo | +| bundleState.BundleActiveGroupCallbackInfo | field | bundleName: string | 变更,移动到usageStatistics.AppGroupCallbackInfo | +| bundleState.BundleActiveGroupCallbackInfo | field | changeReason: number | 变更,移动到usageStatistics.AppGroupCallbackInfo | +| bundleState.BundleActiveGroupCallbackInfo | field | userId: number | 变更,移动到usageStatistics.AppGroupCallbackInfo | +| bundleState.BundleActiveGroupCallbackInfo | field | appUsageNewGroup: number | 废弃,修改为appNewGroup | +| bundleState.BundleActiveGroupCallbackInfo | field | appUsageOldGroup: number | 废弃,修改为appOldGroup | +| bundleState.BundleActiveEventState | interface | interface BundleActiveEventState | 废弃,修改为usageStatistics.DeviceEventStats | +| bundleState.BundleActiveEventState | field | count: number | 变更,移动到usageStatistics.DeviceEventStats | +| bundleState.BundleActiveEventState | field | eventId: number | 变更,移动到usageStatistics.DeviceEventStats | +| bundleState.BundleActiveEventState | field | name: string | 变更,移动到usageStatistics.DeviceEventStats | +| bundleState.BundleActiveModuleInfo | interface | interface BundleActiveModuleInfo | 接口从API9变更,修改为usageStatistics.HapModuleInfo | +| bundleState.BundleActiveModuleInfo | field | formRecords: Array | 变更,修改为formRecords: Array | +| bundleState.BundleActiveModuleInfo | field | lastModuleUsedTime: number | 变更,移动到usageStatistics.HapModuleInfo | +| bundleState.BundleActiveModuleInfo | field | launchedCount: number | 变更,移动到usageStatistics.HapModuleInfo | +| bundleState.BundleActiveModuleInfo | field | abilityIconId?: number | 变更,移动到usageStatistics.HapModuleInfo | +| bundleState.BundleActiveModuleInfo | field | abilityDescriptionId?: number | 变更,移动到usageStatistics.HapModuleInfo | +| bundleState.BundleActiveModuleInfo | field | abilityLableId?: number | 变更,移动到usageStatistics.HapModuleInfo | +| bundleState.BundleActiveModuleInfo | field | descriptionId?: number; | 变更,移动到usageStatistics.HapModuleInfo | +| bundleState.BundleActiveModuleInfo | field | labelId?: number | 变更,移动到usageStatistics.HapModuleInfo | +| bundleState.BundleActiveModuleInfo | field | appLabelId?: number | 变更,移动到usageStatistics.HapModuleInfo | +| bundleState.BundleActiveModuleInfo | field | abilityName?: string | 变更,移动到usageStatistics.HapModuleInfo | +| bundleState.BundleActiveModuleInfo | field | moduleName: string | 变更,移动到usageStatistics.HapModuleInfo | +| bundleState.BundleActiveModuleInfo | field | bundleName: string | 变更,移动到usageStatistics.HapModuleInfo | +| bundleState.BundleActiveModuleInfo | field | deviceId?: string | 变更,移动到usageStatistics.HapModuleInfo | +| bundleState.GroupType | enum | enum GroupType | 变更,移动到usageStatistics.GroupType | +| bundleState.GroupType | enum | ACTIVE_GROUP_ALIVE | 废弃,修改为ALIVE_GROUP | +| bundleState.GroupType | enum | ACTIVE_GROUP_DAILY | 废弃,修改为DAILY_GROUP | +| bundleState.GroupType | enum | ACTIVE_GROUP_FIXED | 废弃,修改为FIXED_GROUP | +| bundleState.GroupType | enum | ACTIVE_GROUP_RARE | 废弃,修改为RARE_GROUP | +| bundleState.GroupType | enum | ACTIVE_GROUP_LIMIT | 废弃,修改为LIMITED_GROUP | +| bundleState.GroupType | enum | ACTIVE_GROUP_NEVER | 废弃,修改为NEVER_GROUP | +| bundleState.IntervalType | enum | enum IntervalType | 废弃,移动到usageStatistics.IntervalType | +| bundleState.IntervalType | enum | BY_OPTIMIZED | 废弃,移动到usageStatistics.IntervalType | +| bundleState.IntervalType | enum | BY_DAILY | 废弃,移动到usageStatistics.IntervalType | +| bundleState.IntervalType | enum | BY_WEEKLY | 废弃,移动到usageStatistics.IntervalType | +| bundleState.IntervalType | enum | BY_MONTHLY | 废弃,移动到usageStatistics.IntervalType | +| bundleState.IntervalType | enum | BY_ANNUALLY | 废弃,移动到usageStatistics.IntervalType | +| bundleState.BundleActiveInfoResponse | interface | interface BundleActiveInfoResponse | 废弃,修改为usageStatistics.BundleStatsMap | +| bundleState.BundleActiveState | interface | interface BundleActiveState | 废弃,修改为usageStatistics.BundleEvents | +| bundleState.BundleActiveState | field | stateType?: number | 废弃,修改为eventId | +| bundleState.BundleActiveState | field | stateOccurredTime?: number | 废弃,修改为eventOccurredTime | +| bundleState.BundleActiveState | field | nameOfClass?: string | 废弃,移动到usageStatistics.BundleEvents | +| bundleState.BundleActiveState | field | indexOfLink?: string | 废弃,移动到usageStatistics.BundleEvents | +| bundleState.BundleActiveState | field | bundleName?: string | 废弃,移动到usageStatistics.BundleEvents | +| bundleState.BundleActiveState | field | appUsagePriorityGroup?: number | 废弃,修改为appGroup | +| bundleState.BundleStateInfo | interface | interface BundleStateInfo | 废弃,修改为usageStatistics.BundleStatsInfo | +| bundleState.BundleStateInfo | method | merge(toMerge: BundleStateInfo): void | 废弃 | +| bundleState.BundleStateInfo | field | infosEndTime?: number | 废弃,移动到usageStatistics.BundleStatsInfo | +| bundleState.BundleStateInfo | field | infosBeginTime?: number | 废弃,移动到usageStatistics.BundleStatsInfo | +| bundleState.BundleStateInfo | field | fgAbilityPrevAccessTime?: number | 废弃,移动到usageStatistics.BundleStatsInfo | +| bundleState.BundleStateInfo | field | fgAbilityAccessTotalTime?: number | 废弃,移动到usageStatistics.BundleStatsInfo | +| bundleState.BundleStateInfo | field | bundleName?: string | 废弃,移动到usageStatistics.BundleStatsInfo | +| bundleState.BundleStateInfo | field | abilitySeenTotalTime?: number | 废弃,移动到usageStatistics.BundleStatsInfo | +| bundleState.BundleStateInfo | field | abilityPrevSeenTime?: number | 废弃,移动到usageStatistics.BundleStatsInfo | +| bundleState.BundleStateInfo | field | abilityPrevAccessTime?: number | 废弃,移动到usageStatistics.BundleStatsInfo | +| bundleState.BundleStateInfo | field | abilityInFgTotalTime?: number | 废弃,移动到usageStatistics.BundleStatsInfo | +| bundleState.BundleStateInfo | field | id: number | 废弃,移动到usageStatistics.BundleStatsInfo | +| bundleState | namespace | declare namespace bundleState | 废弃,修改为usageStatistics,移植到ohos.resourceschedule.usageStatistics.d.ts | + + +**适配指导**
+ +导入usageStatistics模块。 +``` +import bundle form '@ohos.resourceschedule.usageStatistics' +``` +此外还需要适配异常处理,具体参考[usageStatistics接口文档](../../../application-dev/reference/apis/js-apis-resourceschedule-deviceUsageStatistics.md)。 + + +## c3.resourceschedule.workScheduler +对资源调度子系统workScheduler仓原有接口进行整改,原有API9接口变更为新的API9接口。新的API9接口符合错误码规范。 + +**变更影响** + +基于OpenHarmony3.2.8.2及之后的SDK版本开发的应用,需适配API9的模块和接口,以及的API异常处理返回方式,否则会影响原有业务逻辑。 + +**关键接口/组件变更** + +以下方法、属性、枚举和常量均从API9变更。废弃@ohos.workScheduler.d.ts文件,新增@ohos.resourceschedule.workScheduler.d.ts文件,将相关接口变更至对应的文件中。 + +| 类名 | 接口类型 | 接口声明 | 变更类型 | +| -- | -- | -- | -- | +| workScheduler | namespace | declare namespace workScheduler | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | interface | export interface WorkInfo | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | field | parameters?: {[key: string]: any} | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | field | idleWaitTime?: number | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | field | isDeepIdle?: boolean | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | field | repeatCount?: number | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | field | isRepeat?: boolean | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | field | repeatCycleTime?: number | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | field | storageRequest?: StorageRequest | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | field | batteryStatus?: BatteryStatus | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | field | batteryLevel?: number | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | field | chargerType?: ChargingType | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | field | isCharging?: boolean | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | field | networkType?: NetworkType | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | field | isPersisted?: boolean | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | field | abilityName: string | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | field | bundleName: string | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.WorkInfo | field | workId: number | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler | method | function isLastWorkTimeOut(workId: number): Promise; | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler | method | function isLastWorkTimeOut(workId: number, callback: AsyncCallback): boolean; | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler | method | function stopAndClearWorks(): boolean; | 接口API8变更,移植到ohos.resourceschedule.workScheduler.d.ts,修改为function stopAndClearWorks(): boolean; | +| workScheduler | method | function obtainAllWorks(): Promise>; | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler | method | function obtainAllWorks(callback: AsyncCallback): Array; | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler | method | function getWorkStatus(workId: number): Promise; | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler | method | function getWorkStatus(workId: number, callback: AsyncCallback): void; | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler | method | function stopWork(work: WorkInfo, needCancel?: boolean): boolean; | 接口API8变更,移植到ohos.resourceschedule.workScheduler.d.ts,修改为function stopWork(work: WorkInfo, needCancel?: boolean): void; | +| workScheduler | method | function startWork(work: WorkInfo): boolean; | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts,修改为function startWork(work: WorkInfo): void; | +| workScheduler.NetworkType | enum | export enum NetworkType | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.NetworkType | enum | NETWORK_TYPE_ANY = 0 | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.NetworkType | enum | NETWORK_TYPE_MOBILE | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.NetworkType | enum | NETWORK_TYPE_WIFI | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.NetworkType | enum | NETWORK_TYPE_BLUETOOTH | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.NetworkType | enum | NETWORK_TYPE_WIFI_P2P | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.NetworkType | enum | NETWORK_TYPE_ETHERNET | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.ChargingType | enum | export enum ChargingType | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.ChargingType | enum | CHARGING_PLUGGED_ANY = 0 | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.ChargingType | enum | CHARGING_PLUGGED_AC | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.ChargingType | enum | CHARGING_PLUGGED_USB | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.ChargingType | enum | CHARGING_PLUGGED_WIRELESS | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.BatteryStatus | enum | export enum BatteryStatus | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.BatteryStatus | enum | BATTERY_STATUS_LOW = 0 | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.BatteryStatus | enum | BATTERY_STATUS_OKAY | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.BatteryStatus | enum | BATTERY_STATUS_LOW_OR_OKAY | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.StorageRequest | enum | export enum StorageRequest | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.BatteryStatus | enum | STORAGE_LEVEL_LOW = 0 | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.BatteryStatus | enum | STORAGE_LEVEL_OKAY | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | +| workScheduler.BatteryStatus | enum | STORAGE_LEVEL_LOW_OR_OKAY | 接口API9变更,移植到ohos.resourceschedule.workScheduler.d.ts | + + +**适配指导**
+ +导入workScheduler模块。 +``` +import bundle form '@ohos.resourceschedule.workScheduler' +``` +此外还需要适配异常处理,具体参考[workScheduler接口文档](../../../application-dev/reference/apis/js-apis-resourceschedule-workScheduler.md)。 + + +## c4.resourceschedule.reminderAgent +对资源调度子系统提醒代理原有接口进行整改,原有API8及之前的接口全部废弃,原有API9接口删除,需要使用新的API9接口。新的API9接口符合错误码规范。 + +**变更影响** + +基于OpenHarmony3.2.8.2及之后的SDK版本开发的应用,需适配API9的模块和接口,以及的API异常处理返回方式,否则会影响原有业务逻辑。 + +**关键接口/组件变更** + +以下方法、属性、枚举和常量均从API9变更,废弃@ohos.reminderAgent.d.ts文件,新增@ohos.reminderAgentManager.d.ts文件,类名也将从reminderAgent变更为reminderAgentManager。 + +| 类名 | 接口类型 | 方法/属性/枚举/常量 | 变更类型 | +| --------------------- | ----------- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| reminderAgent | method | publishReminder(reminderReq: ReminderRequest, callback: AsyncCallback): void; | 废弃,移动到reminderAgentManager | +| reminderAgent | method | publishReminder(reminderReq: ReminderRequest): Promise; | 废弃,移动到reminderAgentManager | +| reminderAgent | method | cancelReminder(reminderId: number, callback: AsyncCallback): void; | 废弃,移动到reminderAgentManager | +| reminderAgent | method | cancelReminder(reminderId: number): Promise; | 废弃,移动到reminderAgentManager | +| reminderAgent | method | getValidReminders(callback: AsyncCallback>): void; | 废弃,移动到reminderAgentManager | +| reminderAgent | method | getValidReminders(): Promise>; | 废弃,移动到reminderAgentManager | +| reminderAgent | method | cancelAllReminders(callback: AsyncCallback): void; | 废弃,移动到reminderAgentManager | +| reminderAgent | method | cancelAllReminders(): Promise; | 废弃,移动到reminderAgentManager | +| reminderAgent | method | addNotificationSlot(slot: NotificationSlot, callback: AsyncCallback): void; | 废弃,移动到reminderAgentManager | +| reminderAgent | method | addNotificationSlot(slot: NotificationSlot): Promise; | 废弃,移动到reminderAgentManager | +| reminderAgent | method | removeNotificationSlot(slotType: notification.SlotType, callback: AsyncCallback): void; | 废弃,移动到reminderAgentManager | +| reminderAgent | method | removeNotificationSlot(slotType: notification.SlotType): Promise; | 废弃,移动到reminderAgentManager | +| reminderAgent.ActionButtonType | enum | ACTION_BUTTON_TYPE_CLOSE | 废弃,移动到reminderAgentManager.ActionButtonType | +| reminderAgent.ActionButtonType | enum | ACTION_BUTTON_TYPE_SNOOZE | 废弃,移动到reminderAgentManager.ActionButtonType | +| reminderAgent.ReminderType | enum | REMINDER_TYPE_TIMER | 废弃,移动到reminderAgentManager.ReminderType | +| reminderAgent.ReminderType | enum | REMINDER_TYPE_CALENDAR | 废弃,移动到reminderAgentManager.ReminderType | +| reminderAgent.ReminderType | enum | REMINDER_TYPE_CALENDAR | 废弃,移动到reminderAgentManager.ReminderType | +| reminderAgent.ActionButton | field | title:string | 废弃,移动到reminderAgentManager.ActionButton | +| reminderAgent.ActionButton | field | type:ActionButtonType | 废弃,移动到reminderAgentManager.ActionButton | +| reminderAgent.WantAgent | field | pkgName:string | 废弃,移动到reminderAgentManager.WantAgent | +| reminderAgent.WantAgent | field | abilityName:string | 废弃,移动到reminderAgentManager.WantAgent | +| reminderAgent.MaxScreenWantAgent | field | pkgName:string | 废弃,移动到reminderAgentManager.MaxScreenWantAgent | +| reminderAgent.MaxScreenWantAgent | field | abilityName:string | 废弃,移动到reminderAgentManager.MaxScreenWantAgent | +| reminderAgent.ReminderRequest | field | reminderType:ReminderType | 废弃,移动到reminderAgentManager.ReminderRequest | +| reminderAgent.ReminderRequest | field | actionButton?:ActionButton | 废弃,移动到reminderAgentManager.ReminderRequest | +| reminderAgent.ReminderRequest | field | wantAgent?:WantAgent | 废弃,移动到reminderAgentManager.ReminderRequest | +| reminderAgent.ReminderRequest | field | maxScreenWantAgent?:MaxScreenWantAgent | 废弃,移动到reminderAgentManager.ReminderRequest | +| reminderAgent.ReminderRequest | field | ringDuration?:number | 废弃,移动到reminderAgentManager.ReminderRequest | +| reminderAgent.ReminderRequest | field | snoozeTimes?:number | 废弃,移动到reminderAgentManager.ReminderRequest | +| reminderAgent.ReminderRequest | field | timeInterval?:number | 废弃,移动到reminderAgentManager.ReminderRequest | +| reminderAgent.ReminderRequest | field | title?:string | 废弃,移动到reminderAgentManager.ReminderRequest | +| reminderAgent.ReminderRequest | field | content?:string | 废弃,移动到reminderAgentManager.ReminderRequest | +| reminderAgent.ReminderRequest | field | expiredContent?:string | 废弃,移动到reminderAgentManager.ReminderRequest | +| reminderAgent.ReminderRequest | field | snoozeContent?:string | 废弃,移动到reminderAgentManager.ReminderRequest | +| reminderAgent.ReminderRequest | field | notificationId?:number | 废弃,移动到reminderAgentManager.ReminderRequest | +| reminderAgent.ReminderRequest | field | slotType?: notification.SlotType | 废弃,移动到reminderAgentManager.ReminderRequest | +| reminderAgent.ReminderRequestCalendar | field | dateTime:LocalDateTime | 废弃,移动到reminderAgentManager.ReminderRequestCalendar | +| reminderAgent.ReminderRequestCalendar | field | repeatMonths?:Array | 废弃,移动到reminderAgentManager.ReminderRequestCalendar | +| reminderAgent.ReminderRequestCalendar | field | repeatDays?:Array | 废弃,移动到reminderAgentManager.ReminderRequestCalendar | +| reminderAgent.ReminderRequestAlarm | field | hour:number | 废弃,移动到reminderAgentManager.ReminderRequestAlarm | +| reminderAgent.ReminderRequestAlarm | field | minute:number | 废弃,移动到reminderAgentManager.ReminderRequestAlarm | +| reminderAgent.ReminderRequestAlarm | field | daysOfWeek?:Array | 废弃,移动到reminderAgentManager.ReminderRequestAlarm | +| reminderAgent.ReminderRequestTimer | field | triggerTimeInSeconds:number | 废弃,移动到reminderAgentManager.ReminderRequestTimer | +| reminderAgent.LocalDateTime | field | year:number | 废弃,移动到reminderAgentManager.LocalDateTime | +| reminderAgent.LocalDateTime | field | month:number | 废弃,移动到reminderAgentManager.LocalDateTime | +| reminderAgent.LocalDateTime | field | day:number | 废弃,移动到reminderAgentManager.LocalDateTime | +| reminderAgent.LocalDateTime | field | hour:number | 废弃,移动到reminderAgentManager.LocalDateTime | +| reminderAgent.LocalDateTime | field | minute:number | 废弃,移动到reminderAgentManager.LocalDateTime | +| reminderAgent.LocalDateTime | field | second?:number | 废弃,移动到reminderAgentManager.LocalDateTime | + + +**适配指导**
+ +导入reminderAgentManager模块。 +``` +import bundle form '@ohos.reminderAgentManager' +``` +此外还需要适配异常处理,具体参考[reminderAgentManager接口文档](../../../application-dev/reference/apis/js-apis-reminderAgentManager.md)。 + + diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelogs-telephony.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-telephony.md similarity index 95% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelogs-telephony.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-telephony.md index 51688229f1..88b25f832e 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelogs-telephony.md +++ b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-telephony.md @@ -1,65 +1,65 @@ -# 电话子系统ChangeLog - - - -## cl.telephony.1 sms模块SystemAPI接口入参变更 - -已发布的部分电话子系统sms短信模块SystemAPI传入参数发生变化,不符合OpenHarmony接口规范。从API9开始做出以下变更: - -isImsSmsSupported接口新增一个传入参数slotId,表示卡槽号。 - - - -**变更影响** - -基于此前版本开发的应用,需适配变更js接口的入参,否则会影响原有功能。 - - - -**关键的接口/组件变更** - -- 涉及接口 - - isImsSmsSupported(callback: AsyncCallback): void; - isImsSmsSupported(): Promise; - -- 变更前: - -```js -function isImsSmsSupported(callback: AsyncCallback): void; -function isImsSmsSupported(): Promise; -``` - -- 变更后: - -```js -function isImsSmsSupported(slotId: number, callback: AsyncCallback): void; -function isImsSmsSupported(slotId: number): Promise; -``` - - - -**适配指导** - -新增一个入参,示例代码如下: - -callback方式 - -```js -let slotId = 0; -sms.isImsSmsSupported(slotId, (err, data) => { - console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); -}); -``` - -promise方式 - -```js -let slotId = 0; -let promise = sms.isImsSmsSupported(slotId); -promise.then(data => { - console.log(`isImsSmsSupported success, promise: data->${JSON.stringify(data)}`); -}).catch(err => { - console.error(`isImsSmsSupported failed, promise: err->${JSON.stringify(err)}`); -}); -``` +# 电话子系统ChangeLog + + + +## cl.telephony.1 sms模块SystemAPI接口入参变更 + +已发布的部分电话子系统sms短信模块SystemAPI传入参数发生变化,不符合OpenHarmony接口规范。从API9开始做出以下变更: + +isImsSmsSupported接口新增一个传入参数slotId,表示卡槽号。 + + + +**变更影响** + +基于此前版本开发的应用,需适配变更js接口的入参,否则会影响原有功能。 + + + +**关键的接口/组件变更** + +- 涉及接口 + + isImsSmsSupported(callback: AsyncCallback): void; + isImsSmsSupported(): Promise; + +- 变更前: + +```js +function isImsSmsSupported(callback: AsyncCallback): void; +function isImsSmsSupported(): Promise; +``` + +- 变更后: + +```js +function isImsSmsSupported(slotId: number, callback: AsyncCallback): void; +function isImsSmsSupported(slotId: number): Promise; +``` + + + +**适配指导** + +新增一个入参,示例代码如下: + +callback方式 + +```js +let slotId = 0; +sms.isImsSmsSupported(slotId, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +promise方式 + +```js +let slotId = 0; +let promise = sms.isImsSmsSupported(slotId); +promise.then(data => { + console.log(`isImsSmsSupported success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`isImsSmsSupported failed, promise: err->${JSON.stringify(err)}`); +}); +``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-testfwk_arkxtest.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-testfwk_arkxtest.md similarity index 100% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-testfwk_arkxtest.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-testfwk_arkxtest.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-theme.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-theme.md similarity index 97% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-theme.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-theme.md index 87c2c62d7c..81e0950c0e 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.1/changelogs-theme.md +++ b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-theme.md @@ -1,148 +1,148 @@ -# 主题框架changeLog - -## cl.theme.1 API9接口支持异常处理 - -下列模块内部接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。在API9进行变更。 - - 壁纸管理服务:@ohos.wallpaper.d.ts - - - 锁屏管理服务:@ohos.screenLock.d.ts - -以上模块中的接口变更为: -同步接口:通过抛出异常的方式返回错误信息。 -异步接口:参数检查错误同步抛出,业务逻辑错误通过AsyncCallback或Promise的error对象抛出。 - -**变更影响** - -基于此前版本开发的应用,需适配接口的错误信息返回方式,否则会影响原有业务逻辑。 - -**关键接口/组件变更** - -以下标记为壁纸管理服务接口废除: - - getColors(wallpaperType: WallpaperType, callback: AsyncCallback>): void; - - getColors(wallpaperType: WallpaperType): Promise>; - - getId(wallpaperType: WallpaperType, callback: AsyncCallback): void; - - getId(wallpaperType: WallpaperType): Promise; - - getMinHeight(callback: AsyncCallback): void; - - getMinHeight(): Promise; - - getMinWidth(callback: AsyncCallback): void; - - getMinWidth(): Promise; - - isChangePermitted(callback: AsyncCallback): void; - - isChangePermitted(): Promise; - - isOperationAllowed(callback: AsyncCallback): void; - - isOperationAllowed(): Promise; - - reset(wallpaperType: WallpaperType, callback: AsyncCallback): void; - - reset(wallpaperType: WallpaperType): Promise; - - setWallpaper(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback): void; - - setWallpaper(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise; - - getFile(wallpaperType: WallpaperType, callback: AsyncCallback): void; - - getFile(wallpaperType: WallpaperType): Promise; - - getPixelMap(wallpaperType: WallpaperType, callback: AsyncCallback): void; - - getPixelMap(wallpaperType: WallpaperType): Promise; - -壁纸管理服务替代接口如下: - - getColorsSync(wallpaperType: WallpaperType): Array; - - getIdSync(wallpaperType: WallpaperType): number; - - getMinHeightSync(): number; - - getMinWidthSync(): number; - - isChangeAllowed(): boolean; - - isUserChangeAllowed(): boolean; - - restore(wallpaperType: WallpaperType, callback: AsyncCallback): void; - - restore(wallpaperType: WallpaperType): Promise; - - setImage(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback): void; - - setImage(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise; - - getFileSync(wallpaperType: WallpaperType): number; - - getImage(wallpaperType: WallpaperType, callback: AsyncCallback): void; - - getImage(wallpaperType: WallpaperType): Promise; - -以下标记为壁纸管理服务接口变更: - - on(type: 'colorChange', callback: (colors: Array, wallpaperType: WallpaperType) => void): void - - off(type: 'colorChange', callback?: (colors: Array, wallpaperType: WallpaperType) => void): void - -以下标记为锁屏管理服务接口废除: - - isScreenLocked(callback: AsyncCallback): void; - - isScreenLocked(): Promise; - - isSecureMode(callback: AsyncCallback): void; - - isSecureMode(): Promise; - - unlockScreen(callback: AsyncCallback): void; - - unlockScreen(): Promise; - -锁屏管理服务替代接口如下: - - isLocked(): boolean; - - isSecure(): boolean; - - unlock(callback: AsyncCallback): void; - - unlock():Promise; - -以下标记为锁屏管理服务接口删除: - - lockScreen(callback: AsyncCallback): void; - - lockScreen(): Promise; - -以下标记为锁屏管理服务接口新增: - - lock(callback: AsyncCallback): void; - - lock():Promise; - -以下标记为锁屏管理服务接口变更: - - onSystemEvent(callback: Callback): boolean; - - sendScreenLockEvent(event: String, parameter: number, callback: AsyncCallback): void; - - sendScreenLockEvent(event: String, parameter: number): Promise; - -**壁纸管理服务适配指导** - -异步接口以getImage为例,示例代码如下: - -```ts -import pointer from '@ohos.wallpaper'; -try { - wallpaper.getImage(wallpaper.WallpaperType.WALLPAPER_SYSTEM).then((data) => { - console.log(`success to getImage: ${JSON.stringify(data)}`); - }).catch((error) => { - console.error(`failed to getImage because: ${JSON.stringify(error)}`); - }); -} catch (err) { - console.error(`failed to getImage because: ${JSON.stringify(err)}`); -} - -``` - -同步接口以getFileSync为例,示例代码如下: - -```ts -import pointer from '@ohos.wallpaper'; -try { - let file = wallpaper.getFileSync(wallpaper.WallpaperType.WALLPAPER_SYSTEM); -} catch (err) { - console.error(`failed to getFileSync because: ${err.message}`); -} -``` - -**锁屏管理服务适配指导** - -异步接口以lock为例,示例代码如下: - -```ts -import screenLock from '@ohos.screenlock'; -try { - screenLock.lock((err, data) => { - if (err) { - console.error(`Failed to lock the screen, because: ${err.message}`); - return; - } - console.info(`lock the screen successfully. result: ${data}`); - }); -} catch (err) { - console.error(`Failed to lock the screen, because: ${err.message}`); -} - -``` - -同步接口以onSystemEvent为例,示例代码如下: - -```ts -import screenLock from '@ohos.screenlock'; -try { - let isSuccess = screenLock.onSystemEvent((event) => { - console.log(`Register the system event which related to screenlock successfully. eventType: ${event.eventType}`) - }); -} catch (err) { - console.error(`Failed to register the system event which related to screenlock, because: ${err.message}`) -} -``` +# 主题框架changeLog + +## cl.theme.1 API9接口支持异常处理 + +下列模块内部接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。在API9进行变更。 + - 壁纸管理服务:@ohos.wallpaper.d.ts + + - 锁屏管理服务:@ohos.screenLock.d.ts + +以上模块中的接口变更为: +同步接口:通过抛出异常的方式返回错误信息。 +异步接口:参数检查错误同步抛出,业务逻辑错误通过AsyncCallback或Promise的error对象抛出。 + +**变更影响** + +基于此前版本开发的应用,需适配接口的错误信息返回方式,否则会影响原有业务逻辑。 + +**关键接口/组件变更** + +以下标记为壁纸管理服务接口废除: + - getColors(wallpaperType: WallpaperType, callback: AsyncCallback>): void; + - getColors(wallpaperType: WallpaperType): Promise>; + - getId(wallpaperType: WallpaperType, callback: AsyncCallback): void; + - getId(wallpaperType: WallpaperType): Promise; + - getMinHeight(callback: AsyncCallback): void; + - getMinHeight(): Promise; + - getMinWidth(callback: AsyncCallback): void; + - getMinWidth(): Promise; + - isChangePermitted(callback: AsyncCallback): void; + - isChangePermitted(): Promise; + - isOperationAllowed(callback: AsyncCallback): void; + - isOperationAllowed(): Promise; + - reset(wallpaperType: WallpaperType, callback: AsyncCallback): void; + - reset(wallpaperType: WallpaperType): Promise; + - setWallpaper(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback): void; + - setWallpaper(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise; + - getFile(wallpaperType: WallpaperType, callback: AsyncCallback): void; + - getFile(wallpaperType: WallpaperType): Promise; + - getPixelMap(wallpaperType: WallpaperType, callback: AsyncCallback): void; + - getPixelMap(wallpaperType: WallpaperType): Promise; + +壁纸管理服务替代接口如下: + - getColorsSync(wallpaperType: WallpaperType): Array; + - getIdSync(wallpaperType: WallpaperType): number; + - getMinHeightSync(): number; + - getMinWidthSync(): number; + - isChangeAllowed(): boolean; + - isUserChangeAllowed(): boolean; + - restore(wallpaperType: WallpaperType, callback: AsyncCallback): void; + - restore(wallpaperType: WallpaperType): Promise; + - setImage(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback): void; + - setImage(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise; + - getFileSync(wallpaperType: WallpaperType): number; + - getImage(wallpaperType: WallpaperType, callback: AsyncCallback): void; + - getImage(wallpaperType: WallpaperType): Promise; + +以下标记为壁纸管理服务接口变更: + - on(type: 'colorChange', callback: (colors: Array, wallpaperType: WallpaperType) => void): void + - off(type: 'colorChange', callback?: (colors: Array, wallpaperType: WallpaperType) => void): void + +以下标记为锁屏管理服务接口废除: + - isScreenLocked(callback: AsyncCallback): void; + - isScreenLocked(): Promise; + - isSecureMode(callback: AsyncCallback): void; + - isSecureMode(): Promise; + - unlockScreen(callback: AsyncCallback): void; + - unlockScreen(): Promise; + +锁屏管理服务替代接口如下: + - isLocked(): boolean; + - isSecure(): boolean; + - unlock(callback: AsyncCallback): void; + - unlock():Promise; + +以下标记为锁屏管理服务接口删除: + - lockScreen(callback: AsyncCallback): void; + - lockScreen(): Promise; + +以下标记为锁屏管理服务接口新增: + - lock(callback: AsyncCallback): void; + - lock():Promise; + +以下标记为锁屏管理服务接口变更: + - onSystemEvent(callback: Callback): boolean; + - sendScreenLockEvent(event: String, parameter: number, callback: AsyncCallback): void; + - sendScreenLockEvent(event: String, parameter: number): Promise; + +**壁纸管理服务适配指导** + +异步接口以getImage为例,示例代码如下: + +```ts +import pointer from '@ohos.wallpaper'; +try { + wallpaper.getImage(wallpaper.WallpaperType.WALLPAPER_SYSTEM).then((data) => { + console.log(`success to getImage: ${JSON.stringify(data)}`); + }).catch((error) => { + console.error(`failed to getImage because: ${JSON.stringify(error)}`); + }); +} catch (err) { + console.error(`failed to getImage because: ${JSON.stringify(err)}`); +} + +``` + +同步接口以getFileSync为例,示例代码如下: + +```ts +import pointer from '@ohos.wallpaper'; +try { + let file = wallpaper.getFileSync(wallpaper.WallpaperType.WALLPAPER_SYSTEM); +} catch (err) { + console.error(`failed to getFileSync because: ${err.message}`); +} +``` + +**锁屏管理服务适配指导** + +异步接口以lock为例,示例代码如下: + +```ts +import screenLock from '@ohos.screenlock'; +try { + screenLock.lock((err, data) => { + if (err) { + console.error(`Failed to lock the screen, because: ${err.message}`); + return; + } + console.info(`lock the screen successfully. result: ${data}`); + }); +} catch (err) { + console.error(`Failed to lock the screen, because: ${err.message}`); +} + +``` + +同步接口以onSystemEvent为例,示例代码如下: + +```ts +import screenLock from '@ohos.screenlock'; +try { + let isSuccess = screenLock.onSystemEvent((event) => { + console.log(`Register the system event which related to screenlock successfully. eventType: ${event.eventType}`) + }); +} catch (err) { + console.error(`Failed to register the system event which related to screenlock, because: ${err.message}`) +} +``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-useriam.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-useriam.md similarity index 100% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelogs-useriam.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-useriam.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelogs-wantAgent.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-wantAgent.md similarity index 90% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelogs-wantAgent.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-wantAgent.md index cc403f2572..44840f55cc 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelogs-wantAgent.md +++ b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-wantAgent.md @@ -1,7 +1,5 @@ # wantAgent的JS API变更Changelog -OpenHarmony 3.2.9.1 sp8版本相较于OpenHarmony 3.2.8.1版本,wantAgent的API变更如下 - ## cl.url.1.trigger类接口变更 trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback): void ; @@ -71,7 +69,7 @@ function getWantAgentCallback(err, data) { //getUid回调 function triggerCallback(err, data) { if(err) { - console.info('getUid failed!' + err.code + err.message); + console.info('getUid failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } else { console.info('getUid ok!' + JSON.stringify(data)); } @@ -79,12 +77,12 @@ function getWantAgentCallback(err, data) { try { WantAgent.trigger(wantAgent, triggerInfo, triggerCallback); } catch(err) { - console.info('getUid failed!' + err.code + err.message); + console.info('getUid failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } } try{ WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); } catch(err){ - console.info('getWantAgent failed!' + err.code + err.message); + console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } ``` diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelog-web.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-web.md similarity index 96% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelog-web.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-web.md index 92a0328779..b065436d1d 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.9.1/changelog-web.md +++ b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-web.md @@ -1,7 +1,5 @@ # web子系统ChangeLog -OpenHarmony 3.2.9.1 sp8版本相较于OpenHarmony 3.2.8.1版本,web的API变更如下 - ## cl.web.1 删除无用错误码 web子系统webviewController接口存在变更: diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelog-wifi.md b/zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-wifi.md similarity index 100% rename from zh-cn/release-notes/changelogs/OpenHarmony_3.2.8.3/changelog-wifi.md rename to zh-cn/release-notes/changelogs/v3.2-beta4/changelogs-wifi.md diff --git a/zh-cn/release-notes/changelogs/v3.2-beta5/changelogs-filemanagement.md b/zh-cn/release-notes/changelogs/v3.2-beta5/changelogs-filemanagement.md index c8cd90d415..fc5904f09f 100644 --- a/zh-cn/release-notes/changelogs/v3.2-beta5/changelogs-filemanagement.md +++ b/zh-cn/release-notes/changelogs/v3.2-beta5/changelogs-filemanagement.md @@ -6,7 +6,7 @@ **变更影响** -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现environment模块支持错误码处理,需注意错误码处理的使用。 +基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现environment模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../v3.2-beta4/changelogs-filemanagement.md) **关键接口/组件变更** @@ -28,7 +28,7 @@ import environment from '@ohos.file.environment'; **变更影响** -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现securityLabel模块支持错误码处理,需注意错误码处理的使用。 +基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现securityLabel模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../v3.2-beta4/changelogs-filemanagement.md) **关键接口/组件变更** @@ -62,7 +62,7 @@ fs模块下Stat接口ino属性类型变更,由number变更为bigint,以适 **变更影响** -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现fileAccess模块支持错误码处理,需注意错误码处理的使用。 +基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现fileAccess模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../v3.2-beta4/changelogs-filemanagement.md) **关键接口/组件变更** @@ -84,7 +84,7 @@ import fileAccess from '@ohos.file.fileAccess'; **变更影响** -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现fileExtensionInfo模块支持错误码处理,需注意错误码处理的使用。 +基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现fileExtensionInfo模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../v3.2-beta4/changelogs-filemanagement.md) **关键接口/组件变更** @@ -106,7 +106,7 @@ import fileExtensionInfo from '@ohos.file.fileExtensionInfo'; **变更影响** -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现storageStatistics模块支持错误码处理,需注意错误码处理的使用。 +基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现storageStatistics模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../v3.2-beta4/changelogs-filemanagement.md) **关键接口/组件变更** @@ -128,7 +128,7 @@ import storageStatistics from '@ohos.file.storageStatistics'; **变更影响** -基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现volumeManager模块支持错误码处理,需注意错误码处理的使用。 +基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现volumeManager模块支持错误码处理,需注意错误码处理的使用。[相关适配指导参考](../v3.2-beta4/changelogs-filemanagement.md) **关键接口/组件变更** -- GitLab