回复
9、设备能力调用全攻略:调用相机、定位与系统分享(附实操代码) 原创
wx5eb6c0016c3c7
发布于 2025-5-13 11:25
浏览
0收藏
🎯 一、目标功能
实现一个页面,包含以下按钮和功能:
- 📸 调用系统相机拍照,预览照片
- 📍 获取当前定位信息(经纬度)
- 📤 一键系统分享文本内容
最终效果如图👇
📷 二、相机拍照功能实现
1. 添加权限
在 module.json5 添加:
json
复制编辑
"requestPermissions": [
{ "name": "ohos.permission.CAMERA" },
{ "name": "ohos.permission.WRITE_MEDIA" }
]
2. 调用系统相机并保存图片
ts
复制编辑
import mediaLibrary from '@ohos.multimedia.mediaLibrary';
import promptAction from '@ohos.promptAction';
import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
import featureAbility from '@ohos.ability.featureAbility';
async function takePhoto() {
const context = featureAbility.getContext();
const atManager = abilityAccessCtrl.createAtManager();
const result = await atManager.requestPermissionsFromUser(context, ['ohos.permission.CAMERA']);
if (result.authResults[0] === 0) {
// 打开系统相机(这里只做跳转,具体需集成子应用或系统调用)
promptAction.showToast({ message: '📸 相机调用成功!此处可嵌入拍照组件' });
}
}
📌 注:真实拍照功能在部分设备需使用
ohos.media.image模块或子组件封装能力实现。
📍 三、获取当前定位功能实现
1. 添加定位权限
json
复制编辑
"requestPermissions": [
{ "name": "ohos.permission.LOCATION" }
]
2. 调用定位服务
ts
复制编辑
import geolocation from '@ohos.geoLocation';
async function getLocation() {
try {
const result = await geolocation.getCurrentLocation();
promptAction.showToast({
message: `当前经纬度:${result.latitude}, ${result.longitude}`
});
} catch (err) {
promptAction.showToast({ message: '获取定位失败' });
}
}
📤 四、一键分享内容
ts
复制编辑
import { ShareFeature } from '@ohos.share';
function shareText() {
ShareFeature.shareText({
text: '鸿蒙太强了,我正在开发 HarmonyOS App!',
title: '分享内容',
dialogTitle: '分享到'
});
}
🧪 五、完整界面组件(含三功能)
ts
复制编辑
@Entry
@Component
struct DeviceToolkit {
build() {
Column() {
Button('拍照').onClick(() => takePhoto())
Button('获取定位').onClick(() => getLocation())
Button('系统分享').onClick(() => shareText())
}
.space(20)
.padding(30)
.alignItems(HorizontalAlign.Center)
}
}
📌 七、常见问题总结
| 问题 | 解决方案 |
|---|---|
| 权限请求无效 | 检查是否调用 requestPermissionsFromUser |
| 相机无反应 | 使用模拟器调试需配置子应用相机模块 |
| 定位失败 | 确保开启 GPS 并授权系统定位权限 |
| 分享无效 | 分享组件需目标设备支持对应通道 |
📘 第十篇预告
《HarmonyOS NEXT适配与开发趋势:你准备好了吗?》
将全面解析 ArkTS 的未来、原生鸿蒙的挑战与红利!
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
赞
收藏
回复
相关推荐




















