From a7f79e1309e35e3f89bf11fe8363bfd4de35face Mon Sep 17 00:00:00 2001 From: zhangxinlogo Date: Thu, 20 Jan 2022 10:01:37 +0800 Subject: [PATCH 1/2] add eTSCall Signed-off-by: zhangxinlogo --- Telephony/eTSCall/README_zh.md | 15 ++++ Telephony/eTSCall/build.gradle | 34 ++++++++ Telephony/eTSCall/entry/build.gradle | 21 +++++ Telephony/eTSCall/entry/src/main/config.json | 73 ++++++++++++++++++ .../entry/src/main/ets/MainAbility/app.ets | 23 ++++++ .../main/ets/MainAbility/common/callView.ets | 72 +++++++++++++++++ .../src/main/ets/MainAbility/pages/index.ets | 69 +++++++++++++++++ .../main/resources/base/element/string.json | 16 ++++ .../main/resources/base/media/call_off.png | Bin 0 -> 1385 bytes .../src/main/resources/base/media/call_on.png | Bin 0 -> 1376 bytes .../src/main/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../src/main/resources/en/element/string.json | 16 ++++ .../src/main/resources/zh/element/string.json | 16 ++++ Telephony/eTSCall/screenshots/device/call.png | Bin 0 -> 23958 bytes Telephony/eTSCall/settings.gradle | 1 + 15 files changed, 356 insertions(+) create mode 100644 Telephony/eTSCall/README_zh.md create mode 100644 Telephony/eTSCall/build.gradle create mode 100644 Telephony/eTSCall/entry/build.gradle create mode 100644 Telephony/eTSCall/entry/src/main/config.json create mode 100644 Telephony/eTSCall/entry/src/main/ets/MainAbility/app.ets create mode 100644 Telephony/eTSCall/entry/src/main/ets/MainAbility/common/callView.ets create mode 100644 Telephony/eTSCall/entry/src/main/ets/MainAbility/pages/index.ets create mode 100644 Telephony/eTSCall/entry/src/main/resources/base/element/string.json create mode 100644 Telephony/eTSCall/entry/src/main/resources/base/media/call_off.png create mode 100644 Telephony/eTSCall/entry/src/main/resources/base/media/call_on.png create mode 100644 Telephony/eTSCall/entry/src/main/resources/base/media/icon.png create mode 100644 Telephony/eTSCall/entry/src/main/resources/en/element/string.json create mode 100644 Telephony/eTSCall/entry/src/main/resources/zh/element/string.json create mode 100644 Telephony/eTSCall/screenshots/device/call.png create mode 100644 Telephony/eTSCall/settings.gradle diff --git a/Telephony/eTSCall/README_zh.md b/Telephony/eTSCall/README_zh.md new file mode 100644 index 0000000000..e88ae2c9d7 --- /dev/null +++ b/Telephony/eTSCall/README_zh.md @@ -0,0 +1,15 @@ +# 【电话服务】拨打电话 + +### 简介 + +本示例通过输入电话,进行电话拨打,及电话相关信息的显示。 + +### 使用说明 + +1.输入电话号码后,点击**电话**按钮,进行拨打电话。 + +2.拨打电话后文本框会显示拨打是否成功,是否存在通话,通话状态,是否紧急号码,格式化后的电话号码。 + +### 约束与限制 + +本示例仅支持在标准系统上运行。 \ No newline at end of file diff --git a/Telephony/eTSCall/build.gradle b/Telephony/eTSCall/build.gradle new file mode 100644 index 0000000000..f1b1a556a0 --- /dev/null +++ b/Telephony/eTSCall/build.gradle @@ -0,0 +1,34 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +apply plugin: 'com.huawei.ohos.app' + +//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510 +ohos { + compileSdkVersion 8 + supportSystem "standard" +} + +buildscript { + repositories { + maven { + url 'https://repo.huaweicloud.com/repository/maven/' + } + maven { + url 'https://developer.huawei.com/repo/' + } + } + dependencies { + classpath 'com.huawei.ohos:hap:3.0.5.2' + classpath 'com.huawei.ohos:decctest:1.2.7.2' + } +} + +allprojects { + repositories { + maven { + url 'https://repo.huaweicloud.com/repository/maven/' + } + maven { + url 'https://developer.huawei.com/repo/' + } + } +} diff --git a/Telephony/eTSCall/entry/build.gradle b/Telephony/eTSCall/entry/build.gradle new file mode 100644 index 0000000000..05a33cd3ad --- /dev/null +++ b/Telephony/eTSCall/entry/build.gradle @@ -0,0 +1,21 @@ +apply plugin: 'com.huawei.ohos.hap' +//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510 +ohos { + compileSdkVersion 8 + defaultConfig { + compatibleSdkVersion 8 + } + buildTypes { + release { + proguardOpt { + proguardEnabled false + rulesFiles 'proguard-rules.pro' + } + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar', '*.har']) + testImplementation 'junit:junit:4.13.1' +} diff --git a/Telephony/eTSCall/entry/src/main/config.json b/Telephony/eTSCall/entry/src/main/config.json new file mode 100644 index 0000000000..7a0d2be55b --- /dev/null +++ b/Telephony/eTSCall/entry/src/main/config.json @@ -0,0 +1,73 @@ +{ + "app": { + "bundleName": "ohos.samples.etscall", + "vendor": "samples", + "version": { + "code": 1000000, + "name": "1.0.0" + } + }, + "deviceConfig": {}, + "module": { + "package": "ohos.samples.etscall", + "name": ".MyApplication", + "mainAbility": ".MainAbility", + "srcPath": "", + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "entry", + "moduleType": "entry", + "installationFree": false + }, + "abilities": [ + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "orientation": "unspecified", + "visible": true, + "srcPath": "MainAbility", + "name": ".MainAbility", + "srcLanguage": "ets", + "icon": "$media:icon", + "description": "$string:description_mainability", + "formsEnabled": false, + "label": "$string:entry_MainAbility", + "type": "page", + "launchType": "standard" + } + ], + "js": [ + { + "mode": { + "syntax": "ets", + "type": "pageAbility" + }, + "pages": [ + "pages/index" + ], + "name": ".MainAbility", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } + } + ], + "reqPermissions": [ + { + "name": "ohos.permission.PLACE_CALL" + } + ] + } + +} \ No newline at end of file diff --git a/Telephony/eTSCall/entry/src/main/ets/MainAbility/app.ets b/Telephony/eTSCall/entry/src/main/ets/MainAbility/app.ets new file mode 100644 index 0000000000..bf28e58b36 --- /dev/null +++ b/Telephony/eTSCall/entry/src/main/ets/MainAbility/app.ets @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default { + onCreate() { + console.info('Application onCreate') + }, + onDestroy() { + console.info('Application onDestroy') + }, +} \ No newline at end of file diff --git a/Telephony/eTSCall/entry/src/main/ets/MainAbility/common/callView.ets b/Telephony/eTSCall/entry/src/main/ets/MainAbility/common/callView.ets new file mode 100644 index 0000000000..cf7cc551dd --- /dev/null +++ b/Telephony/eTSCall/entry/src/main/ets/MainAbility/common/callView.ets @@ -0,0 +1,72 @@ +/* + * 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 call from '@ohos.telephony.call' + +@Component +export struct CallView { + private on: Resource = $r("app.media.call_on") + private off: Resource = $r('app.media.call_off') + @State src: Resource = this.off + @Link input: string + @Link output: string + + build() { + Column() { + Image(this.src) + .width(70) + .height(70) + .onClick(() => { + if (this.src == this.on) { + this.src = this.off + } else { + this.src = this.on + call.dial(this.input, { extras: false }, (err, data) => { + this.output = this.output + `dial: ${JSON.stringify(data)}\n` + console.log(`callback: dial err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); + }) + + call.hasCall((err, data) => { + this.output = this.output + `hasCall: ${JSON.stringify(data)}\n` + console.log(`callback: hasCall err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); + }) + + call.getCallState((err, data) => { + this.output = this.output + `getCallState: ${JSON.stringify(data)}\n` + console.log(`callback: getCallState err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); + }) + + call.isEmergencyPhoneNumber(this.input, (err, data) => { + this.output = this.output + `isEmergencyPhoneNumber: ${JSON.stringify(data)}\n` + console.log(`callback: isEmergencyPhoneNumber err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); + }) + + call.formatPhoneNumber(this.input, (err, data) => { + this.output = this.output + `formatPhoneNumber: ${JSON.stringify(data)}\n` + console.log(`callback: formatPhoneNumber err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); + }) + + call.formatPhoneNumberToE164(this.input, "CN", (err, data) => { + this.output = this.output + `formatPhoneNumberToE164: ${JSON.stringify(data)}\n` + console.log(`callback: formatPhoneNumberToE164 err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); + }) + } + }) + .onFinish(() => { + this.src = this.off + }) + } + } +} \ No newline at end of file diff --git a/Telephony/eTSCall/entry/src/main/ets/MainAbility/pages/index.ets b/Telephony/eTSCall/entry/src/main/ets/MainAbility/pages/index.ets new file mode 100644 index 0000000000..7549b539d8 --- /dev/null +++ b/Telephony/eTSCall/entry/src/main/ets/MainAbility/pages/index.ets @@ -0,0 +1,69 @@ +/* + * 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 {CallView} from '../common/callView' + +@Entry +@Component +struct Index { + private on: Resource = $r("app.media.call_on") + private off: Resource = $r('app.media.call_off') + @State src: Resource = this.off + @State input: string = '' + @State output: string = `call information\n` + + build() { + Flex() { + Column() { + Text($r('app.string.entry_MainAbility')) + .width('100%') + .height(50) + .backgroundColor('#0D9FFB') + .fontColor(Color.White) + .fontSize(20) + .padding({ left: 20 }) + Scroll() { + Column() { + TextInput({ placeholder: $r('app.string.input_hint') }) + .type(InputType.Number) + .placeholderColor(Color.Grey) + .placeholderFont({ size: 20, weight: FontWeight.Normal, family: "sans-serif", style: FontStyle.Normal }) + .enterKeyType(EnterKeyType.Next) + .caretColor('#0D9FFB') + .height(60) + .fontSize(30) + .fontWeight(FontWeight.Bold) + .fontFamily("cursive") + .maxLength(11) + .margin({ left: 20, right: 20, top: 20, bottom: 20 }) + .onChange((value: string) => { + this.input = value + }) + CallView({ input: $input, output: $output }) + Text(this.output) + .width('90%') + .height('45%') + .fontSize(20) + .padding(15) + .margin({ left: 20, right: 20, top: 20 }) + .border({ width: 2, radius: 15, color: Color.Grey }) + } + } + } + } + .height('100%') + .width('100%') + } +} \ No newline at end of file diff --git a/Telephony/eTSCall/entry/src/main/resources/base/element/string.json b/Telephony/eTSCall/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000000..8a940d42fb --- /dev/null +++ b/Telephony/eTSCall/entry/src/main/resources/base/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "entry_MainAbility", + "value": "eTSCall" + }, + { + "name": "description_mainability", + "value": "eTS_Empty Ability" + }, + { + "name": "input_hint", + "value": "enter a phone number" + } + ] +} \ No newline at end of file diff --git a/Telephony/eTSCall/entry/src/main/resources/base/media/call_off.png b/Telephony/eTSCall/entry/src/main/resources/base/media/call_off.png new file mode 100644 index 0000000000000000000000000000000000000000..d6a4fb8e296bceb58dd1eaf5f7c7ca8ef868b57d GIT binary patch literal 1385 zcmV-v1(y1WP)Px)BS}O-RA@uZnn$QzRTPH5*d`Wmph)cEKyYA<1&qC6LqQb87Aq>TM^OIuIKgd%@Tn_JUm$9f*hn5s@#feYx*=%HHRl+?NH1mvGizd;RK zfVC@+JN#IAo&a7MV(VGc6tX9<2XF|m9`FM2LpE+$wLvfk0&os+RowHvfWNy=WT5ve0Z)Z}oC{ptB)1KKhU$I12RLdV#Y)B8 z4IBw*cN+Qss0qL>z;nPgfL~!I$Gg;V3}PXS<{(m>iyU&Hpa>*$P#)_oK!S>spG(HQ7P0QLhO1-1iTZ;|#PuxZ2l zUx2y57bV*C;N2E@4cH%eEL|Z{Z59C9WEzQAY+<-7++7d7ik1lAeQ!$wpxe9^xVS@% zxxT4z6aCcjzDUa!X7xPYy#%lupb>5eeABUmUTX6eo=Mrk2EfibQ+zb3G0I!ek(2(PRFgJn+_qKz%9Jq# z+X2ABJ^L@8F7glt?E`yt$lBIE+?iK5U1mIM{cwvkkuWor@nIKg&6ul_2 zTHW`hCS^Uo+9;6eJzkE!r8!Y4?FhVBv&igJH?8o6F}esPMIQ3~NhD*XI=VCHh#No)t5Il64kVcBt#9wW!Z+tCT1sueM>XW$NKv zp^d!8^8VJq)Y?{YO-^I06u>yY-98(|f?5Mu6ZkyRdHYKaOq!^(vE@Qri^c>qRI9W} zwbQ!}#diB*V72IcG`1EMWXsUVn41!GZ9c?%-KK*<+dosLHci%^I&d>N8%V&@jG%T} z)8?+ybY>=J1Zg(VIHlc>bedZolnlsZFC4e)29CbBFq~XSdsva00000NkvXXu0mjf9`}xP literal 0 HcmV?d00001 diff --git a/Telephony/eTSCall/entry/src/main/resources/base/media/call_on.png b/Telephony/eTSCall/entry/src/main/resources/base/media/call_on.png new file mode 100644 index 0000000000000000000000000000000000000000..a01a335306d993c95816109c8b307decd3f26e1b GIT binary patch literal 1376 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 literal 0 HcmV?d00001 diff --git a/Telephony/eTSCall/settings.gradle b/Telephony/eTSCall/settings.gradle new file mode 100644 index 0000000000..4773db7323 --- /dev/null +++ b/Telephony/eTSCall/settings.gradle @@ -0,0 +1 @@ +include ':entry' -- Gitee From f8861da701e386d43b2945aff2ac1e6c766b8cf5 Mon Sep 17 00:00:00 2001 From: zhangxinlogo Date: Thu, 20 Jan 2022 11:11:29 +0800 Subject: [PATCH 2/2] add eTSCall Signed-off-by: zhangxinlogo --- Telephony/eTSCall/README_zh.md | 2 +- .../eTSCall/entry/src/main/ets/MainAbility/pages/index.ets | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/Telephony/eTSCall/README_zh.md b/Telephony/eTSCall/README_zh.md index e88ae2c9d7..5cca286066 100644 --- a/Telephony/eTSCall/README_zh.md +++ b/Telephony/eTSCall/README_zh.md @@ -1,4 +1,4 @@ -# 【电话服务】拨打电话 +# 电话服务-拨打电话 ### 简介 diff --git a/Telephony/eTSCall/entry/src/main/ets/MainAbility/pages/index.ets b/Telephony/eTSCall/entry/src/main/ets/MainAbility/pages/index.ets index 7549b539d8..3d73f933f8 100644 --- a/Telephony/eTSCall/entry/src/main/ets/MainAbility/pages/index.ets +++ b/Telephony/eTSCall/entry/src/main/ets/MainAbility/pages/index.ets @@ -13,14 +13,11 @@ * limitations under the License. */ -import {CallView} from '../common/callView' +import { CallView } from '../common/callView' @Entry @Component struct Index { - private on: Resource = $r("app.media.call_on") - private off: Resource = $r('app.media.call_off') - @State src: Resource = this.off @State input: string = '' @State output: string = `call information\n` -- Gitee