鸿蒙HarmonyOS开发:系统服务
拨打电话
call.makeCall
跳转到拨号界面,并显示待拨出的号码。使用callback异步回调。
makeCall(phoneNumber: string, callback: AsyncCallback<void>): void
import { call } from '@kit.TelephonyKit';import { BusinessError } from '@kit.BasicServicesKit';call.makeCall("138xxxxxxxx", (err: BusinessError) => {if (err) {console.error(`makeCall fail, err->${JSON.stringify(err)}`);} else {console.log(`makeCall success`);}
});
import { BusinessError } from '@kit.BasicServicesKit';call.makeCall("138xxxxxxxx").then(() => {console.log(`makeCall success`);
}).catch((err: BusinessError) => {console.error(`makeCall fail, promise: err->${JSON.stringify(err)}`);
});
网络搜索
需要权限:ohos.permission.GET_NETWORK_INFO
import { radio } from '@kit.TelephonyKit';
radio.getSignalInformationSync
获取指定SIM卡槽对应的注册网络信号强度信息列表。
卡槽ID。
- 0:卡槽1
- 1:卡槽2
let slotId: number = 0;
let signalInfo: Array<radio.SignalInformation> = radio.getSignalInformationSync(slotId);
console.log(`signal information size is:` + signalInfo.length);
联系人
提供联系人管理能力,包括添加联系人、删除联系人、更新联系人等。
import { contact } from '@kit.ContactsKit';
需要权限:ohos.permission.WRITE_CONTACTS
添加联系人,使用Promise方式作为异步方法。
addContact(context: Context, contact: Contact): Promise<number>
import { BusinessError } from '@kit.BasicServicesKit';// 获取contextlet context = getContext(this) as Context;let promise = contact.addContact(context,{name: {fullName: 'xxx'},phoneNumbers: [{phoneNumber: '138xxxxxxxx'}]});promise.then((data) => {console.log(`addContact success: data->${JSON.stringify(data)}`);}).catch((err: BusinessError) => {console.error(`addContact fail: err->${JSON.stringify(err)}`);});
删除联系人,使用Promise方式作为异步方法。
deleteContact(context: Context, key: string): Promise<void>
import { BusinessError } from '@kit.BasicServicesKit';
// 获取context
let context = getContext(this) as Context;
let promise = contact.deleteContact(context, 'xxx');
promise.then(() => {console.log(`deleteContact success`);
}).catch((err: BusinessError) => {console.error(`deleteContact fail: err->${JSON.stringify(err)}`);
});
位置服务
import { geoLocationManager } from '@kit.LocationKit';
获取当前位置,使用Promise异步回调。
getCurrentLocation(request?: CurrentLocationRequest | SingleLocationRequest): Promise<Location>
调用逆地理编码服务,将坐标转换为地理描述,使用Promise异步回调。
getAddressesFromLocation(request: ReverseGeoCodeRequest): Promise<Array<GeoAddress>>;
import { geoLocationManager } from '@kit.LocationKit';
import { BusinessError } from '@kit.BasicServicesKit'
let reverseGeocodeRequest:geoLocationManager.ReverseGeoCodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
try {geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest).then((data) => {console.log('getAddressesFromLocation: ' + JSON.stringify(data));}).catch((error:BusinessError) => {console.error('promise, getAddressesFromLocation: error=' + JSON.stringify(error));});
} catch (err) {console.error("errCode:" + JSON.stringify(err));
}
获取上一次位置。
import { geoLocationManager } from '@kit.LocationKit';
try {let location = geoLocationManager.getLastLocation();
} catch (err) {console.error("errCode:" + JSON.stringify(err));
}
监听位置
async aboutToAppear(){let status = await this.reqPermissionsFromUser(["ohos.permission.LOCATION","ohos.permission.APPROXIMATELY_LOCATION"])
if(status){
geoLocationManager.on("locationChange",{
priority:LocationRequestScenario.NAVIGATION,
timeInterval:1
},value=>{
console.log(JSON.stringify(value))
})
}
}
取消监听
aboutToDisappear(){
geoLocationManager.off("locationChange")
}
拉起弹框请求用户授权
requestPermissionsFromUser(context: Context, permissionList: Array<Permissions>): Promise<PermissionRequestResult>
用于UIAbility拉起弹框请求用户授权。使用promise异步回调。
如果用户拒绝授权,将无法再次拉起弹框,需要用户在系统应用“设置”的界面中,手动授予权限。
import abilityAccessCtrl, { Context, PermissionRequestResult } from '@ohos.abilityAccessCtrl';
import { BusinessError } from '@ohos.base';
import common from '@ohos.app.ability.common';let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
let context: Context = getContext(this) as common.UIAbilityContext;
atManager.requestPermissionsFromUser(context, ['ohos.permission.CAMERA']).then((data: PermissionRequestResult) => {console.info('data:' + JSON.stringify(data));console.info('data permissions:' + data.permissions);console.info('data authResults:' + data.authResults);console.info('data dialogShownResults:' + data.dialogShownResults);
}).catch((err: BusinessError) => {console.error('data:' + JSON.stringify(err));
});
相关文章:
鸿蒙HarmonyOS开发:系统服务
拨打电话 call.makeCall 跳转到拨号界面,并显示待拨出的号码。使用callback异步回调。 makeCall(phoneNumber: string, callback: AsyncCallback<void>): voidimport { call } from kit.TelephonyKit;import { BusinessError } from kit.BasicServicesKit;c…...
【Go】GO语言知识总结浅析
Go语言是一种现代化的编程语言,由Google于2007年设计并于2009年发布。它旨在使编程变得简单、高效,并且可以在多核处理器上轻松构建高性能应用。Go语言的编程思想、发展历史、版本特点、运行原理、数据类型、应用场景,以及在web开发、网络编程…...
GWO-Transformer-LSTM灰狼算法优化深度学习多变量回归预测(Maltab)
GWO-Transformer-LSTM灰狼算法优化深度学习多变量回归预测(Maltab) 目录 GWO-Transformer-LSTM灰狼算法优化深度学习多变量回归预测(Maltab)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现灰狼算法OOA-Transf…...
上市公司企业供应链抵抗力数据集(2012-2023年)
一、测算方式:参考《财经研究》张树山(2024)老师的做法,供应链抵抗力(Resis)体现了供应链运行状态的稳定性,即在应对外部扰动时,供应链仍能维持循环畅通。本文从稳固供应链关系来筛选…...
javaWeb项目-ssm+jsp-XX牙科诊所管理系统功能介绍
本项目源码(点击下方链接下载):java-ssmjsp私人牙科诊所管理系统实现源码(项目源码-说明文档)资源-CSDN文库 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端&…...
tcp_rmem中有三个值4896 131072 6291456是什么意思,有什么作用?
在 TCP 中,tcp_rmem参数的三个值分别具有以下含义和作用: 一、含义 “4896”: 通常代表 TCP 接收缓冲区的最小大小。这是接收端为接收数据预先分配的最小内存空间。当网络中数据量较小时,这个最小缓冲区可以确保有足够的空间来存储…...
转行AI产品经理:高薪诱惑,年薪90万不是梦!
近期有很多社招的小伙伴都在看转行的机会,同时马上要到了秋招的季节,校招生们都在积极选择第一份工作。所有人想要进入一个有前景、高薪高潜力的黄金赛道。 2024年如果大家看新机会,重点给大家推荐AI领域的岗位。先看一组数据: …...
javaWeb项目-ssm+jsp股票交易管理系统功能介绍
本项目源码(点击下方链接下载):java-ssmjsp股票交易管理系统实现源码(项目源码-说明文档)资源-CSDN文库 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端ÿ…...
CentOS上安装SSL证书教程
在 CentOS 上,apt-get 是不可用的,因为 CentOS 使用的是 yum 或 dnf 包管理器。你可以通过 yum 或 dnf 安装 certbot 和 python3-certbot-nginx。以下是详细的步骤: 1. 启用 EPEL(Extra Packages for Enterprise Linux࿰…...
单目相机和双目相机定位
1、单目相机 1.1模型 单目相机成像模型为小孔成像,涉及的坐标系包括世界坐标系、相机坐标系、图像坐标系以及像素坐标系。坐标系之间的转换关系如下: 1.2参数求解 张正友相机标定方法、设定世界坐标系精确求解 2、双目相机 2.1、模型 一般双目立体视…...
【Cadence27】HDL拷贝工程➕Allegro导出DXF和3D文件STP
【转载】Cadence Design Entry HDL 使用教程 【Cadence01】Cadence PCB Edit相对延迟与绝对延迟的显示问题 【Cadence02】Allegro引脚焊盘Pin设置为透明 【Cadence03】cadence不小心删掉钢网层怎么办? 【Cadence04】一般情况下Allegro PCB设计时的约束规则设置&a…...
拓扑学与集合论的关系
目录 1. 关于拓扑学的概念 2. 集合论和拓扑学的关系 3. 拓扑空间 1. 关于拓扑学的概念 汉译的“拓扑学”对应的英文是“topology”,更贴近其本义的翻译有“地志学”、“位相学”、等等,其原本词义是表示“研究位置分布的学科”。“topo-”表示…...
设计模式——代理模式(6)
一、写在前面 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则…...
设计模式之-策略模式配合枚举
1、定义枚举接收不同的参数使用不同的handler, 2、定义个handerl接口,统一方法处理,每个handler实现该接口 public interface IMethodHandler<T, R> {/*** 处理统一入口** param req*/R process(T req); } java3、定义一个简单工厂统一处理 Comp…...
滑动窗口经典例题
链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 读入n,xn,xn,x,给出nnn个数a[1],a[2],……,a[n]a[1],a[2],……,a[n]a[1],a[2],……,a[n],求最小的区间[l,r][l,r][l,r],使a[l]a[l1]……...
PetaLinux工程的常用命令——petalinux-create
petalinux-create:此命令创建新的PetaLinux项目或组件。 注:有些命令我没用过,瞎翻译有可能会翻译错了,像是和fpgamanager相关的部分。 用法: petalinux-create [options] <-t|--type <TYPE> <-n|--name <COMPONEN…...
Unity的Compute Shader如何进行同步?
在Unity的Compute Shader中,同步的概念与常规的CPU编程有所不同,因为Compute Shader主要是并行地在GPU上执行大量简单任务。GPU的设计初衷就是为了并行处理大量数据,因此Compute Shader的执行通常被设计为异步的,并且不直接受到CP…...
大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
git 与 github 同步
1.配置账户 git config --global user.name "你的用户名" git config --global user.email "你的邮箱" 2.输入命令创建ssh key $ ssh-keygen -t rsa -C "邮箱" //你自己注册GitHub的邮箱 输入命令之后提示输入密码,回车直到出现…...
数学建模算法与应用 第10章 多元分析及其方法
目录 10.1 因子分析 Matlab代码示例:因子分析 10.2 主成分分析 Matlab代码示例:主成分分析 10.3 典型相关分析 Matlab代码示例:典型相关分析 10.4 判别分析 Matlab代码示例:线性判别分析 10.5 对应分析 Matlab代码示例&a…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...
实战设计模式之模板方法模式
概述 模板方法模式定义了一个操作中的算法骨架,并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。简单来说,就是在一个方法中定义了要执行的步骤顺序或算法框架,但允许子类…...
