鸿蒙开发拨打电话-获取当前位置服务
温馨提示:本文最后更新于2024年10月20日 07:45,若内容或图片失效,请在下方留言或联系博主。
对于三方应用,开发者可以使用makeCall接口,拉起系统电话应用,用户可以自行呼出通话。
-
导入call和observer模块。
-
调用hasVoiceCapability,确认当前设备是否支持拨号。
-
调用makeCall接口,跳转到拨号界面并显示待拨号的号码。
1. 调用拨打电话:拨打电话
// import需要的模块
import { call, observer } from '@kit.TelephonyKit';
// 呼叫联系人
makeCall(phone: string) {
// 分手机/平板/PC 有的不能拨号(判断是否插卡)
// call.hasVoiceCapability() 判断当前设备是否支持拨号功能
if (call.hasVoiceCapability()) {
// 转到拨号页面 显示被叫号码 (第三方应用,只能跳转到拨号页面)
call.makeCall(phone)
promptAction.showToast({ message: '点击了紧急呼叫联系人,呼叫号码为:' + phone })
} else {
promptAction.showToast({ message: '该设备暂不支持' })
}
}
// 调用拨打
this.makeCall('10086')
2. 获取当前位置服务(获取位置授权-获取位置信息):位置服务
位置服务提供GNSS定位、网络定位(蜂窝基站、WLAN、蓝牙定位技术)、地理编码、逆地理编码、国家码和地理围栏等基本功能。
import { Permissions } from '@kit.AbilityKit';
import { promptAction } from '@kit.ArkUI';
import { permissionManager } from '.';
import { geoLocationManager } from '@kit.LocationKit';
// 位置权限申请
class LocationManager {
private permissions: Permissions[] = [
'ohos.permission.APPROXIMATELY_LOCATION', // 大概位置
'ohos.permission.LOCATION',// 精确位置
]
// 申请权限
async requestPermissions() {
try {
// 申请权限
await permissionManager.requestPermissions(this.permissions)
} catch {
promptAction.showDialog({
alignment: DialogAlignment.Center,
title: '温馨提示',
message: '定位功能需要获取权限,请在系统设置中打开定位开关',
buttons: [
{ text: '取消', color: $r('app.color.font_sub') },
{ text: '立即开启', color: $r('app.color.brand') }
]
})
.then((res) => {
// 打开设置页
if (res.index === 1) {
permissionManager.openPermissionSettingsPage()
}
})
}
}
// 获取当前位置
async getCurrentAddress() {
try {
// 1. 获取定位信息(经纬度)
const location = await geoLocationManager.getCurrentLocation()
// 2. 根据地址 进行逆向解析
// Windows 模拟器目前不支持调用 逆地理编码服务
const geoAddress = await geoLocationManager.getAddressesFromLocation({
locale: 'zh', // 返回结果 中英文
latitude: location.latitude, // 经度
longitude: location.longitude, // 纬度
maxItems: 1
})
AlertDialog.show({ message: JSON.stringify(geoAddress, null, 2) })
} catch (err) {
// AlertDialog.show({ message: JSON.stringify(err, null, 2) })
}
}
}
export const locationManager = new LocationManager()