如何打开相机和显式打开设备内UIAbility【坚果派-坚果】

如何打开相机和显式打开设备内UIAbility【坚果派-坚果】

今天在拉瓦尔社区看到捣蛋的程序猿在求助的问题

原文链接:

https://laval.csdn.net/64e69d6c2ea0282871eaa75d.html

image-20230825081852046

坚果派这个民间组织的作用就出来了。

在这里给大家先介绍一下后面要用到的want。

Want

Want是对象间信息传递的载体,可以用于应用组件间的信息传递。Want的使用场景之一是作为startAbility的参数,其包含了指定的启动目标,以及启动时需携带的相关数据,例如bundleName和abilityName字段分别指明目标Ability所在应用的包名以及对应包内的Ability名称。当UIAbilityA需要启动UIAbilityB并传入一些数据时,可使用Want作为载体将这些数据传递给UIAbilityB。

接下来我们就开始

如何打开相机

第一步:导入模块

import common from '@ohos.app.ability.common';

第二步:获取上下文

  let context = getContext(this) as common.UIAbilityContext; // UIAbilityContext

第三步:补充want信息

 let want = {
    deviceId: '', // deviceId为空表示本设备
    bundleName: 'com.ohos.camera',
    abilityName: 'com.ohos.camera.MainAbility'
  };

第四步:启动

  context.startAbility(want, (err) => {
    console.error(`Failed to startAbility. Code: ${err.code}, message: ${err.message}`);
  });

完整源码

import common from '@ohos.app.ability.common';

@Entry
@Component
struct Index {


  build() {
    Row() {
      Column() {
       

        Text("显式打开相机")
          .fontSize(36)
          .fontWeight(FontWeight.Bold).onClick(() => {

          let context = getContext(this) as common.UIAbilityContext; // UIAbilityContext

          let want = {
            deviceId: '', // deviceId为空表示本设备
            bundleName: 'com.ohos.camera',
            abilityName: 'com.ohos.camera.MainAbility'
          };

          context.startAbility(want, (err) => {
            console.error(`Failed to startAbility. Code: ${err.code}, message: ${err.message}`);
          });


        })
      }
      .width('100%')
    }
    .height('100%')
  }
}

接着我们来看他的另一个问题

image-20230825082333131

https://laval.csdn.net/64e566284165333c3076a6a1.html

显式打开设备内UIAbility

第一步:导入模块

import common from '@ohos.app.ability.common';

第二步:获取上下文

  let context = getContext(this) as common.UIAbilityContext; // UIAbilityContext

第三步:补充want信息

let want = {
 
         deviceId: '', // deviceId为空表示本设备
            bundleName: 'com.example.map',
            abilityName: 'EntryAbility',
          };

第四步:启动

  context.startAbility(want, (err) => {
    console.error(`Failed to startAbility. Code: ${err.code}, message: ${err.message}`);
  });

完整源码

import common from '@ohos.app.ability.common';

@Entry
@Component
struct Index {


  build() {
    Row() {
      Column() {
       

    Text("显式打开设备内UIAbility")
          .fontSize(36)
          .fontWeight(FontWeight.Bold).onClick(() => {

          let context = getContext(this) as common.UIAbilityContext; // UIAbilityContext

          let want = {
 
         deviceId: '', // deviceId为空表示本设备
            bundleName: 'com.example.map',
            abilityName: 'EntryAbility',
          };

          context.startAbility(want, (err) => {
            console.error(`Failed to startAbility. Code: ${err.code}, message: ${err.message}`);
          });


        })
      }
      .width('100%')
    }
    .height('100%')
  }
}

好的,本文到此结束。

欢迎大家加入坚果派,共建鸿蒙生态。文章来源地址https://uudwc.com/A/db52N

原文地址:https://blog.csdn.net/qq_39132095/article/details/132487543

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年09月24日 07:35
[JAVAee]Spring MVC
下一篇 2023年09月24日 07:36