如何打开相机和显式打开设备内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%')
}
}
好的,本文到此结束。