当前位置: 首页 > news >正文

鸿蒙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 跳转到拨号界面&#xff0c;并显示待拨出的号码。使用callback异步回调。 makeCall(phoneNumber: string, callback: AsyncCallback<void>): voidimport { call } from kit.TelephonyKit;import { BusinessError } from kit.BasicServicesKit;c…...

【Go】GO语言知识总结浅析

Go语言是一种现代化的编程语言&#xff0c;由Google于2007年设计并于2009年发布。它旨在使编程变得简单、高效&#xff0c;并且可以在多核处理器上轻松构建高性能应用。Go语言的编程思想、发展历史、版本特点、运行原理、数据类型、应用场景&#xff0c;以及在web开发、网络编程…...

GWO-Transformer-LSTM灰狼算法优化深度学习多变量回归预测(Maltab)

GWO-Transformer-LSTM灰狼算法优化深度学习多变量回归预测&#xff08;Maltab&#xff09; 目录 GWO-Transformer-LSTM灰狼算法优化深度学习多变量回归预测&#xff08;Maltab&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现灰狼算法OOA-Transf…...

上市公司企业供应链抵抗力数据集(2012-2023年)

一、测算方式&#xff1a;参考《财经研究》张树山&#xff08;2024&#xff09;老师的做法&#xff0c;供应链抵抗力&#xff08;Resis&#xff09;体现了供应链运行状态的稳定性&#xff0c;即在应对外部扰动时&#xff0c;供应链仍能维持循环畅通。本文从稳固供应链关系来筛选…...

javaWeb项目-ssm+jsp-XX牙科诊所管理系统功能介绍

本项目源码&#xff08;点击下方链接下载&#xff09;&#xff1a;java-ssmjsp私人牙科诊所管理系统实现源码(项目源码-说明文档)资源-CSDN文库 项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&…...

tcp_rmem中有三个值4896 131072 6291456是什么意思,有什么作用?

在 TCP 中&#xff0c;tcp_rmem参数的三个值分别具有以下含义和作用&#xff1a; 一、含义 “4896”&#xff1a; 通常代表 TCP 接收缓冲区的最小大小。这是接收端为接收数据预先分配的最小内存空间。当网络中数据量较小时&#xff0c;这个最小缓冲区可以确保有足够的空间来存储…...

转行AI产品经理:高薪诱惑,年薪90万不是梦!

近期有很多社招的小伙伴都在看转行的机会&#xff0c;同时马上要到了秋招的季节&#xff0c;校招生们都在积极选择第一份工作。所有人想要进入一个有前景、高薪高潜力的黄金赛道。 2024年如果大家看新机会&#xff0c;重点给大家推荐AI领域的岗位。先看一组数据&#xff1a; …...

javaWeb项目-ssm+jsp股票交易管理系统功能介绍

本项目源码&#xff08;点击下方链接下载&#xff09;&#xff1a;java-ssmjsp股票交易管理系统实现源码(项目源码-说明文档)资源-CSDN文库 项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff…...

CentOS上安装SSL证书教程

在 CentOS 上&#xff0c;apt-get 是不可用的&#xff0c;因为 CentOS 使用的是 yum 或 dnf 包管理器。你可以通过 yum 或 dnf 安装 certbot 和 python3-certbot-nginx。以下是详细的步骤&#xff1a; 1. 启用 EPEL&#xff08;Extra Packages for Enterprise Linux&#xff0…...

单目相机和双目相机定位

1、单目相机 1.1模型 单目相机成像模型为小孔成像&#xff0c;涉及的坐标系包括世界坐标系、相机坐标系、图像坐标系以及像素坐标系。坐标系之间的转换关系如下&#xff1a; 1.2参数求解 张正友相机标定方法、设定世界坐标系精确求解 2、双目相机 2.1、模型 一般双目立体视…...

【Cadence27】HDL拷贝工程➕Allegro导出DXF和3D文件STP

【转载】Cadence Design Entry HDL 使用教程 【Cadence01】Cadence PCB Edit相对延迟与绝对延迟的显示问题 【Cadence02】Allegro引脚焊盘Pin设置为透明 【Cadence03】cadence不小心删掉钢网层怎么办&#xff1f; 【Cadence04】一般情况下Allegro PCB设计时的约束规则设置&a…...

拓扑学与集合论的关系

目录 1. 关于拓扑学的概念 2. 集合论和拓扑学的关系 3. 拓扑空间 1. 关于拓扑学的概念 汉译的“拓扑学”对应的英文是“topology”&#xff0c;更贴近其本义的翻译有“地志学”、“位相学”、等等&#xff0c;其原本词义是表示“研究位置分布的学科”。“topo-”表示…...

设计模式——代理模式(6)

一、写在前面 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式&#xff0c;前者采用继承机制来组织接口和类&#xff0c;后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低&#xff0c;满足“合成复用原则…...

设计模式之-策略模式配合枚举

1、定义枚举接收不同的参数使用不同的handler, 2、定义个handerl接口&#xff0c;统一方法处理&#xff0c;每个handler实现该接口 public interface IMethodHandler<T, R> {/*** 处理统一入口** param req*/R process(T req); } java3、定义一个简单工厂统一处理 Comp…...

滑动窗口经典例题

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 读入n&#xff0c;xn&#xff0c;xn&#xff0c;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]&#xff0c;使a[l]a[l1]……...

PetaLinux工程的常用命令——petalinux-create

petalinux-create&#xff1a;此命令创建新的PetaLinux项目或组件。 注&#xff1a;有些命令我没用过&#xff0c;瞎翻译有可能会翻译错了&#xff0c;像是和fpgamanager相关的部分。 用法: petalinux-create [options] <-t|--type <TYPE> <-n|--name <COMPONEN…...

Unity的Compute Shader如何进行同步?

在Unity的Compute Shader中&#xff0c;同步的概念与常规的CPU编程有所不同&#xff0c;因为Compute Shader主要是并行地在GPU上执行大量简单任务。GPU的设计初衷就是为了并行处理大量数据&#xff0c;因此Compute Shader的执行通常被设计为异步的&#xff0c;并且不直接受到CP…...

大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…...

git 与 github 同步

1.配置账户 git config --global user.name "你的用户名" git config --global user.email "你的邮箱" 2.输入命令创建ssh key $ ssh-keygen -t rsa -C "邮箱" //你自己注册GitHub的邮箱 输入命令之后提示输入密码&#xff0c;回车直到出现…...

数学建模算法与应用 第10章 多元分析及其方法

目录 10.1 因子分析 Matlab代码示例&#xff1a;因子分析 10.2 主成分分析 Matlab代码示例&#xff1a;主成分分析 10.3 典型相关分析 Matlab代码示例&#xff1a;典型相关分析 10.4 判别分析 Matlab代码示例&#xff1a;线性判别分析 10.5 对应分析 Matlab代码示例&a…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...