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

2023-09-07 10:25:09 浏览数 (2)

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

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

image-20230825081852046

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

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

Want

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

接下来我们就开始

如何打开相机

第一步:导入模块

代码语言:javascript复制
import common from '@ohos.app.ability.common';

第二步:获取上下文

代码语言:javascript复制
  let context = getContext(this) as common.UIAbilityContext; // UIAbilityContext

第三步:补充want信息

代码语言:javascript复制
 let want = {
    deviceId: '', // deviceId为空表示本设备
    bundleName: 'com.ohos.camera',
    abilityName: 'com.ohos.camera.MainAbility'
  };

第四步:启动

代码语言:javascript复制
  context.startAbility(want, (err) => {
    console.error(`Failed to startAbility. Code: ${err.code}, message: ${err.message}`);
  });

完整源码

代码语言:javascript复制
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

第一步:导入模块

代码语言:javascript复制
import common from '@ohos.app.ability.common';

第二步:获取上下文

代码语言:javascript复制
  let context = getContext(this) as common.UIAbilityContext; // UIAbilityContext

第三步:补充want信息

代码语言:javascript复制
let want = {
 
         deviceId: '', // deviceId为空表示本设备
            bundleName: 'com.example.map',
            abilityName: 'EntryAbility',
          };

第四步:启动

代码语言:javascript复制
  context.startAbility(want, (err) => {
    console.error(`Failed to startAbility. Code: ${err.code}, message: ${err.message}`);
  });

完整源码

代码语言:javascript复制
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%')
  }
}

好的,本文到此结束。

0 人点赞