首页 > 其他分享 >HarmonyOS的连接艺术之四:便捷访问系统功能

HarmonyOS的连接艺术之四:便捷访问系统功能

时间:2024-10-20 12:58:39浏览次数:6  
标签:const windowStage 示例 便捷 HarmonyOS extends common ohos 之四

本文旨在深入探讨华为鸿蒙HarmonyOS Next系统(截止目前API12)的技术细节,基于实际开发实践进行总结。
主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。
本文为原创内容,任何形式的转载必须注明出处及原作者。

HarmonyOS 系统提供了丰富的系统应用,例如相机、文件管理、联系人、设置、电话、日历等。开发者可以通过应用跳转功能,方便地调用这些系统应用,提升应用的功能性和用户体验。

使用系统 Picker 组件

系统 Picker 组件是一种便捷的方式,可以让用户选择系统资源,例如图片、文件、联系人等,而不需要申请额外的权限。以下是一些常用的系统 Picker 组件:
1. 相机

  • CameraPicker:用于拍照和录制视频。
  • BarcodeScannerPicker:用于扫描二维码或条形码。
  • CardRecognizerPicker:用于识别各类证件信息。
    示例代码
import { CameraPicker } from '@ohos.arkui.ability.camera';
export default class EntryAbility extends common.UIAbility {
  onWindowStageCreate(windowStage: common.WindowStage) {
    const cameraPicker = new CameraPicker();
    cameraPicker.startCamera({
      type: CameraPickerType.PICTURE,
      onResult: (data) => {
        // 处理拍照结果
      }
    });
  }
}

2. 文件管理

  • DocumentViewPicker:用于访问和保存公共目录中的文档类文件。
  • AudioViewPicker:用于访问和保存公共目录的图片或视频文件。
    示例代码
import { DocumentViewPicker } from '@ohos.arkui.ability.filemanager';
export default class EntryAbility extends common.UIAbility {
  onWindowStageCreate(windowStage: common.WindowStage) {
    const documentPicker = new DocumentViewPicker();
    documentPicker.startDocumentView({
      type: DocumentViewPickerType.ALL,
      onResult: (data) => {
        // 处理文档选择结果
      }
    });
  }
}

3. 联系人

  • ContactsPicker:用于选择联系人。
    示例代码
import { ContactsPicker } from '@ohos.arkui.ability.contacts';
export default class EntryAbility extends common.UIAbility {
  onWindowStageCreate(windowStage: common.WindowStage) {
    const contactsPicker = new ContactsPicker();
    contactsPicker.startContacts({
      type: ContactsPickerType.ALL,
      onResult: (data) => {
        // 处理联系人选择结果
      }
    });
  }
}

使用特定接口

除了系统 Picker 组件,HarmonyOS 还提供了其他一些接口,可以用于跳转系统应用:
1. 设置

  • SettingAbility:用于打开设置应用。
    示例代码
import { common } from '@ohos.app.ability.common';
export default class EntryAbility extends common.UIAbility {
  onWindowStageCreate(windowStage: common.WindowStage) {
    const context = this.getContext(this) as common.UIAbilityContext;
    const want: common.Want = {
      action: 'ohos.intent.action.SHOW_SETTINGS',
      uri: "appsetting"
    };
    context.startAbility(want);
  }
}

2. 电话

  • TelephonyKit 提供了 makeCall 接口,可以用于拨打电话。
    示例代码
import { Telephony } from '@ohos.arkui.ability.telephony';
export default class EntryAbility extends common.UIAbility {
  onWindowStageCreate(windowStage: common.WindowStage) {
    const telephony = Telephony.getTelephony();
    telephony.makeCall("10086");
  }
}

3. 日历

  • CalendarAbility:用于打开日历应用。
    示例代码
import { common } from '@ohos.app.ability.common';
export default class EntryAbility extends common.UIAbility {
  onWindowStageCreate(windowStage: common.WindowStage) {
    const context = this.getContext(this) as common.UIAbilityContext;
    const want: common.Want = {
      action: 'ohos.intent.action.SHOW_CALENDAR',
      uri: "calendar"
    };
    context.startAbility(want);
  }
}

举(N)个栗子

示例 1:使用 CameraPicker 拍照

import { CameraPicker } from '@ohos.arkui.ability.camera';
export default class EntryAbility extends common.UIAbility {
  onWindowStageCreate(windowStage: common.WindowStage) {
    const cameraPicker = new CameraPicker();
    cameraPicker.startCamera({
      type: CameraPickerType.PICTURE,
      onResult: (data) => {
        // 处理拍照结果
      }
    });
  }
}

示例 2:使用 DocumentViewPicker 选择文档

import { DocumentViewPicker } from '@ohos.arkui.ability.filemanager';
export default class EntryAbility extends common.UIAbility {
  onWindowStageCreate(windowStage: common.WindowStage) {
    const documentPicker = new DocumentViewPicker();
    documentPicker.startDocumentView({
      type: DocumentViewPickerType.ALL,
      onResult: (data) => {
        // 处理文档选择结果
      }
    });
  }
}

示例 3:使用 ContactsPicker 选择联系人

import { ContactsPicker } from '@ohos.arkui.ability.contacts';
export default class EntryAbility extends common.UIAbility {
  onWindowStageCreate(windowStage: common.WindowStage) {
    const contactsPicker = new ContactsPicker();
    contactsPicker.startContacts({
      type: ContactsPickerType.ALL,
      onResult: (data) => {
        // 处理联系人选择结果
      }
    });
  }
}

示例 4:拨打电话

import { Telephony } from '@ohos.arkui.ability.telephony';
export default class EntryAbility extends common.UIAbility {
  onWindowStageCreate(windowStage: common.WindowStage) {
    const telephony = Telephony.getTelephony();
    telephony.makeCall("10086");
  }
}

示例 5:打开设置应用

import { common } from '@ohos.app.ability.common';
export default class EntryAbility extends common.UIAbility {
  onWindowStageCreate(windowStage: common.WindowStage) {
    const context = this.getContext(this) as common.UIAbilityContext;
    const want: common.Want = {
      action: 'ohos.intent.action.SHOW_SETTINGS',
      uri: "appsetting"
    };
    context.startAbility(want);
  }
}

总结
拉起系统应用是应用间跳转的重要功能,它能够方便地调用系统应用,提升应用的功能性和用户体验,我们可以根据实际需求选择合适的系统应用类型。

标签:const,windowStage,示例,便捷,HarmonyOS,extends,common,ohos,之四
From: https://www.cnblogs.com/samex/p/18487148

相关文章

  • HarmonyOS的连接艺术之一:让应用之间无缝协作
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。应用之间协作的需求越来越普遍。例如,......
  • HarmonyOS:保存你的应用数据
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • HarmonyOS:使用HTTP访问网络
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • HarmonyOS:Navigation组件的使用
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • HarmonyOS Stage 模型:进程、线程与配置文件之浅析
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。HarmonyOS的Stage模型为开发者提供......
  • HarmonyOS设置组件导航
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • 【HarmonyOS】鸿蒙应用蓝牙功能实现 (一)
    【HarmonyOS】鸿蒙应用蓝牙功能实现前言蓝牙技术是一种无线通信技术,可以在短距离内传输数据。它是由爱立信公司于1994年提出的,使用2.4GHz的ISM频段,可以在10米左右的距离内进行通信。可以用于连接手机、耳机、音箱、键盘、鼠标、打印机等各种设备。特点是低功耗、低成本、简单易用......
  • 如何在 HarmonyOS NEXT 中使用 @Builder 装饰器优化 UI 组件的复用?
    摘要在鸿蒙NEXT开发中,@Builder 装饰器是一种轻量级的UI元素复用机制,它允许开发者将重复使用的UI元素抽象成一个方法,并在 build() 方法中多次调用,以实现UI结构的复用。以下是如何使用 @Builder 装饰器来优化UI组件复用的详细介绍和案例分析:自定义构建函数@Bui......
  • 智慧养老认证 app:开启便捷养老新时代
    在当今数字化高速发展的时代,智慧养老认证app应运而生,为老年人的生活带来了全新的变革与便利。它犹如一把钥匙,开启了便捷养老的新时代大门。然而,如同任何新兴事物一样,智慧养老认证app在发展过程中也面临着一些问题与挑战。一、可能面临的问题技术接受度问题:许多老年人对新技......
  • DevEco Studio:HDC(HarmonyOS Device Connector)常见命令
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......