diff --git a/common/include/dm_constants.h b/common/include/dm_constants.h
index 1206f3909740ac8325d19fdcb5f1a940afb2e817..913e73f82a279d4159d2a6aa4ad9da8d98248ed8 100644
--- a/common/include/dm_constants.h
+++ b/common/include/dm_constants.h
@@ -140,6 +140,7 @@ const std::string AUTH_TYPE = "authType";
const std::string TOKEN = "token";
const std::string PIN_TOKEN = "pinToken";
const std::string PIN_CODE_KEY = "pinCode";
+const std::string TAG_CERTIFIED_PARAM = "certifiedParam";
const int32_t AUTH_TYPE_PIN = 1;
const int32_t AUTH_TYPE_SCAN = 2;
const int32_t AUTH_TYPE_TOUCH = 3;
diff --git a/ext/input_pin_dialog/dialog_ui/js/BUILD.gn b/ext/child_auth_ui/input_pin_dialog/dialog_ui/js/BUILD.gn
similarity index 94%
rename from ext/input_pin_dialog/dialog_ui/js/BUILD.gn
rename to ext/child_auth_ui/input_pin_dialog/dialog_ui/js/BUILD.gn
index 8abf88695e272f47842c8c6549920376cff6b74b..00603189b07801ea95f7c2f55bb3437c612e0a8e 100644
--- a/ext/input_pin_dialog/dialog_ui/js/BUILD.gn
+++ b/ext/child_auth_ui/input_pin_dialog/dialog_ui/js/BUILD.gn
@@ -15,7 +15,7 @@ import("//foundation/ace/ace_engine/build/ace_gen_sa_dialog_js.gni")
import("//foundation/distributedhardware/devicemanager/devicemanager.gni")
gen_sa_dialog_js("dialog_js_files_etc") {
- project_path = "//foundation/distributedhardware/devicemanager/ext/input_pin_dialog/dialog_ui/js"
+ project_path = "//foundation/distributedhardware/devicemanager/ext/child_auth_ui//input_pin_dialog/dialog_ui/js"
dialog_name = "input_pin_service"
part_name = "device_manager_base"
subsystem_name = "distributedhardware"
diff --git a/ext/input_pin_dialog/dialog_ui/js/common/KeyBoard.js b/ext/child_auth_ui/input_pin_dialog/dialog_ui/js/common/KeyBoard.js
similarity index 100%
rename from ext/input_pin_dialog/dialog_ui/js/common/KeyBoard.js
rename to ext/child_auth_ui/input_pin_dialog/dialog_ui/js/common/KeyBoard.js
diff --git a/ext/input_pin_dialog/dialog_ui/js/common/index.hml b/ext/child_auth_ui/input_pin_dialog/dialog_ui/js/common/index.hml
similarity index 100%
rename from ext/input_pin_dialog/dialog_ui/js/common/index.hml
rename to ext/child_auth_ui/input_pin_dialog/dialog_ui/js/common/index.hml
diff --git a/ext/input_pin_dialog/dialog_ui/js/common/pincode.png b/ext/child_auth_ui/input_pin_dialog/dialog_ui/js/common/pincode.png
similarity index 100%
rename from ext/input_pin_dialog/dialog_ui/js/common/pincode.png
rename to ext/child_auth_ui/input_pin_dialog/dialog_ui/js/common/pincode.png
diff --git a/ext/input_pin_dialog/dialog_ui/js/i18n/en-US.json b/ext/child_auth_ui/input_pin_dialog/dialog_ui/js/i18n/en-US.json
similarity index 100%
rename from ext/input_pin_dialog/dialog_ui/js/i18n/en-US.json
rename to ext/child_auth_ui/input_pin_dialog/dialog_ui/js/i18n/en-US.json
diff --git a/ext/input_pin_dialog/dialog_ui/js/i18n/zh-CN.json b/ext/child_auth_ui/input_pin_dialog/dialog_ui/js/i18n/zh-CN.json
similarity index 100%
rename from ext/input_pin_dialog/dialog_ui/js/i18n/zh-CN.json
rename to ext/child_auth_ui/input_pin_dialog/dialog_ui/js/i18n/zh-CN.json
diff --git a/ext/input_pin_dialog/dialog_ui/js/pages/index/index.css b/ext/child_auth_ui/input_pin_dialog/dialog_ui/js/pages/index/index.css
similarity index 88%
rename from ext/input_pin_dialog/dialog_ui/js/pages/index/index.css
rename to ext/child_auth_ui/input_pin_dialog/dialog_ui/js/pages/index/index.css
index 4ef6358fe1480d9328b653b36d2efc590d5e3e93..fc2207c2f9f7e3d00aa2e2d32073cbfbf2ea34ec 100644
--- a/ext/input_pin_dialog/dialog_ui/js/pages/index/index.css
+++ b/ext/child_auth_ui/input_pin_dialog/dialog_ui/js/pages/index/index.css
@@ -15,13 +15,13 @@
.title-list {
font-size: 60px;
line-height: 60px;
- font-weight: 600;
+ font-weight: 800;
}
.title-error {
font-size: 30px;
line-height: 40px;
- font-weight: 500;
+ font-weight: 800;
color: #ff0000;
}
@@ -41,13 +41,13 @@
.but1 {
width: 30%;
height: 80px;
- font-size: 40px;
+ font-size: 50px;
margin-left: 10%;
}
.but2 {
width: 30%;
height: 80px;
- font-size: 40px;
+ font-size: 50px;
margin-left: 55%;
}
\ No newline at end of file
diff --git a/ext/input_pin_dialog/dialog_ui/js/pages/index/index.hml b/ext/child_auth_ui/input_pin_dialog/dialog_ui/js/pages/index/index.hml
similarity index 58%
rename from ext/input_pin_dialog/dialog_ui/js/pages/index/index.hml
rename to ext/child_auth_ui/input_pin_dialog/dialog_ui/js/pages/index/index.hml
index 84f217637922f7f11220581ad95ca82c435abbf6..c8edca3fb50de19ccbca16b9436c9f148c42cafb 100644
--- a/ext/input_pin_dialog/dialog_ui/js/pages/index/index.hml
+++ b/ext/child_auth_ui/input_pin_dialog/dialog_ui/js/pages/index/index.hml
@@ -6,14 +6,11 @@
请输入另一个设备显示的PIN码进行验证
-
- PIN码输入错误,请重新输入(3次:还有{{isTimes}}次机会)
-
-
diff --git a/ext/input_pin_dialog/dialog_ui/js/pages/index/index.js b/ext/child_auth_ui/input_pin_dialog/dialog_ui/js/pages/index/index.js
similarity index 62%
rename from ext/input_pin_dialog/dialog_ui/js/pages/index/index.js
rename to ext/child_auth_ui/input_pin_dialog/dialog_ui/js/pages/index/index.js
index 514b6ec77625f87c10ea936fcd20191c9f544f72..c68e1a3dd639e7f449fd306401e046a139abdc45 100644
--- a/ext/input_pin_dialog/dialog_ui/js/pages/index/index.js
+++ b/ext/child_auth_ui/input_pin_dialog/dialog_ui/js/pages/index/index.js
@@ -6,32 +6,24 @@ var inputVal = 0;
export default {
data: {
pincode: router.getParams().pinCode,
- isShow:false,
- isTimes:3,
},
onInit() {
code = router.getParams().pinCode;
- callNativeHandler("EVENT_CONFIRM", "2");
},
onChange(e){
inputVal = e.value;
},
onConfirm() {
numbs = numbs + 1;
- if(numbs <= 3){
+ if(numbs < 3){
console.info('click cancel numbs < 3 ');
console.info('code: ' + code);
console.info('inputVal: ' + inputVal);
if(code == inputVal){
- console.info('click cancel code == inputVal');
- callNativeHandler("EVENT_INPUT", "0");
+ console.info('click cancel code == inputVal');
+ callNativeHandler("EVENT_INPUT", "0");
}else{
- if(numbs == 3){
- callNativeHandler("EVENT_CONFIRM", "1");
- }
- console.info('click cancel code != inputVal');
- this.isShow = true;
- this.isTimes = 3 - numbs;
+ console.info('click cancel code != inputVal');
}
}else{
console.info('click cancel numbs > 3 ');
diff --git a/ext/child_auth_ui/scan_dialog/dialog_ui/js/BUILD.gn b/ext/child_auth_ui/scan_dialog/dialog_ui/js/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..4a1c51d0d918a4d80138d7151fb3ace4ccd53f8e
--- /dev/null
+++ b/ext/child_auth_ui/scan_dialog/dialog_ui/js/BUILD.gn
@@ -0,0 +1,22 @@
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//foundation/ace/ace_engine/build/ace_gen_sa_dialog_js.gni")
+import("//foundation/distributedhardware/devicemanager/devicemanager.gni")
+
+gen_sa_dialog_js("dialog_js_files_etc") {
+ project_path = "//foundation/distributedhardware/devicemanager/ext/child_auth_ui/scan_dialog/dialog_ui/js"
+ dialog_name = "scan_service"
+ part_name = "device_manager_base"
+ subsystem_name = "distributedhardware"
+}
diff --git a/ext/show_pin_dialog/dialog_ui/js/common/pincode.png b/ext/child_auth_ui/scan_dialog/dialog_ui/js/common/pincode.png
similarity index 100%
rename from ext/show_pin_dialog/dialog_ui/js/common/pincode.png
rename to ext/child_auth_ui/scan_dialog/dialog_ui/js/common/pincode.png
diff --git a/ext/show_pin_dialog/dialog_ui/js/i18n/en-US.json b/ext/child_auth_ui/scan_dialog/dialog_ui/js/i18n/en-US.json
similarity index 100%
rename from ext/show_pin_dialog/dialog_ui/js/i18n/en-US.json
rename to ext/child_auth_ui/scan_dialog/dialog_ui/js/i18n/en-US.json
diff --git a/ext/show_pin_dialog/dialog_ui/js/i18n/zh-CN.json b/ext/child_auth_ui/scan_dialog/dialog_ui/js/i18n/zh-CN.json
similarity index 100%
rename from ext/show_pin_dialog/dialog_ui/js/i18n/zh-CN.json
rename to ext/child_auth_ui/scan_dialog/dialog_ui/js/i18n/zh-CN.json
diff --git a/ext/child_auth_ui/scan_dialog/dialog_ui/js/pages/index/index.css b/ext/child_auth_ui/scan_dialog/dialog_ui/js/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..a140015477299454a3f88a6d890954ed419c1fc4
--- /dev/null
+++ b/ext/child_auth_ui/scan_dialog/dialog_ui/js/pages/index/index.css
@@ -0,0 +1,46 @@
+.container {
+ margin-top: 10%;
+ margin-left: 5%;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ width: 90%;
+ height: 80%;
+ background-color:white;
+}
+
+.title {
+ font-size: 40px;
+ font-weight:bold;
+ text-align: center;
+ color: #000000;
+ width: 95%;
+}
+
+.title-list {
+ margin-top: 10%;
+ font-size: 20px;
+ font-family: SimHei ;
+ font-weight:bold;
+ text-align: center;
+ color: #000000;
+ width: 95%;
+}
+
+.title-pin {
+ margin-top: 10%;
+ font-size: 40px;
+ font-family: SimHei ;
+ font-weight:bold;
+ text-align: center;
+ letter-spacing:15px;
+ color: #000000;
+ width: 95%;
+}
+
+.but {
+ margin-top: 10%;
+ width: 20%;
+ margin-top: 10%;
+ text-align: center;
+}
\ No newline at end of file
diff --git a/ext/child_auth_ui/scan_dialog/dialog_ui/js/pages/index/index.hml b/ext/child_auth_ui/scan_dialog/dialog_ui/js/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..45c8429e09673275d3f00e54e0dccd7c52a1c678
--- /dev/null
+++ b/ext/child_auth_ui/scan_dialog/dialog_ui/js/pages/index/index.hml
@@ -0,0 +1,16 @@
+
+
+ 二维码扫描
+
+
+ 二维码扫描框
+
+
+
+ 取消
+
+
+ 确定
+
+
+
\ No newline at end of file
diff --git a/ext/child_auth_ui/scan_dialog/dialog_ui/js/pages/index/index.js b/ext/child_auth_ui/scan_dialog/dialog_ui/js/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..f5fce5c1b79678425dd74d201ad07ecf49466686
--- /dev/null
+++ b/ext/child_auth_ui/scan_dialog/dialog_ui/js/pages/index/index.js
@@ -0,0 +1,19 @@
+import router from '@ohos.router'
+
+export default {
+ data: {
+ qr_code: router.getParams().certifiedParam,
+ },
+ onInit() {
+ console.info('getParams: ' + router.getParams());
+ callNativeHandler("EVENT_INIT", "0");
+ },
+ onConfirm() {
+ console.info('click confirm');
+ callNativeHandler("EVENT_CONFIRM", qr_code);
+ },
+ onCancel() {
+ console.info('click cancel');
+ callNativeHandler("EVENT_CANCEL", "2");
+ }
+}
\ No newline at end of file
diff --git a/ext/show_pin_dialog/dialog_ui/js/BUILD.gn b/ext/child_auth_ui/show_pin_dialog/dialog_ui/js/BUILD.gn
similarity index 95%
rename from ext/show_pin_dialog/dialog_ui/js/BUILD.gn
rename to ext/child_auth_ui/show_pin_dialog/dialog_ui/js/BUILD.gn
index 8c623e7f87ffeec940e5f3a0730114001f79f6e0..82e4ec76e469bcaeb778ac54ca26fb5a08f02e7a 100644
--- a/ext/show_pin_dialog/dialog_ui/js/BUILD.gn
+++ b/ext/child_auth_ui/show_pin_dialog/dialog_ui/js/BUILD.gn
@@ -15,7 +15,7 @@ import("//foundation/ace/ace_engine/build/ace_gen_sa_dialog_js.gni")
import("//foundation/distributedhardware/devicemanager/devicemanager.gni")
gen_sa_dialog_js("dialog_js_files_etc") {
- project_path = "//foundation/distributedhardware/devicemanager/ext/show_pin_dialog/dialog_ui/js"
+ project_path = "//foundation/distributedhardware/devicemanager/ext/child_auth_ui/show_pin_dialog/dialog_ui/js"
dialog_name = "show_pin_service"
part_name = "device_manager_base"
subsystem_name = "distributedhardware"
diff --git a/ext/child_auth_ui/show_pin_dialog/dialog_ui/js/common/pincode.png b/ext/child_auth_ui/show_pin_dialog/dialog_ui/js/common/pincode.png
new file mode 100644
index 0000000000000000000000000000000000000000..6616f7659fcf1d5da5ab6796863e32efbe086cdc
Binary files /dev/null and b/ext/child_auth_ui/show_pin_dialog/dialog_ui/js/common/pincode.png differ
diff --git a/ext/child_auth_ui/show_pin_dialog/dialog_ui/js/i18n/en-US.json b/ext/child_auth_ui/show_pin_dialog/dialog_ui/js/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..0714fc75f8420ac089a6ee1c24c8f2d8472ff511
--- /dev/null
+++ b/ext/child_auth_ui/show_pin_dialog/dialog_ui/js/i18n/en-US.json
@@ -0,0 +1,5 @@
+{
+ "message":{
+ "hello": "hello world"
+ }
+}
\ No newline at end of file
diff --git a/ext/child_auth_ui/show_pin_dialog/dialog_ui/js/i18n/zh-CN.json b/ext/child_auth_ui/show_pin_dialog/dialog_ui/js/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..53afe2047da6ff0423e5eae8d9f9af9f73d85d0b
--- /dev/null
+++ b/ext/child_auth_ui/show_pin_dialog/dialog_ui/js/i18n/zh-CN.json
@@ -0,0 +1,5 @@
+{
+ "message": {
+ "hello": "你好世界"
+ }
+}
\ No newline at end of file
diff --git a/ext/show_pin_dialog/dialog_ui/js/pages/index/index.css b/ext/child_auth_ui/show_pin_dialog/dialog_ui/js/pages/index/index.css
similarity index 90%
rename from ext/show_pin_dialog/dialog_ui/js/pages/index/index.css
rename to ext/child_auth_ui/show_pin_dialog/dialog_ui/js/pages/index/index.css
index 08279e9a3fdc796a6018f761a1fa9777b439bab2..4e83197eb87599519a190b689eceb3182591d24c 100644
--- a/ext/show_pin_dialog/dialog_ui/js/pages/index/index.css
+++ b/ext/child_auth_ui/show_pin_dialog/dialog_ui/js/pages/index/index.css
@@ -15,7 +15,7 @@
.title-list {
font-size: 60px;
line-height: 100px;
- font-weight: 600;
+ font-weight: 800;
}
.title-pin {
@@ -26,6 +26,6 @@
.but {
width: 30%;
- font-size: 40px;
+ font-size: 50px;
height: 80px;
}
\ No newline at end of file
diff --git a/ext/show_pin_dialog/dialog_ui/js/pages/index/index.hml b/ext/child_auth_ui/show_pin_dialog/dialog_ui/js/pages/index/index.hml
similarity index 100%
rename from ext/show_pin_dialog/dialog_ui/js/pages/index/index.hml
rename to ext/child_auth_ui/show_pin_dialog/dialog_ui/js/pages/index/index.hml
diff --git a/ext/show_pin_dialog/dialog_ui/js/pages/index/index.js b/ext/child_auth_ui/show_pin_dialog/dialog_ui/js/pages/index/index.js
similarity index 100%
rename from ext/show_pin_dialog/dialog_ui/js/pages/index/index.js
rename to ext/child_auth_ui/show_pin_dialog/dialog_ui/js/pages/index/index.js
diff --git a/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/BUILD.gn b/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..4a850d2444cf3023704a12c2092d1bc6960700e8
--- /dev/null
+++ b/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/BUILD.gn
@@ -0,0 +1,22 @@
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//foundation/ace/ace_engine/build/ace_gen_sa_dialog_js.gni")
+import("//foundation/distributedhardware/devicemanager/devicemanager.gni")
+
+gen_sa_dialog_js("dialog_js_files_etc") {
+ project_path = "//foundation/distributedhardware/devicemanager/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js"
+ dialog_name = "show_qr_code_dialog"
+ part_name = "device_manager_base"
+ subsystem_name = "distributedhardware"
+}
diff --git a/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/common/pincode.png b/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/common/pincode.png
new file mode 100644
index 0000000000000000000000000000000000000000..6616f7659fcf1d5da5ab6796863e32efbe086cdc
Binary files /dev/null and b/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/common/pincode.png differ
diff --git a/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/i18n/en-US.json b/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..0714fc75f8420ac089a6ee1c24c8f2d8472ff511
--- /dev/null
+++ b/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/i18n/en-US.json
@@ -0,0 +1,5 @@
+{
+ "message":{
+ "hello": "hello world"
+ }
+}
\ No newline at end of file
diff --git a/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/i18n/zh-CN.json b/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..53afe2047da6ff0423e5eae8d9f9af9f73d85d0b
--- /dev/null
+++ b/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/i18n/zh-CN.json
@@ -0,0 +1,5 @@
+{
+ "message": {
+ "hello": "你好世界"
+ }
+}
\ No newline at end of file
diff --git a/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/pages/index/index.css b/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..a140015477299454a3f88a6d890954ed419c1fc4
--- /dev/null
+++ b/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/pages/index/index.css
@@ -0,0 +1,46 @@
+.container {
+ margin-top: 10%;
+ margin-left: 5%;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ width: 90%;
+ height: 80%;
+ background-color:white;
+}
+
+.title {
+ font-size: 40px;
+ font-weight:bold;
+ text-align: center;
+ color: #000000;
+ width: 95%;
+}
+
+.title-list {
+ margin-top: 10%;
+ font-size: 20px;
+ font-family: SimHei ;
+ font-weight:bold;
+ text-align: center;
+ color: #000000;
+ width: 95%;
+}
+
+.title-pin {
+ margin-top: 10%;
+ font-size: 40px;
+ font-family: SimHei ;
+ font-weight:bold;
+ text-align: center;
+ letter-spacing:15px;
+ color: #000000;
+ width: 95%;
+}
+
+.but {
+ margin-top: 10%;
+ width: 20%;
+ margin-top: 10%;
+ text-align: center;
+}
\ No newline at end of file
diff --git a/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/pages/index/index.hml b/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..cb1a8e094316b44eafa6a28bd44a7056406fbae4
--- /dev/null
+++ b/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/pages/index/index.hml
@@ -0,0 +1,14 @@
+
+
+ 通过二维码验证
+
+
+ 请在对端设备扫描二维码进行验证
+
+
+ {{ "pincode" }}
+
+
+ 取消
+
+
\ No newline at end of file
diff --git a/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/pages/index/index.js b/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..bcfb49daae960e4dae850a59f257ff789d2237ae
--- /dev/null
+++ b/ext/child_auth_ui/show_qr_code_dialog/dialog_ui/js/pages/index/index.js
@@ -0,0 +1,15 @@
+import router from '@ohos.router'
+
+export default {
+ data: {
+ qr_code: router.getParams().certifiedParam,
+ },
+ onInit() {
+ console.info('getParams: ' + router.getParams());
+ callNativeHandler("EVENT_INIT", "0");
+ },
+ onConfirm() {
+ console.info('click confirm');
+ callNativeHandler("EVENT_CANCEL", "1");
+ }
+}
\ No newline at end of file
diff --git a/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/BUILD.gn b/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..f74c54c6fdc139eb53a0efeb086ba6d89e29f628
--- /dev/null
+++ b/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/BUILD.gn
@@ -0,0 +1,22 @@
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//foundation/ace/ace_engine/build/ace_gen_sa_dialog_js.gni")
+import("//foundation/distributedhardware/devicemanager/devicemanager.gni")
+
+gen_sa_dialog_js("dialog_js_files_etc") {
+ project_path = "//foundation/distributedhardware/devicemanager/ext/child_auth_ui/touch_dialog/dialog_ui/js"
+ dialog_name = "show_touch_service"
+ part_name = "device_manager_base"
+ subsystem_name = "distributedhardware"
+}
diff --git a/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/common/pincode.png b/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/common/pincode.png
new file mode 100644
index 0000000000000000000000000000000000000000..6616f7659fcf1d5da5ab6796863e32efbe086cdc
Binary files /dev/null and b/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/common/pincode.png differ
diff --git a/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/i18n/en-US.json b/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..0714fc75f8420ac089a6ee1c24c8f2d8472ff511
--- /dev/null
+++ b/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/i18n/en-US.json
@@ -0,0 +1,5 @@
+{
+ "message":{
+ "hello": "hello world"
+ }
+}
\ No newline at end of file
diff --git a/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/i18n/zh-CN.json b/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..53afe2047da6ff0423e5eae8d9f9af9f73d85d0b
--- /dev/null
+++ b/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/i18n/zh-CN.json
@@ -0,0 +1,5 @@
+{
+ "message": {
+ "hello": "你好世界"
+ }
+}
\ No newline at end of file
diff --git a/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/pages/index/index.css b/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..a140015477299454a3f88a6d890954ed419c1fc4
--- /dev/null
+++ b/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/pages/index/index.css
@@ -0,0 +1,46 @@
+.container {
+ margin-top: 10%;
+ margin-left: 5%;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ width: 90%;
+ height: 80%;
+ background-color:white;
+}
+
+.title {
+ font-size: 40px;
+ font-weight:bold;
+ text-align: center;
+ color: #000000;
+ width: 95%;
+}
+
+.title-list {
+ margin-top: 10%;
+ font-size: 20px;
+ font-family: SimHei ;
+ font-weight:bold;
+ text-align: center;
+ color: #000000;
+ width: 95%;
+}
+
+.title-pin {
+ margin-top: 10%;
+ font-size: 40px;
+ font-family: SimHei ;
+ font-weight:bold;
+ text-align: center;
+ letter-spacing:15px;
+ color: #000000;
+ width: 95%;
+}
+
+.but {
+ margin-top: 10%;
+ width: 20%;
+ margin-top: 10%;
+ text-align: center;
+}
\ No newline at end of file
diff --git a/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/pages/index/index.hml b/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..abe8a1b8678787c73a7a85492803453aa3ea55c0
--- /dev/null
+++ b/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/pages/index/index.hml
@@ -0,0 +1,14 @@
+
+
+ PIN码连接
+
+
+ 请在设备端输入链接码进行验证
+
+
+ {{ "pincode" }}
+
+
+ 取消
+
+
\ No newline at end of file
diff --git a/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/pages/index/index.js b/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..b00824bd206909fecc3b58bd619d840a3f2378ac
--- /dev/null
+++ b/ext/child_auth_ui/show_touch_dialog/dialog_ui/js/pages/index/index.js
@@ -0,0 +1,15 @@
+import router from '@ohos.router'
+
+export default {
+ data: {
+ nfcCode: router.getParams().certifiedParam,
+ },
+ onInit() {
+ console.info('getParams: ' + router.getParams());
+ callNativeHandler("EVENT_INIT", "0");
+ },
+ onConfirm() {
+ console.info('click confirm');
+ callNativeHandler("EVENT_CANCEL", "1");
+ }
+}
\ No newline at end of file
diff --git a/ext/child_auth_ui/touch_dialog/dialog_ui/js/BUILD.gn b/ext/child_auth_ui/touch_dialog/dialog_ui/js/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..0b3710cc8a7d725e55df53013fd585514d48629a
--- /dev/null
+++ b/ext/child_auth_ui/touch_dialog/dialog_ui/js/BUILD.gn
@@ -0,0 +1,22 @@
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//foundation/ace/ace_engine/build/ace_gen_sa_dialog_js.gni")
+import("//foundation/distributedhardware/devicemanager/devicemanager.gni")
+
+gen_sa_dialog_js("dialog_js_files_etc") {
+ project_path = "//foundation/distributedhardware/devicemanager/ext/child_auth_ui/show_touch_dialog/dialog_ui/js"
+ dialog_name = "touch_service"
+ part_name = "device_manager_base"
+ subsystem_name = "distributedhardware"
+}
diff --git a/ext/child_auth_ui/touch_dialog/dialog_ui/js/common/pincode.png b/ext/child_auth_ui/touch_dialog/dialog_ui/js/common/pincode.png
new file mode 100644
index 0000000000000000000000000000000000000000..6616f7659fcf1d5da5ab6796863e32efbe086cdc
Binary files /dev/null and b/ext/child_auth_ui/touch_dialog/dialog_ui/js/common/pincode.png differ
diff --git a/ext/child_auth_ui/touch_dialog/dialog_ui/js/i18n/en-US.json b/ext/child_auth_ui/touch_dialog/dialog_ui/js/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..0714fc75f8420ac089a6ee1c24c8f2d8472ff511
--- /dev/null
+++ b/ext/child_auth_ui/touch_dialog/dialog_ui/js/i18n/en-US.json
@@ -0,0 +1,5 @@
+{
+ "message":{
+ "hello": "hello world"
+ }
+}
\ No newline at end of file
diff --git a/ext/child_auth_ui/touch_dialog/dialog_ui/js/i18n/zh-CN.json b/ext/child_auth_ui/touch_dialog/dialog_ui/js/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..53afe2047da6ff0423e5eae8d9f9af9f73d85d0b
--- /dev/null
+++ b/ext/child_auth_ui/touch_dialog/dialog_ui/js/i18n/zh-CN.json
@@ -0,0 +1,5 @@
+{
+ "message": {
+ "hello": "你好世界"
+ }
+}
\ No newline at end of file
diff --git a/ext/child_auth_ui/touch_dialog/dialog_ui/js/pages/index/index.css b/ext/child_auth_ui/touch_dialog/dialog_ui/js/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..a140015477299454a3f88a6d890954ed419c1fc4
--- /dev/null
+++ b/ext/child_auth_ui/touch_dialog/dialog_ui/js/pages/index/index.css
@@ -0,0 +1,46 @@
+.container {
+ margin-top: 10%;
+ margin-left: 5%;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ width: 90%;
+ height: 80%;
+ background-color:white;
+}
+
+.title {
+ font-size: 40px;
+ font-weight:bold;
+ text-align: center;
+ color: #000000;
+ width: 95%;
+}
+
+.title-list {
+ margin-top: 10%;
+ font-size: 20px;
+ font-family: SimHei ;
+ font-weight:bold;
+ text-align: center;
+ color: #000000;
+ width: 95%;
+}
+
+.title-pin {
+ margin-top: 10%;
+ font-size: 40px;
+ font-family: SimHei ;
+ font-weight:bold;
+ text-align: center;
+ letter-spacing:15px;
+ color: #000000;
+ width: 95%;
+}
+
+.but {
+ margin-top: 10%;
+ width: 20%;
+ margin-top: 10%;
+ text-align: center;
+}
\ No newline at end of file
diff --git a/ext/child_auth_ui/touch_dialog/dialog_ui/js/pages/index/index.hml b/ext/child_auth_ui/touch_dialog/dialog_ui/js/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..c516adfbf36d9084bfd25fa905534bc2082da9ae
--- /dev/null
+++ b/ext/child_auth_ui/touch_dialog/dialog_ui/js/pages/index/index.hml
@@ -0,0 +1,19 @@
+
+
+ PIN码连接
+
+
+ 请在设备端输入链接码进行验证
+
+
+ {{ "pincode" }}
+
+
+
+ 取消
+
+
+ 确定
+
+
+
\ No newline at end of file
diff --git a/ext/child_auth_ui/touch_dialog/dialog_ui/js/pages/index/index.js b/ext/child_auth_ui/touch_dialog/dialog_ui/js/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..86cc1c56552eeb1788317bf9653b3c2e1541dfcc
--- /dev/null
+++ b/ext/child_auth_ui/touch_dialog/dialog_ui/js/pages/index/index.js
@@ -0,0 +1,20 @@
+import router from '@ohos.router'
+
+export default {
+ data: {
+ nfcCode: router.getParams().certifiedParam,
+ },
+ onInit() {
+ console.info('getParams: ' + router.getParams());
+ callNativeHandler("EVENT_INIT", "0");
+ },
+ onConfirm() {
+ console.info('click confirm');
+ callNativeHandler("EVENT_CONFIRM", nfcCode);
+ },
+ onCancel() {
+ console.info('click cancel');
+ callNativeHandler("EVENT_CANCEL", "2");
+ }
+ }
+}
\ No newline at end of file
diff --git a/ext/nfc_auth/BUILD.gn b/ext/nfc_auth/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..8e45db79f13c04087d9bd5e6fc082c7c440fe2ef
--- /dev/null
+++ b/ext/nfc_auth/BUILD.gn
@@ -0,0 +1,103 @@
+# Copyright (C) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+if (defined(ohos_lite)) {
+ import("//build/lite/config/component/lite_component.gni")
+} else {
+ import("//build/ohos.gni")
+}
+
+import("//foundation/distributedhardware/devicemanager/devicemanager.gni")
+
+if (defined(ohos_lite)) {
+} else {
+ ohos_shared_library("devicemanager_nfcauth") {
+ include_dirs = [
+ "include",
+ "${common_path}/include",
+ "${ext_path}/pin_auth/include/ability",
+ "${services_path}/include/dependency/timer",
+ "${services_path}/include/config",
+ "${services_path}/include/adapter",
+ "${services_path}/include/authentication",
+ "${services_path}/include/ability",
+ "${services_path}/include/deviceinfo",
+ "${services_path}/include/devicestate",
+ "${services_path}/include/discovery",
+ "${services_path}/include/dependency/commonevent",
+ "${services_path}/include/dependency/hichain",
+ "${services_path}/include/dependency/softbus",
+ "${services_path}/include/dependency/timer",
+ "${services_path}/include/ipc",
+ "${services_path}/include/ipc/standard",
+ "${utils_path}/include",
+ "${utils_path}/include/ipc/standard",
+ "${services_path}/include",
+ "${innerkits_path}/native_cpp/include",
+ "${common_path}/include/ipc",
+ "${common_path}/include/ipc/model",
+ "${innerkits_path}/native_cpp/include",
+ "${innerkits_path}/native_cpp/include/ipc",
+ "${innerkits_path}/native_cpp/include/ipc/standard",
+ "//third_party/json/include",
+ "//utils/native/base/include",
+ "//utils/system/safwk/native/include",
+ "//base/notification/ces_standard/frameworks/core/include",
+ "//base/notification/ces_standard/interfaces/innerkits/native/include",
+ "//base/security/deviceauth/interfaces/innerkits",
+ "//base/startup/syspara_lite/interfaces/kits",
+ "//base/startup/syspara_lite/adapter/native/syspara/include",
+ ]
+
+ sources = [ "src/nfc_auth.cpp" ]
+
+ deps = [
+ "${ext_path}/child_auth_ui/show_touch_dialog/dialog_ui/js:dialog_js_files_etc",
+ "${ext_path}/child_auth_ui/touch_dialog/dialog_ui/js:dialog_js_files_etc",
+ "${innerkits_path}/native_cpp:devicemanagersdk",
+ "${utils_path}:devicemanagerutils",
+ "//base/security/deviceauth/services:deviceauth_sdk",
+ "//foundation/aafwk/standard/interfaces/innerkits/ability_manager:ability_manager",
+ "//foundation/aafwk/standard/interfaces/innerkits/want:want",
+ "//foundation/aafwk/standard/services/abilitymgr:abilityms",
+ "//foundation/ace/ace_engine/interfaces/innerkits/ui_service_manager:ui_service_mgr",
+ "//foundation/distributedhardware/devicemanager/services/devicemanagerservice:devicemanagerservice",
+ "//foundation/windowmanager/wm:libwm",
+ "//utils/native/base:utils",
+ ]
+
+ external_deps = [
+ "bundle_framework:appexecfwk_base",
+ "bundle_framework:appexecfwk_core",
+ "ces_standard:cesfwk_core",
+ "ces_standard:cesfwk_innerkits",
+ "dsoftbus_standard:softbus_client",
+ "hiviewdfx_hilog_native:libhilog",
+ "ipc:ipc_core",
+ "safwk:system_ability_fwk",
+ "samgr_standard:samgr_proxy",
+ "startup_l2:syspara",
+ "startup_l2:syspara_watchagent",
+ ]
+
+ defines = [
+ "HI_LOG_ENABLE",
+ "DH_LOG_TAG=\"devicemanagerext\"",
+ "LOG_DOMAIN=0xD004100",
+ ]
+
+ subsystem_name = "distributedhardware"
+
+ part_name = "device_manager_base"
+ }
+}
diff --git a/ext/nfc_auth/include/nfc_auth.h b/ext/nfc_auth/include/nfc_auth.h
new file mode 100644
index 0000000000000000000000000000000000000000..83ccb00e4ecfcc77cf5351d6739241ff5baaee64
--- /dev/null
+++ b/ext/nfc_auth/include/nfc_auth.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef OHOS_DM_TOUCH_AUTH_H
+#define OHOS_DM_TOUCH_AUTH_H
+
+#include
+#include
+
+#include "authentication.h"
+#include "dm_auth_manager.h"
+
+namespace OHOS {
+namespace DistributedHardware {
+class NFCAuth : public IAuthentication {
+public:
+ NFCAuth();
+ ~NFCAuth();
+ int32_t ShowAuthInfo(std::string &certifiedParam, std::shared_ptr authManager) override;
+ int32_t StartAuth(std::string &certifiedParam, std::shared_ptr authManager) override;
+ int32_t VerifyAuthentication(std::string &certifiedParam, const std::string &authParam) override;
+ int32_t ClosePage(int32_t pageId);
+};
+} // namespace DistributedHardware
+} // namespace OHOS
+#endif // OHOS_DM_TOUCH_AUTH_H
\ No newline at end of file
diff --git a/ext/nfc_auth/src/nfc_auth.cpp b/ext/nfc_auth/src/nfc_auth.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..84e16f31ebd1f16e8a8fc412ef8e6fd3291a5f8e
--- /dev/null
+++ b/ext/nfc_auth/src/nfc_auth.cpp
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "nfc_auth.h"
+
+#include
+
+#include "dm_constants.h"
+#include "dm_log.h"
+#include "nlohmann/json.hpp"
+#include "ui_service_mgr_client.h"
+namespace OHOS {
+namespace DistributedHardware {
+NFCAuth::NFCAuth()
+{
+ LOGI("NFCAuth constructor");
+}
+
+NFCAuth::~NFCAuth()
+{
+}
+
+int32_t NFCAuth::ShowAuthInfo(std::string &certifiedParam, std::shared_ptr authManager)
+{
+ LOGI("ShowPinDialog start");
+ //定义字符串
+ nlohmann::json jsonObj;
+ jsonObj[TAG_CERTIFIED_PARAM] = certifiedParam;
+ jsonObj.dump();
+ const std::string params = jsonObj.dump();
+
+ Ace::UIServiceMgrClient::GetInstance()->ShowDialog(
+ "show_touch_service",
+ params,
+ OHOS::Rosen::WindowType::WINDOW_TYPE_SYSTEM_ALARM_WINDOW,
+ 200,
+ 50,
+ 300,
+ 200,
+ [authManager](int32_t id, const std::string& event, const std::string& params) {
+ LOGI("CancelDialog start id:%d,event:%s,parms:%s", id, event.c_str(), params.c_str());
+ if (event == "EVENT_INIT"){
+ authManager->SetPageId(id);
+ } else {
+ Ace::UIServiceMgrClient::GetInstance()->CancelDialog(id);
+ authManager->AuthenticateFinish();
+ }
+ });
+ LOGI("ShowConfigDialog end");
+ return DM_OK;
+}
+
+int32_t NFCAuth::StartAuth(std::string &certifiedParam, std::shared_ptr authManager)
+{
+ LOGI("InputPinDialog start");
+ //定义字符串
+ nlohmann::json jsonObj;
+ jsonObj[TAG_CERTIFIED_PARAM] = certifiedParam;
+ jsonObj.dump();
+ const std::string params = jsonObj.dump();
+ // std::shared_ptr authMgr_ = authManager;
+
+ Ace::UIServiceMgrClient::GetInstance()->ShowDialog(
+ "touch_service",
+ params,
+ OHOS::Rosen::WindowType::WINDOW_TYPE_SYSTEM_ALARM_WINDOW,
+ 200,
+ 50,
+ 300,
+ 200,
+ [authManager](int32_t id, const std::string& event, const std::string& params) {
+ Ace::UIServiceMgrClient::GetInstance()->CancelDialog(id);
+ LOGI("CancelDialog start id:%d,event:%s,parms:%s", id, event.c_str(), params.c_str());
+ if (event == "EVENT_INIT"){
+ authManager->SetPageId(id);
+ } else if(event == "EVENT_CONFIRM"){
+ authManager->VerifyAuthentication(params);
+ } else {
+ Ace::UIServiceMgrClient::GetInstance()->CancelDialog(id);
+ authManager->AuthenticateFinish();
+ }
+ });
+ LOGI("ShowConfigDialog end");
+ return DM_OK;
+}
+
+int32_t NFCAuth::VerifyAuthentication(std::string &certifiedParam, const std::string &authParam)
+{
+ if (certifiedParam == authParam){
+ return DM_OK;
+ }
+ return DM_FAILED;
+}
+
+int32_t NFCAuth::ClosePage(int32_t pageId)
+{
+ Ace::UIServiceMgrClient::GetInstance()->CancelDialog(pageId);
+ return DM_OK;
+}
+
+extern "C" IAuthentication *CreateNFCAuthObject(void)
+{
+ return new NFCAuth;
+}
+} // namespace DistributedHardware
+} // namespace OHOS
diff --git a/ext/pin_auth/BUILD.gn b/ext/pin_auth/BUILD.gn
index 41bfe45895d84043dd289304b4e37359cf414055..a1c45cff89af713096cc5e947c4014f156e9290e 100644
--- a/ext/pin_auth/BUILD.gn
+++ b/ext/pin_auth/BUILD.gn
@@ -66,8 +66,8 @@ if (defined(ohos_lite)) {
]
deps = [
- "${ext_path}/input_pin_dialog/dialog_ui/js:dialog_js_files_etc",
- "${ext_path}/show_pin_dialog/dialog_ui/js:dialog_js_files_etc",
+ "${ext_path}/child_auth_ui/input_pin_dialog/dialog_ui/js:dialog_js_files_etc",
+ "${ext_path}/child_auth_ui/show_pin_dialog/dialog_ui/js:dialog_js_files_etc",
"${innerkits_path}/native_cpp:devicemanagersdk",
"${utils_path}:devicemanagerutils",
"//base/security/deviceauth/services:deviceauth_sdk",
diff --git a/ext/pin_auth/include/pin_auth.h b/ext/pin_auth/include/pin_auth.h
index dca2e7e7f9e12b4679d778c7d4a9b893f46c129d..bd9adda42a95c6ca674f5d74e6bcb3632e588920 100644
--- a/ext/pin_auth/include/pin_auth.h
+++ b/ext/pin_auth/include/pin_auth.h
@@ -30,12 +30,11 @@ class PinAuth : public IAuthentication {
public:
PinAuth();
~PinAuth();
- int32_t ShowAuthInfo(int32_t code, std::shared_ptr authManager) override;
- int32_t StartAuth(int32_t code, std::shared_ptr authManager) override;
- int32_t VerifyAuthentication(std::string pinToken, int32_t code, const std::string &authParam) override;
+ int32_t ShowAuthInfo(std::string &certifiedParam, std::shared_ptr authManager) override;
+ int32_t StartAuth(std::string &certifiedParam, std::shared_ptr authManager) override;
+ int32_t VerifyAuthentication(std::string &certifiedParam, const std::string &authParam) override;
private:
- int32_t times_ = 0;
std::shared_ptr pinAuthUi_;
};
} // namespace DistributedHardware
diff --git a/ext/pin_auth/src/pin_auth.cpp b/ext/pin_auth/src/pin_auth.cpp
index 0bbadd15f7aa503e771432a132e9512f1834eec8..bcaf0abb732e7fd7de420248f11be2835588eca3 100644
--- a/ext/pin_auth/src/pin_auth.cpp
+++ b/ext/pin_auth/src/pin_auth.cpp
@@ -23,7 +23,6 @@
namespace OHOS {
namespace DistributedHardware {
-const int32_t MAX_VERIFY_TIMES = 3;
PinAuth::PinAuth()
{
LOGI("PinAuth constructor");
@@ -33,37 +32,41 @@ PinAuth::~PinAuth()
{
}
-int32_t PinAuth::ShowAuthInfo(int32_t code, std::shared_ptr authManager)
+int32_t PinAuth::ShowAuthInfo(std::string &certifiedParam, std::shared_ptr authManager)
{
- return pinAuthUi_->ShowPinDialog(code, authManager);
+ return pinAuthUi_->ShowPinDialog(atoi(certifiedParam.c_str()), authManager);
}
-int32_t PinAuth::StartAuth(int32_t code, std::shared_ptr authManager)
+int32_t PinAuth::StartAuth(std::string &certifiedParam, std::shared_ptr authManager)
{
- return pinAuthUi_->InputPinDialog(code, authManager);
+ return pinAuthUi_->InputPinDialog(atoi(certifiedParam.c_str()), authManager);
}
-int32_t PinAuth::VerifyAuthentication(std::string pinToken, int32_t code, const std::string &authParam)
+int32_t PinAuth::VerifyAuthentication(std::string &certifiedParam, const std::string &authParam)
{
- times_ += 1;
- nlohmann::json jsonObject = nlohmann::json::parse(authParam, nullptr, false);
- if (jsonObject.is_discarded()) {
- LOGE("DecodeRequestAuth jsonStr error");
- return DM_FAILED;
- }
- if (!jsonObject.contains(PIN_CODE_KEY) && !jsonObject.contains(PIN_TOKEN)) {
- LOGE("err json string, first time");
- return DM_FAILED;
- }
- int32_t inputPinCode = jsonObject[PIN_CODE_KEY];
- int32_t inputPinToken = jsonObject[PIN_TOKEN];
- if (code == inputPinCode && stoi(pinToken) == inputPinToken) {
+ // times_ += 1;
+ // nlohmann::json jsonObject = nlohmann::json::parse(authParam, nullptr, false);
+ // if (jsonObject.is_discarded()) {
+ // LOGE("DecodeRequestAuth jsonStr error");
+ // return DM_FAILED;
+ // }
+ // if (!jsonObject.contains(PIN_CODE_KEY) && !jsonObject.contains(PIN_TOKEN)) {
+ // LOGE("err json string, first time");
+ // return DM_FAILED;
+ // }
+ // int32_t inputPinCode = jsonObject[PIN_CODE_KEY];
+ // int32_t inputPinToken = jsonObject[PIN_TOKEN];
+ // if (code == inputPinCode && stoi(pinToken) == inputPinToken) {
+ // return DM_OK;
+ // } else if (code != inputPinCode && times_ < MAX_VERIFY_TIMES) {
+ // return DM_AUTH_INPUT_FAILED;
+ // } else {
+ // return DM_FAILED;
+ // }
+ if (authParam == "0"){
return DM_OK;
- } else if (code != inputPinCode && times_ < MAX_VERIFY_TIMES) {
- return DM_AUTH_INPUT_FAILED;
- } else {
- return DM_FAILED;
}
+ return DM_FAILED;
}
extern "C" IAuthentication *CreatePinAuthObject(void)
diff --git a/ext/pin_auth/src/pin_auth_ui.cpp b/ext/pin_auth/src/pin_auth_ui.cpp
index 9fc3459cda10a015720e9c8184833825b398c14f..f570e14fc9427a4917ca8d4818cb1efc3b89957c 100644
--- a/ext/pin_auth/src/pin_auth_ui.cpp
+++ b/ext/pin_auth/src/pin_auth_ui.cpp
@@ -43,7 +43,7 @@ int32_t PinAuthUi::ShowPinDialog(int32_t code, std::shared_ptr au
ACE_X, ACE_Y, ACE_WIDTH, ACE_HEIGHT,
[authManager](int32_t id, const std::string& event, const std::string& params) {
if (strcmp(params.c_str(), "0") == 0) {
- authManager->ClosePage(id);
+ authManager->SetPageId(id);
}
if (strcmp(params.c_str(), "1") == 0) {
LOGI("CancelDialog start id:%d,event:%s,parms:%s", id, event.c_str(), params.c_str());
@@ -68,14 +68,9 @@ int32_t PinAuthUi::InputPinDialog(int32_t code, std::shared_ptr a
OHOS::Rosen::WindowType::WINDOW_TYPE_SYSTEM_ALARM_WINDOW,
ACE_X, ACE_Y, ACE_WIDTH, ACE_HEIGHT,
[authManager](int32_t id, const std::string& event, const std::string& params) {
- if (strcmp(params.c_str(), "2") == 0) {
- authManager->ClosePage(id);
- }
- if (strcmp(params.c_str(), "0") == 0 || strcmp(params.c_str(), "1") == 0) {
- Ace::UIServiceMgrClient::GetInstance()->CancelDialog(id);
- LOGI("CancelDialog start id:%d,event:%s,parms:%s", id, event.c_str(), params.c_str());
- authManager->VerifyPinAuthAuthentication(params.c_str());
- }
+ Ace::UIServiceMgrClient::GetInstance()->CancelDialog(id);
+ LOGI("CancelDialog start id:%d,event:%s,parms:%s", id, event.c_str(), params.c_str());
+ authManager->VerifyAuthentication(params.c_str());
});
LOGI("ShowConfigDialog end");
return DM_OK;
diff --git a/ext/profile/BUILD.gn b/ext/profile/BUILD.gn
index 552653a03c2077c3eea4b5b85534e18fc34c5e57..9dfe54e45e01efe71194329923d12f68c5167a08 100644
--- a/ext/profile/BUILD.gn
+++ b/ext/profile/BUILD.gn
@@ -30,7 +30,15 @@ if (defined(ohos_lite)) {
"${ext_path}/profile/include",
"${services_path}/include",
"${services_path}/include/adapter",
+ "${services_path}/include/authentication",
+ "${services_path}/include/ability",
+ "${services_path}/include/deviceinfo",
+ "${services_path}/include/devicestate",
+ "${services_path}/include/discovery",
+ "${services_path}/include/dependency/commonevent",
+ "${services_path}/include/dependency/hichain",
"${services_path}/include/dependency/softbus",
+ "${services_path}/include/dependency/timer",
"${services_path}/include/ipc/standard",
"${services_path}/include/devicestate",
"${utils_path}/include",
@@ -38,11 +46,12 @@ if (defined(ohos_lite)) {
"${innerkits_path}/native_cpp/include",
"${innerkits_path}/native_cpp/include/ipc",
"${innerkits_path}/native_cpp/include/ipc/standard",
- "//foundation/communication/dsoftbus/interfaces/kits/bus_center",
- "//foundation/communication/dsoftbus/interfaces/kits/common",
- "//foundation/communication/dsoftbus/interfaces/kits/discovery",
- "//foundation/communication/dsoftbus/interfaces/kits/transport",
- "//foundation/communication/dsoftbus/interfaces/inner_kits/transport",
+
+ "//base/notification/ces_standard/frameworks/core/include",
+ "//base/notification/ces_standard/interfaces/innerkits/native/include",
+ "//base/security/deviceauth/interfaces/innerkits",
+ "//base/startup/syspara_lite/interfaces/kits",
+ "//base/startup/syspara_lite/adapter/native/syspara/include",
]
sources = [
@@ -60,6 +69,7 @@ if (defined(ohos_lite)) {
"device_profile_core:distributed_device_profile_client",
"hiviewdfx_hilog_native:libhilog",
"ipc:ipc_core",
+ "dsoftbus_standard:softbus_client"
]
defines = [
diff --git a/ext/qr_code_auth/BUILD.gn b/ext/qr_code_auth/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..09cb415a1990409aafefe9ee7a0ff54e74f7d699
--- /dev/null
+++ b/ext/qr_code_auth/BUILD.gn
@@ -0,0 +1,103 @@
+# Copyright (C) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+if (defined(ohos_lite)) {
+ import("//build/lite/config/component/lite_component.gni")
+} else {
+ import("//build/ohos.gni")
+}
+
+import("//foundation/distributedhardware/devicemanager/devicemanager.gni")
+
+if (defined(ohos_lite)) {
+} else {
+ ohos_shared_library("devicemanager_qrcodeauth") {
+ include_dirs = [
+ "include",
+ "${common_path}/include",
+ "${ext_path}/pin_auth/include/ability",
+ "${services_path}/include/dependency/timer",
+ "${services_path}/include/config",
+ "${services_path}/include/adapter",
+ "${services_path}/include/authentication",
+ "${services_path}/include/ability",
+ "${services_path}/include/deviceinfo",
+ "${services_path}/include/devicestate",
+ "${services_path}/include/discovery",
+ "${services_path}/include/dependency/commonevent",
+ "${services_path}/include/dependency/hichain",
+ "${services_path}/include/dependency/softbus",
+ "${services_path}/include/dependency/timer",
+ "${services_path}/include/ipc",
+ "${services_path}/include/ipc/standard",
+ "${utils_path}/include",
+ "${utils_path}/include/ipc/standard",
+ "${services_path}/include",
+ "${innerkits_path}/native_cpp/include",
+ "${common_path}/include/ipc",
+ "${common_path}/include/ipc/model",
+ "${innerkits_path}/native_cpp/include",
+ "${innerkits_path}/native_cpp/include/ipc",
+ "${innerkits_path}/native_cpp/include/ipc/standard",
+ "//third_party/json/include",
+ "//utils/native/base/include",
+ "//utils/system/safwk/native/include",
+ "//base/notification/ces_standard/frameworks/core/include",
+ "//base/notification/ces_standard/interfaces/innerkits/native/include",
+ "//base/security/deviceauth/interfaces/innerkits",
+ "//base/startup/syspara_lite/interfaces/kits",
+ "//base/startup/syspara_lite/adapter/native/syspara/include",
+ ]
+
+ sources = [ "src/qr_code_auth.cpp" ]
+
+ deps = [
+ "${ext_path}/child_auth_ui/scan_dialog/dialog_ui/js:dialog_js_files_etc",
+ "${ext_path}/child_auth_ui/show_qr_code_dialog/dialog_ui/js:dialog_js_files_etc",
+ "${innerkits_path}/native_cpp:devicemanagersdk",
+ "${utils_path}:devicemanagerutils",
+ "//base/security/deviceauth/services:deviceauth_sdk",
+ "//foundation/aafwk/standard/interfaces/innerkits/ability_manager:ability_manager",
+ "//foundation/aafwk/standard/interfaces/innerkits/want:want",
+ "//foundation/aafwk/standard/services/abilitymgr:abilityms",
+ "//foundation/ace/ace_engine/interfaces/innerkits/ui_service_manager:ui_service_mgr",
+ "//foundation/distributedhardware/devicemanager/services/devicemanagerservice:devicemanagerservice",
+ "//foundation/windowmanager/wm:libwm",
+ "//utils/native/base:utils",
+ ]
+
+ external_deps = [
+ "bundle_framework:appexecfwk_base",
+ "bundle_framework:appexecfwk_core",
+ "ces_standard:cesfwk_core",
+ "ces_standard:cesfwk_innerkits",
+ "dsoftbus_standard:softbus_client",
+ "hiviewdfx_hilog_native:libhilog",
+ "ipc:ipc_core",
+ "safwk:system_ability_fwk",
+ "samgr_standard:samgr_proxy",
+ "startup_l2:syspara",
+ "startup_l2:syspara_watchagent",
+ ]
+
+ defines = [
+ "HI_LOG_ENABLE",
+ "DH_LOG_TAG=\"devicemanagerext\"",
+ "LOG_DOMAIN=0xD004100",
+ ]
+
+ subsystem_name = "distributedhardware"
+
+ part_name = "device_manager_base"
+ }
+}
diff --git a/ext/qr_code_auth/include/qr_code_auth.h b/ext/qr_code_auth/include/qr_code_auth.h
new file mode 100644
index 0000000000000000000000000000000000000000..f15d84f4bd0cf2ae7f47c4e20dfd62b965dfa43f
--- /dev/null
+++ b/ext/qr_code_auth/include/qr_code_auth.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef OHOS_DM_QR_CODE_AUTH_H
+#define OHOS_DM_QR_CODE_AUTH_H
+
+#include
+#include
+
+#include "authentication.h"
+#include "dm_auth_manager.h"
+
+namespace OHOS {
+namespace DistributedHardware {
+class QRCodeAuth : public IAuthentication, public std::enable_shared_from_this{
+public:
+ QRCodeAuth();
+ ~QRCodeAuth();
+ int32_t ShowAuthInfo(std::string &certifiedParam, std::shared_ptr authManager) override;
+ int32_t StartAuth(std::string &certifiedParam, std::shared_ptr authManager) override;
+ int32_t VerifyAuthentication(std::string &certifiedParam, const std::string &authParam) override;
+ int32_t ClosePage(int32_t pageId);
+};
+} // namespace DistributedHardware
+} // namespace OHOS
+#endif // OHOS_DM_QR_CODE_AUTH_H
\ No newline at end of file
diff --git a/ext/qr_code_auth/src/qr_code_auth.cpp b/ext/qr_code_auth/src/qr_code_auth.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..1e20074823999f52256dfda08dfd7ce8f8bbdabf
--- /dev/null
+++ b/ext/qr_code_auth/src/qr_code_auth.cpp
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "qr_code_auth.h"
+
+#include
+
+#include "dm_constants.h"
+#include "dm_log.h"
+#include "nlohmann/json.hpp"
+#include "ui_service_mgr_client.h"
+namespace OHOS {
+namespace DistributedHardware {
+QRCodeAuth::QRCodeAuth()
+{
+ LOGI("QRCodeAuth constructor");
+}
+
+QRCodeAuth::~QRCodeAuth()
+{
+}
+
+int32_t QRCodeAuth::ShowAuthInfo(std::string &certifiedParam, std::shared_ptr authManager)
+{
+ LOGI("ShowPinDialog start");
+ //定义字符串
+ nlohmann::json jsonObj;
+ jsonObj[TAG_CERTIFIED_PARAM] = certifiedParam;
+ jsonObj.dump();
+ const std::string params = jsonObj.dump();
+
+ Ace::UIServiceMgrClient::GetInstance()->ShowDialog(
+ "show_scan_service",
+ params,
+ OHOS::Rosen::WindowType::WINDOW_TYPE_SYSTEM_ALARM_WINDOW,
+ 200,
+ 50,
+ 300,
+ 200,
+ [authManager](int32_t id, const std::string& event, const std::string& params) {
+ LOGI("CancelDialog start id:%d,event:%s,parms:%s", id, event.c_str(), params.c_str());
+ if (event == "EVENT_INIT"){
+ authManager->SetPageId(id);
+ } else {
+ Ace::UIServiceMgrClient::GetInstance()->CancelDialog(id);
+ authManager->AuthenticateFinish();
+ }
+ });
+ LOGI("ShowConfigDialog end");
+ return DM_OK;
+}
+
+int32_t QRCodeAuth::StartAuth(std::string &certifiedParam, std::shared_ptr authManager)
+{
+ LOGI("InputPinDialog start");
+ //定义字符串
+ nlohmann::json jsonObj;
+ jsonObj[TAG_CERTIFIED_PARAM] = certifiedParam;
+ jsonObj.dump();
+ const std::string params = jsonObj.dump();
+
+ Ace::UIServiceMgrClient::GetInstance()->ShowDialog(
+ "scan_service",
+ params,
+ OHOS::Rosen::WindowType::WINDOW_TYPE_SYSTEM_ALARM_WINDOW,
+ 200,
+ 50,
+ 300,
+ 200,
+ [authManager](int32_t id, const std::string& event, const std::string& params) {
+ Ace::UIServiceMgrClient::GetInstance()->CancelDialog(id);
+ LOGI("CancelDialog start id:%d,event:%s,parms:%s", id, event.c_str(), params.c_str());
+ if (event == "EVENT_INIT"){
+ authManager->SetPageId(id);
+ } else if(event == "EVENT_CONFIRM"){
+ authManager->VerifyAuthentication(params);
+ } else {
+ Ace::UIServiceMgrClient::GetInstance()->CancelDialog(id);
+ authManager->AuthenticateFinish();
+ }
+ });
+ LOGI("ShowConfigDialog end");
+ return DM_OK;
+}
+
+int32_t QRCodeAuth::VerifyAuthentication(std::string &certifiedParam, const std::string &authParam)
+{
+ if (certifiedParam == authParam){
+ return DM_OK;
+ }
+ return DM_FAILED;
+}
+
+int32_t QRCodeAuth::ClosePage(int32_t pageId)
+{
+ Ace::UIServiceMgrClient::GetInstance()->CancelDialog(pageId);
+ return DM_OK;
+}
+
+extern "C" IAuthentication *CreateQRCodeAuthObject(void)
+{
+ return new QRCodeAuth;
+}
+} // namespace DistributedHardware
+} // namespace OHOS
diff --git a/services/devicemanagerservice/include/authentication/authentication.h b/services/devicemanagerservice/include/authentication/authentication.h
index 67ca0c3ee86b1e0fccae4eb20927cda40dc3a829..b0176fb9abb6e56753924533cf1361ec51382765 100644
--- a/services/devicemanagerservice/include/authentication/authentication.h
+++ b/services/devicemanagerservice/include/authentication/authentication.h
@@ -16,17 +16,15 @@
#ifndef OHOS_DM_AUTHENTICATION_H
#define OHOS_DM_AUTHENTICATION_H
-#include "dm_ability_manager.h"
-
namespace OHOS {
namespace DistributedHardware {
class DmAuthManager;
class IAuthentication {
public:
virtual ~IAuthentication() = default;
- virtual int32_t ShowAuthInfo(int32_t code, std::shared_ptr authManager) = 0;
- virtual int32_t StartAuth(int32_t code, std::shared_ptr authManager) = 0;
- virtual int32_t VerifyAuthentication(std::string pinToken, int32_t code, const std::string &authParam) = 0;
+ virtual int32_t ShowAuthInfo(std::string &certifiedParam, std::shared_ptr authManager) = 0;
+ virtual int32_t StartAuth(std::string &certifiedParam, std::shared_ptr authManager) = 0;
+ virtual int32_t VerifyAuthentication(std::string &certifiedParam, const std::string &authParam) = 0;
};
using CreateIAuthAdapterFuncPtr = IAuthentication *(*)(void);
diff --git a/services/devicemanagerservice/include/authentication/dm_auth_manager.h b/services/devicemanagerservice/include/authentication/dm_auth_manager.h
index 6a7ae6b85aeb7a5a7f90f58e97bf559765801835..1cfec4cfdb8edda09e36811c1b719091c5455881 100644
--- a/services/devicemanagerservice/include/authentication/dm_auth_manager.h
+++ b/services/devicemanagerservice/include/authentication/dm_auth_manager.h
@@ -86,7 +86,6 @@ typedef struct DmAuthRequestContext {
std::string appThumbnail;
std::string token;
int32_t reason;
- int32_t aceId;
std::vector syncGroupList;
} DmAuthRequestContext;
@@ -110,10 +109,11 @@ typedef struct DmAuthResponseContext {
std::string appIcon;
std::string appThumbnail;
std::string token;
+ std::string certifiedParam;
+ int32_t pageId;
int64_t requestId;
int32_t code;
int32_t state;
- int32_t aceId;
std::vector syncGroupList;
} DmAuthResponseContext;
@@ -131,7 +131,6 @@ public:
const std::string &extra);
int32_t UnAuthenticateDevice(const std::string &pkgName, const std::string &deviceId);
int32_t VerifyAuthentication(const std::string &authParam);
- void VerifyPinAuthAuthentication(const std::string &action);
void OnSessionOpened(int32_t sessionId, int32_t sessionSide, int32_t result);
void OnSessionClosed(int32_t sessionId);
void OnDataReceived(int32_t sessionId, std::string message);
@@ -161,10 +160,11 @@ public:
void ShowConfigDialog();
void ShowAuthInfoDialog();
void ShowStartAuthDialog();
+ int32_t SetPageId(int32_t pageId);
int32_t GetAuthenticationParam(DmAuthParam &authParam);
int32_t OnUserOperation(int32_t action);
- void UserSwitchEventCallback(int32_t userId);
- void ClosePage(const int32_t &id);
+ void UserSwitchEventCallback(void);
+ void UserSwitchEventCallback (int32_t userId);
private:
std::shared_ptr softbusConnector_;
diff --git a/services/devicemanagerservice/include/dependency/hichain/hichain_connector.h b/services/devicemanagerservice/include/dependency/hichain/hichain_connector.h
index 99d534f6ef6ee9d3749494be63c4dde0d2d5c170..9742a347fc8c663930ad401243e33352dc887d5f 100644
--- a/services/devicemanagerservice/include/dependency/hichain/hichain_connector.h
+++ b/services/devicemanagerservice/include/dependency/hichain/hichain_connector.h
@@ -59,11 +59,12 @@ public:
int32_t AddMember(std::string deviceId, std::string &connectInfo);
int32_t DelMemberFromGroup(std::string groupId, std::string deviceId);
int32_t DeleteGroup(std::string &groupId);
- int32_t DeleteGroup(const int32_t userId, std::string &groupId);
bool IsDevicesInGroup(std::string hostDevice, std::string peerDevice);
int32_t GetRelatedGroups(std::string DeviceId, std::vector &groupList);
int32_t GetGroupInfo(std::string queryParams, std::vector &groupList);
int32_t GetGroupInfo(const int32_t userId, std::string queryParams, std::vector &groupList);
+ int32_t DeleteGroup(const int32_t userId, std::string &groupId);
+ int32_t DeleteTimeOutGroup(const char* deviceId);
private:
int64_t GenRequestId();
int32_t SyncGroups(std::string deviceId, std::vector &remoteGroupIdList);
diff --git a/services/devicemanagerservice/include/dependency/timer/dm_timer.h b/services/devicemanagerservice/include/dependency/timer/dm_timer.h
index 4bf8896edcd10ac5bf90e61e9a438316210289f1..84c3f6c290af9a99ca9195c44be46720c4ed0aa3 100644
--- a/services/devicemanagerservice/include/dependency/timer/dm_timer.h
+++ b/services/devicemanagerservice/include/dependency/timer/dm_timer.h
@@ -29,9 +29,11 @@
namespace OHOS {
namespace DistributedHardware {
+class DmTimer;
typedef void (*TimeoutHandle)(void *data);
+typedef void (*TimerHandle)(const DmTimer &timer);
-#define MAX_EVENTS 255
+#define MAXEVENTS 255
enum DmTimerStatus : int32_t {
DM_STATUS_INIT = 0,
@@ -46,8 +48,38 @@ public:
DmTimer(const std::string &name);
~DmTimer();
DmTimerStatus Start(uint32_t timeOut, TimeoutHandle handle, void *data);
+ template
+ DmTimerStatus Start(uint32_t timeOut, TimerHandle handle, T *data)
+ {
+ if (mTimerName_.empty() || handle == nullptr || data == nullptr) {
+ LOGI("DmTimer is not init or param empty");
+ return DmTimerStatus::DM_STATUS_FINISH;
+ }
+ LOGI("DmTimer %s start timeout(%d)", mTimerName_.c_str(), timeOut);
+ if (mStatus_ != DmTimerStatus::DM_STATUS_INIT) {
+ return DmTimerStatus::DM_STATUS_BUSY;
+ }
+
+ mTimeOutSec_ = timeOut;
+ mTimerHandle_ = handle;
+ owner = data;
+
+ if (CreateTimeFd()) {
+ return DmTimerStatus::DM_STATUS_CREATE_ERROR;
+ }
+
+ mStatus_ = DmTimerStatus::DM_STATUS_RUNNING;
+ mThread_ = std::thread(&DmTimer::WiteforTimeout, this);
+ mThread_.detach();
+
+ return mStatus_;
+ };
+
void Stop(int32_t code);
- void WaitForTimeout();
+ void WiteforTimeout();
+
+public:
+ void *owner;
private:
int32_t CreateTimeFd();
@@ -57,10 +89,12 @@ private:
DmTimerStatus mStatus_;
uint32_t mTimeOutSec_;
TimeoutHandle mHandle_;
+ TimerHandle mTimerHandle_;
+ void *mHandleOutData_;
void *mHandleData_;
int32_t mTimeFd_[2];
struct epoll_event mEv_;
- struct epoll_event mEvents_[MAX_EVENTS];
+ struct epoll_event mEvents_[MAXEVENTS];
int32_t mEpFd_;
std::thread mThread_;
std::string mTimerName_;
diff --git a/services/devicemanagerservice/include/devicestate/dm_device_state_manager.h b/services/devicemanagerservice/include/devicestate/dm_device_state_manager.h
index a54ef47ef12102bd5a5d4838bd135757e0b7e488..cdd78c9159b73871659135732805ccf114a79dff 100644
--- a/services/devicemanagerservice/include/devicestate/dm_device_state_manager.h
+++ b/services/devicemanagerservice/include/devicestate/dm_device_state_manager.h
@@ -19,14 +19,29 @@
#include "device_manager_service_listener.h"
#include "dm_adapter_manager.h"
#include "softbus_connector.h"
-
+#include "dm_timer.h"
+#include "hichain_connector.h"
namespace OHOS {
namespace DistributedHardware {
+class HmDevice {
+public:
+ HmDevice(std::string deviceId, std::shared_ptr stateMgr);
+ ~HmDevice();
+
+public:
+ std::string mDeviceId;
+ std::map mGroupMap;
+ std::shared_ptr mOfflineTimerPtr;
+ std::shared_ptr deviceStateMgr;
+};
+
+#define OFFLINE_TIMEOUT 300
class DmDeviceStateManager final : public ISoftbusStateCallback,
public std::enable_shared_from_this {
public:
DmDeviceStateManager(std::shared_ptr softbusConnector,
- std::shared_ptr listener);
+ std::shared_ptr listener,
+ std::shared_ptr hiChainConnector);
~DmDeviceStateManager();
void OnDeviceOnline(const std::string &pkgName, const DmDeviceInfo &info);
void OnDeviceOffline(const std::string &pkgName, const DmDeviceInfo &info);
@@ -34,6 +49,9 @@ public:
void OnDeviceReady(const std::string &pkgName, const DmDeviceInfo &info);
void OnProfileReady(const std::string &pkgName, const std::string deviceId);
int32_t RegisterSoftbusStateCallback();
+ void OnDeviceOnline(const DmDeviceInfo &deviceInfo);
+ void OnDeviceOffline(const DmDeviceInfo &deviceInfo);
+ void RmHichainGroup(HmDevice *hmDevice);
private:
std::shared_ptr softbusConnector_;
@@ -41,7 +59,10 @@ private:
std::shared_ptr listener_;
std::map deviceStateMap_;
std::map remoteDeviceInfos_;
+ std::map> timerMap_;
+ std::shared_ptr hiChainConnector_;
std::string profileSoName_;
+ std::map mHmDeviceMap_ = {};
};
} // namespace DistributedHardware
} // namespace OHOS
diff --git a/services/devicemanagerservice/src/authentication/auth_message_processor.cpp b/services/devicemanagerservice/src/authentication/auth_message_processor.cpp
index 9ba556f4a188c3e4bf57fd6ff8f48da531b2ad7a..8f5228f3702dfaf50e49140302ae421fb93f9f20 100644
--- a/services/devicemanagerservice/src/authentication/auth_message_processor.cpp
+++ b/services/devicemanagerservice/src/authentication/auth_message_processor.cpp
@@ -146,6 +146,7 @@ void AuthMessageProcessor::CreateResponseAuthMessage(nlohmann::json &json)
json[TAG_REQUEST_ID] = authResponseContext_->requestId;
json[TAG_GROUP_ID] = groupId;
json[TAG_GROUP_NAME] = authResponseContext_->groupName;
+ json[TAG_CERTIFIED_PARAM] = authResponseContext_->certifiedParam;
LOGI("AuthMessageProcessor::ParseAuthResponseMessage %s,%s", groupId.c_str(),
authResponseContext_->groupName.c_str());
}
@@ -225,6 +226,7 @@ void AuthMessageProcessor::ParseAuthResponseMessage(nlohmann::json &json)
authResponseContext_->requestId = json[TAG_REQUEST_ID];
authResponseContext_->groupId = json[TAG_GROUP_ID];
authResponseContext_->groupName = json[TAG_GROUP_NAME];
+ authResponseContext_->certifiedParam = json[TAG_CERTIFIED_PARAM];
LOGI("AuthMessageProcessor::ParseAuthResponseMessage %s,%s", authResponseContext_->groupId.c_str(),
authResponseContext_->groupName.c_str());
}
diff --git a/services/devicemanagerservice/src/authentication/dm_auth_manager.cpp b/services/devicemanagerservice/src/authentication/dm_auth_manager.cpp
index dfe504b5c30c43ce160c5ee2c1543e8abcbbef50..f99f771c57197dd62f01a30c034cc8c042f61db7 100644
--- a/services/devicemanagerservice/src/authentication/dm_auth_manager.cpp
+++ b/services/devicemanagerservice/src/authentication/dm_auth_manager.cpp
@@ -80,7 +80,7 @@ DmAuthManager::~DmAuthManager()
int32_t DmAuthManager::AuthenticateDevice(const std::string &pkgName, int32_t authType, const std::string &deviceId,
const std::string &extra)
{
- LOGE("DmAuthManager::AuthenticateDevice start");
+ LOGE("DmAuthManager::AuthenticateDevice start auth type %d", authType);
std::shared_ptr authentication = authenticationMap_[authType];
if (authentication == nullptr) {
LOGE("DmAuthManager::AuthenticateDevice authType %d not support.", authType);
@@ -178,22 +178,18 @@ int32_t DmAuthManager::VerifyAuthentication(const std::string &authParam)
timerMap_[INPUT_TIMEOUT_TASK]->Stop(SESSION_CANCEL_TIMEOUT);
std::shared_ptr ptr;
- if (authenticationMap_.find(1) == authenticationMap_.end()) {
+ if (authenticationMap_.find(authResponseContext_->authType) == authenticationMap_.end()) {
LOGE("DmAuthManager::authenticationMap_ is null");
return DM_FAILED;
}
- ptr = authenticationMap_[1];
- int32_t ret = ptr->VerifyAuthentication(authRequestContext_->token, authResponseContext_->code, authParam);
+
+ ptr = authenticationMap_[authResponseContext_->authType];
+ int32_t ret = ptr->VerifyAuthentication(authResponseContext_->certifiedParam, authParam);
switch (ret) {
case DM_OK:
authRequestState_->TransitionTo(std::make_shared());
break;
- case DM_AUTH_INPUT_FAILED:
- listener_->OnVerifyAuthResult(authRequestContext_->hostPkgName, authRequestContext_->deviceId,
- DM_AUTH_INPUT_FAILED, "");
- break;
default:
- CancelDisplay();
authRequestContext_->reason = DM_AUTH_INPUT_FAILED;
authResponseContext_->state = authRequestState_->GetStateType();
authRequestState_->TransitionTo(std::make_shared());
@@ -336,6 +332,8 @@ void DmAuthManager::OnGroupCreated(int64_t requestId, const std::string &groupId
void DmAuthManager::OnMemberJoin(int64_t requestId, int32_t status)
{
+ LOGI("DmAuthManager OnMemberJoin start");
+ CancelDisplay();
LOGE("DmAuthManager OnMemberJoin start");
if (authRequestState_ != nullptr) {
timerMap_[ADD_TIMEOUT_TASK]->Stop(SESSION_CANCEL_TIMEOUT);
@@ -520,7 +518,7 @@ int32_t DmAuthManager::AddMember(const std::string &deviceId)
return DM_FAILED;
}
LOGI("DmAuthManager::authRequestContext CancelDisplay start");
- Ace::UIServiceMgrClient::GetInstance()->CancelDialog(authResponseContext_->aceId);
+ Ace::UIServiceMgrClient::GetInstance()->CancelDialog(authResponseContext_->pageId);
return DM_OK;
}
@@ -547,7 +545,7 @@ void DmAuthManager::AuthenticateFinish()
LOGI("DmAuthManager::AuthenticateFinish start");
if (authResponseState_ != nullptr) {
if (authResponseState_->GetStateType() == AuthState::AUTH_RESPONSE_FINISH) {
- Ace::UIServiceMgrClient::GetInstance()->CancelDialog(authResponseContext_->aceId);
+ Ace::UIServiceMgrClient::GetInstance()->CancelDialog(authResponseContext_->pageId);
}
if (!timerMap_.empty()) {
for (auto &iter : timerMap_) {
@@ -569,7 +567,7 @@ void DmAuthManager::AuthenticateFinish()
}
if (authResponseContext_->state == AuthState::AUTH_REQUEST_INPUT) {
- Ace::UIServiceMgrClient::GetInstance()->CancelDialog(authResponseContext_->aceId);
+ CancelDisplay();
}
listener_->OnAuthResult(authRequestContext_->hostPkgName, authRequestContext_->deviceId,
@@ -680,26 +678,38 @@ void DmAuthManager::ShowConfigDialog()
void DmAuthManager::ShowAuthInfoDialog()
{
LOGI("DmAuthManager::ShowAuthInfoDialog start");
+ if (authResponseContext_->authType == 1) {
+ authResponseContext_->certifiedParam = std::to_string(authResponseContext_->code);
+ } else {
+ authResponseContext_->certifiedParam = GenerateGroupName();
+ }
+
std::shared_ptr ptr;
- if (authenticationMap_.find(1) == authenticationMap_.end()) {
+ if (authenticationMap_.find(authResponseContext_->authType) == authenticationMap_.end()) {
LOGE("DmAuthManager::authenticationMap_ is null");
return;
}
- ptr = authenticationMap_[1];
+ ptr = authenticationMap_[authResponseContext_->authType];
LOGI("ShowAuthInfoDialog code:%d", authResponseContext_->code);
- ptr->ShowAuthInfo(authResponseContext_->code, shared_from_this());
+ ptr->ShowAuthInfo(authResponseContext_->certifiedParam, shared_from_this());
}
void DmAuthManager::ShowStartAuthDialog()
{
LOGI("DmAuthManager::ShowStartAuthDialog start");
std::shared_ptr ptr;
- if (authenticationMap_.find(1) == authenticationMap_.end()) {
+ if (authenticationMap_.find(authResponseContext_->authType) == authenticationMap_.end()) {
LOGE("DmAuthManager::authenticationMap_ is null");
return;
}
- ptr = authenticationMap_[1];
- ptr->StartAuth(authResponseContext_->code, shared_from_this());
+ ptr = authenticationMap_[authResponseContext_->authType];
+ ptr->StartAuth(authResponseContext_->certifiedParam, shared_from_this());
+}
+
+int32_t DmAuthManager::SetPageId(int32_t pageId)
+{
+ authResponseContext_->pageId = pageId;
+ return DM_OK;
}
int32_t DmAuthManager::GetAuthenticationParam(DmAuthParam &authParam)
@@ -783,25 +793,5 @@ void DmAuthManager::UserSwitchEventCallback (int32_t userId)
}
}
}
-
-void DmAuthManager::VerifyPinAuthAuthentication(const std::string &action)
-{
- LOGI("DmAuthManager::VerifyPinAuthAuthentication");
- timerMap_[INPUT_TIMEOUT_TASK]->Stop(SESSION_CANCEL_TIMEOUT);
- if (action == "0") {
- authRequestState_->TransitionTo(std::make_shared());
- }
- if (action == "1") {
- authRequestContext_->reason = DM_AUTH_INPUT_FAILED;
- authResponseContext_->state = authRequestState_->GetStateType();
- authRequestState_->TransitionTo(std::make_shared());
- }
- LOGI("DmAuthManager::VerifyAuthentication complete");
-}
-
-void DmAuthManager::ClosePage(const int32_t &id)
-{
- authResponseContext_->aceId = id;
-}
} // namespace DistributedHardware
} // namespace OHOS
diff --git a/services/devicemanagerservice/src/dependency/hichain/hichain_connector.cpp b/services/devicemanagerservice/src/dependency/hichain/hichain_connector.cpp
index 22a50c39d2031d6ae48e308e4d656ebe56fbfa3d..990509de1a2c4f029ae36556e502cdd8e3141426 100644
--- a/services/devicemanagerservice/src/dependency/hichain/hichain_connector.cpp
+++ b/services/devicemanagerservice/src/dependency/hichain/hichain_connector.cpp
@@ -490,5 +490,26 @@ int32_t HiChainConnector::DeleteGroup(const int32_t userId, std::string &groupId
}
return DM_OK;
}
+
+int32_t HiChainConnector::DeleteTimeOutGroup(const char* deviceId)
+{
+ LOGE("HiChainConnector::DeleteTimeOutGroup start");
+ int32_t userId = MultipleUserConnector::GetCurrentAccountUserID();
+ if (userId < 0) {
+ LOGE("get current process account user id failed");
+ return DM_FAILED;
+ }
+ std::vector peerGroupInfoList;
+ GetRelatedGroups(deviceId, peerGroupInfoList);
+ char localDeviceId[DEVICE_UUID_LENGTH] = {0};
+ GetDevUdid(localDeviceId, DEVICE_UUID_LENGTH);
+ for (auto &group : peerGroupInfoList){
+ if (deviceGroupManager_->isDeviceInGroup(userId, DM_PKG_NAME.c_str(), group.groupId.c_str(), localDeviceId)){
+ DeleteGroup(group.groupId);
+ return DM_OK;
+ }
+ }
+ return DM_FAILED;
+}
} // namespace DistributedHardware
} // namespace OHOS
diff --git a/services/devicemanagerservice/src/dependency/timer/dm_timer.cpp b/services/devicemanagerservice/src/dependency/timer/dm_timer.cpp
index a33034f48a1ba692dd046fe310998c54a148f65d..b64d00bc2bed82cd940fe26489d6ae7db323e092 100644
--- a/services/devicemanagerservice/src/dependency/timer/dm_timer.cpp
+++ b/services/devicemanagerservice/src/dependency/timer/dm_timer.cpp
@@ -33,6 +33,7 @@ DmTimer::DmTimer(const std::string &name)
mStatus_ = DmTimerStatus::DM_STATUS_INIT;
mTimeOutSec_ = 0;
mHandle_ = nullptr;
+ mTimerHandle_ = nullptr;
mHandleData_ = nullptr;
(void)memset_s(mTimeFd_, sizeof(mTimeFd_), 0, sizeof(mTimeFd_));
(void)memset_s(&mEv_, sizeof(mEv_), 0, sizeof(mEv_));
@@ -64,14 +65,14 @@ DmTimerStatus DmTimer::Start(uint32_t timeOut, TimeoutHandle handle, void *data)
mTimeOutSec_ = timeOut;
mHandle_ = handle;
- mHandleData_ = data;
+ mHandleOutData_ = data;
if (CreateTimeFd()) {
return DmTimerStatus::DM_STATUS_CREATE_ERROR;
}
mStatus_ = DmTimerStatus::DM_STATUS_RUNNING;
- mThread_ = std::thread(&DmTimer::WaitForTimeout, this);
+ mThread_ = std::thread(&DmTimer::WiteforTimeout, this);
mThread_.detach();
return mStatus_;
@@ -96,15 +97,14 @@ void DmTimer::Stop(int32_t code)
return;
}
-void DmTimer::WaitForTimeout()
+void DmTimer::WiteforTimeout()
{
if (mTimerName_.empty()) {
LOGI("DmTimer is not init");
return;
}
LOGI("DmTimer %s start timer at (%d)s", mTimerName_.c_str(), mTimeOutSec_);
-
- int32_t nfds = epoll_wait(mEpFd_, mEvents_, MAX_EVENTS, mTimeOutSec_ * MILL_SECONDS_PER_SECOND);
+ int32_t nfds = epoll_wait(mEpFd_, mEvents_, MAXEVENTS, mTimeOutSec_ * MILL_SECONDS_PER_SECOND);
if (nfds < 0) {
LOGE("DmTimer %s epoll_wait returned n=%d, error: %d", mTimerName_.c_str(), nfds, errno);
}
@@ -123,7 +123,10 @@ void DmTimer::WaitForTimeout()
return;
}
- mHandle_(mHandleData_);
+ if (mHandle_)
+ mHandle_(mHandleOutData_);
+ if (mTimerHandle_)
+ mTimerHandle_(*this);
Release();
LOGE("DmTimer %s end timer at (%d)s", mTimerName_.c_str(), mTimeOutSec_);
@@ -147,7 +150,7 @@ int32_t DmTimer::CreateTimeFd()
mEv_.data.fd = mTimeFd_[0];
mEv_.events = EPOLLIN | EPOLLET;
- mEpFd_ = epoll_create(MAX_EVENTS);
+ mEpFd_ = epoll_create(MAXEVENTS);
ret = epoll_ctl(mEpFd_, EPOLL_CTL_ADD, mTimeFd_[0], &mEv_);
if (ret != 0) {
Release();
diff --git a/services/devicemanagerservice/src/device_manager_service.cpp b/services/devicemanagerservice/src/device_manager_service.cpp
index 8a02d72652ff492a4d90a471db1de89b8175c9a4..88541338f4102005d69adf7b9ed465ce023482a4 100644
--- a/services/devicemanagerservice/src/device_manager_service.cpp
+++ b/services/devicemanagerservice/src/device_manager_service.cpp
@@ -77,7 +77,7 @@ int32_t DeviceManagerService::Init()
}
}
if (deviceStateMgr_ == nullptr) {
- deviceStateMgr_ = std::make_shared(softbusConnector_, listener_);
+ deviceStateMgr_ = std::make_shared(softbusConnector_, listener_, hiChainConnector_);
if (deviceStateMgr_ == nullptr) {
LOGE("Init failed, deviceStateMgr_ apply for failure");
return DM_MAKE_SHARED_FAIL;
diff --git a/services/devicemanagerservice/src/devicestate/dm_device_state_manager.cpp b/services/devicemanagerservice/src/devicestate/dm_device_state_manager.cpp
index 8fc7214ac674ccef47a525787d456057e7b471c0..1cf0753f7b848ab75f28c14cc534edc2cca2925f 100644
--- a/services/devicemanagerservice/src/devicestate/dm_device_state_manager.cpp
+++ b/services/devicemanagerservice/src/devicestate/dm_device_state_manager.cpp
@@ -20,9 +20,21 @@
#include "dm_log.h"
namespace OHOS {
namespace DistributedHardware {
+static void TimeOut(const DmTimer &timer)
+{
+ LOGE("time out ");
+ if (timer.owner == nullptr) {
+ LOGE("OnDeviceOfflineTimeOut hmDevice owner = nullptr");
+ return;
+ }
+ std::shared_ptr deviceStateMgr = ((HmDevice *)timer.owner)->deviceStateMgr;
+ deviceStateMgr->RmHichainGroup((HmDevice *)timer.owner);
+}
+
DmDeviceStateManager::DmDeviceStateManager(std::shared_ptr softbusConnector,
- std::shared_ptr listener)
- : softbusConnector_(softbusConnector), listener_(listener)
+ std::shared_ptr listener,
+ std::shared_ptr hiChainConnector)
+ : softbusConnector_(softbusConnector), listener_(listener), hiChainConnector_(hiChainConnector)
{
LOGI("DmDeviceStateManager constructor");
profileSoName_ = "libdevicemanagerext_profile.z.so";
@@ -37,6 +49,7 @@ DmDeviceStateManager::~DmDeviceStateManager()
void DmDeviceStateManager::OnDeviceOnline(const std::string &pkgName, const DmDeviceInfo &info)
{
LOGI("DmDeviceStateManager::OnDeviceOnline in");
+ OnDeviceOnline(info);
DmAdapterManager &adapterMgrPtr = DmAdapterManager::GetInstance();
std::shared_ptr profileAdapter = adapterMgrPtr.GetProfileAdapter(profileSoName_);
if (profileAdapter == nullptr) {
@@ -66,6 +79,7 @@ void DmDeviceStateManager::OnDeviceOnline(const std::string &pkgName, const DmDe
void DmDeviceStateManager::OnDeviceOffline(const std::string &pkgName, const DmDeviceInfo &info)
{
+ OnDeviceOffline(info);
DmAdapterManager &adapterMgrPtr = DmAdapterManager::GetInstance();
std::shared_ptr profileAdapter = adapterMgrPtr.GetProfileAdapter(profileSoName_);
if (profileAdapter == nullptr) {
@@ -113,5 +127,51 @@ int32_t DmDeviceStateManager::RegisterSoftbusStateCallback()
std::shared_ptr(shared_from_this()));
return DM_OK;
}
+
+void DmDeviceStateManager::OnDeviceOnline(const DmDeviceInfo &deviceInfo)
+{
+ std::string deviceId;
+ softbusConnector_->GetUdidByNetworkId(deviceInfo.deviceId, deviceId);
+ LOGI("Device<%s>Online", deviceId.c_str());
+ auto iter = mHmDeviceMap_.find(deviceId);
+ if (iter != mHmDeviceMap_.end()) {
+ iter->second->mOfflineTimerPtr->Stop(0);
+ return;
+ }
+
+ HmDevice *hmDevice = new HmDevice(deviceId, shared_from_this());
+ mHmDeviceMap_[hmDevice->mDeviceId] = hmDevice;
+}
+
+void DmDeviceStateManager::OnDeviceOffline(const DmDeviceInfo &deviceInfo)
+{
+ std::string deviceId;
+ softbusConnector_->GetUdidByNetworkId(deviceInfo.deviceId, deviceId);
+ LOGI("Device<%s>Offline", deviceId.c_str());
+ for (auto &iter : mHmDeviceMap_) {
+ if (iter.second->mDeviceId.compare(deviceId) == 0) {
+ iter.second->mOfflineTimerPtr->Start(OFFLINE_TIMEOUT, TimeOut, iter.second);
+ }
+ }
+}
+
+void DmDeviceStateManager::RmHichainGroup(HmDevice *hmDevice)
+{
+ LOGI("Remove DmDevice<%s> Hichain Group", hmDevice->mDeviceId.c_str());
+ hiChainConnector_->DeleteTimeOutGroup(hmDevice->mDeviceId.c_str());
+}
+
+HmDevice::HmDevice(std::string deviceId, std::shared_ptr stateMgr)
+{
+ mDeviceId = deviceId;
+ std::string timerName = "HmDeviceTimer";
+ mOfflineTimerPtr = std::make_shared(timerName);
+ deviceStateMgr = stateMgr;
+}
+
+HmDevice::~HmDevice()
+{
+ mOfflineTimerPtr = nullptr;
+}
} // namespace DistributedHardware
} // namespace OHOS