鸿蒙开发电话服务:【@ohos.telephony.observer (observer)】
observer
说明:
本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import observer from '@ohos.telephony.observer'
observer.on(‘networkStateChange’)
on(type: ‘networkStateChange’, callback: Callback): void;
订阅网络状态变化事件,使用callback方式作为异步方法。
需要权限:ohos.permission.GET_NETWORK_INFO
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 网络状态变化事件 |
| callback | Callback<[NetworkState]> | 是 | 回调函数。参考radio的[NetworkState] |
示例:
observer.on('networkStateChange', data =>{ console.log("on networkStateChange, data:" + JSON.stringify(data));
});
observer.on(‘networkStateChange’)
on(type: ‘networkStateChange’, options: { slotId: number }, callback: Callback): void;
订阅指定卡槽位的网络状态变化事件,使用callback方式作为异步方法。
需要权限:ohos.permission.GET_NETWORK_INFO
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 网络状态变化事件 |
| slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
| callback | Callback<[NetworkState]> | 是 | 回调函数。参考radio的[NetworkState] |
示例:
observer.on('networkStateChange', {slotId: 0}, data =>{ console.log("on networkStateChange, data:" + JSON.stringify(data));
});
observer.off(‘networkStateChange’)
off(type: ‘networkStateChange’, callback?: Callback): void;
取消订阅网络状态变化事件,使用callback方式作为异步方法。
需要权限:ohos.permission.GET_NETWORK_INFO
说明:
可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 网络状态变化事件 |
| callback | Callback<[NetworkState]> | 否 | 回调函数。参考radio的[NetworkState] |
示例:
let callback = data => {console.log("on networkStateChange, data:" + JSON.stringify(data));
}
observer.on('networkStateChange', callback);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
observer.off('networkStateChange', callback);
observer.off('networkStateChange');
observer.on(‘signalInfoChange’)
on(type: ‘signalInfoChange’, callback: Callback<Array>): void;
订阅信号状态变化事件,使用callback方式作为异步方法。
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 信号状态变化事件 |
| callback | Callback<Array<[SignalInformation]>> | 是 | 回调函数。参考radio的[SignalInformation] |
示例:
observer.on('signalInfoChange', data =>{ console.log("on signalInfoChange, data:" + JSON.stringify(data));
});
observer.on(‘signalInfoChange’)
on(type: ‘signalInfoChange’, options: { slotId: number }, callback: Callback<Array>): void;
订阅指定卡槽位的信号状态变化事件,使用callback方式作为异步方法。
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 信号状态变化事件 |
| slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
| callback | Callback<Array<[SignalInformation]>> | 是 | 回调函数。参考radio的[SignalInformation] |
示例:
observer.on('signalInfoChange', {slotId: 0}, data =>{ console.log("on signalInfoChange, data:" + JSON.stringify(data));
});
observer.off(‘signalInfoChange’)
off(type: ‘signalInfoChange’, callback?: Callback<Array>): void;
取消订阅信号状态变化事件,使用callback方式作为异步方法。
说明:
可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 信号状态变化事件 |
| callback | Callback<Array<[SignalInformation]>> | 否 | 回调函数。参考radio的[SignalInformation] |
示例:
let callback = data => {console.log("on signalInfoChange, data:" + JSON.stringify(data));
}
observer.on('signalInfoChange', callback);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
observer.off('signalInfoChange', callback);
observer.off('signalInfoChange');
observer.on(‘callStateChange’)
on(type: ‘callStateChange’, callback: Callback<{ state: CallState, number: string }>): void;
订阅通话状态变化事件,使用callback方式作为异步方法。
需要权限:ohos.permission.READ_CALL_LOG
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 通话状态变化事件 |
| callback | Callback<{ state: [CallState], number: string }> | 是 | 回调函数,参考call的[CallState] number:电话号码 |
示例:
observer.on('callStateChange', value =>{ console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
});
observer.on(‘callStateChange’)
on(type: ‘callStateChange’, options: { slotId: number }, callback: Callback<{ state:CallState, number: string }>): void;
订阅通话状态变化事件,使用callback方式作为异步方法。
需要权限:ohos.permission.READ_CALL_LOG
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 通话状态变化事件 |
| slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
| callback | Callback<{ state: [CallState], number: string }> | 是 | 回调函数,参考call的[CallState] number:电话号码 |
示例:
observer.on('callStateChange', {slotId: 0}, value =>{ console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
});
observer.off(‘callStateChange’)
off(type: ‘callStateChange’, callback?: Callback<{ state: CallState, number: string }>): void;
取消订阅通话状态变化事件,使用callback方式作为异步方法。
需要权限:ohos.permission.READ_CALL_LOG
说明:
可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 通话状态变化事件 |
| callback | Callback<{ state: [CallState], number: string }> | 否 | 回调函数,参考call的[CallState] number:电话号码 |
示例:
let callback = value => {console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
}
observer.on('callStateChange', callback);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
observer.off('callStateChange', callback);
observer.off('callStateChange');
observer.on(‘cellularDataConnectionStateChange’)7+
on(type: ‘cellularDataConnectionStateChange’, callback: Callback<{ state: DataConnectState, network: RatType}>): void;
订阅蜂窝数据链路连接状态,使用callback方式作为异步方法。
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 蜂窝数据链路连接状态事件 |
| callback | Callback<{ state: [DataConnectState], network: [RatType]}> | 是 | 回调函数,参考data的[DataConnectState],radio的[RadioTechnology]。 |
示例:
observer.on('cellularDataConnectionStateChange', value =>{console.log("on cellularDataConnectionStateChange, state:" + value.state + ", network:" + value.network);
});
observer.on(‘cellularDataConnectionStateChange’)7+
on(type: ‘cellularDataConnectionStateChange’, options: { slotId: number }, callback: Callback<{ state: DataConnectState, network: RatType }>): void;
订阅指定卡槽位的蜂窝数据链路连接状态,使用callback方式作为异步方法。
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 蜂窝数据链路连接状态事件 |
| slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
| callback | Callback<{ state: [DataConnectState], network: [RatType] }> | 是 | 回调函数,参考data的[DataConnectState],radio的[RadioTechnology] |
示例:
observer.on('cellularDataConnectionStateChange', {slotId: 0}, value =>{console.log("on cellularDataConnectionStateChange, state:" + value.state + ", network:" + value.network);
});
observer.off(‘cellularDataConnectionStateChange’)7+
off(type: ‘cellularDataConnectionStateChange’, callback?: Callback<{ state: DataConnectState, network: RatType}>): void;
移除订阅蜂窝数据链路连接状态,使用callback方式作为异步方法。
说明:
可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 蜂窝数据链路连接状态事件 |
| callback | Callback<{ state: [DataConnectState], network: [RatType] }> | 否 | 回调函数,参考data的[DataConnectState],radio的[RadioTechnology]。 |
示例:
let callback = value => {console.log("on cellularDataConnectionStateChange, state:" + value.state + ", network:" + value.network);
}
observer.on('cellularDataConnectionStateChange', callback);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
observer.off('cellularDataConnectionStateChange', callback);
observer.off('cellularDataConnectionStateChange');
observer.on(‘cellularDataFlowChange’)7+
on(type: ‘cellularDataFlowChange’, callback: Callback): void;
订阅蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 蜂窝数据业务的上下行数据流状态状态事件 |
| callback | Callback<[DataFlowType]> | 是 | 回调函数,参考data的[DataFlowType]。 |
示例:
observer.on('cellularDataFlowChange', data =>{console.log("on networkStateChange, data:" + JSON.stringify(data));
});
observer.on(‘cellularDataFlowChange’)7+
on(type: ‘cellularDataFlowChange’, options: { slotId: number }, callback: Callback): void;
订阅指定卡槽位的蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 蜂窝数据业务的上下行数据流状态事件 |
| slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
| callback | Callback<[DataFlowType]> | 是 | 回调函数,参考data的[DataFlowType]。 |
示例:
observer.on('cellularDataFlowChange', {slotId: 0}, data =>{console.log("on cellularDataFlowChange, data:" + JSON.stringify(data));
});
observer.off(‘cellularDataFlowChange’)7+
off(type: ‘cellularDataFlowChange’, callback?: Callback): void;
移除订阅蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。
说明:
可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 蜂窝数据业务的上下行数据流状态事件 |
| callback | Callback<[DataFlowType]> | 否 | 回调函数,参考data的[DataFlowType]。 |
示例:
let callback = data => {console.log("on cellularDataFlowChange, data:" + JSON.stringify(data));
}
observer.on('cellularDataFlowChange', callback);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
observer.off('cellularDataFlowChange', callback);
observer.off('cellularDataFlowChange');
observer.on(‘simStateChange’)7+
on(type: ‘simStateChange’, callback: Callback): void;
订阅sim状态更改事件,使用callback方式作为异步方法。
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | sim状态更改事件 |
| callback | Callback<[SimStateData]> | 是 | 回调函数。 |
示例:
observer.on('simStateChange', data =>{console.log("on simStateChange, data:" + JSON.stringify(data));
});
observer.on(‘simStateChange’)7+
on(type: ‘simStateChange’, options: { slotId: number }, callback: Callback): void;
订阅指定卡槽位的sim状态更改事件,使用callback方式作为异步方法。
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | sim状态更改事件 |
| slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
| callback | Callback<[SimStateData]> | 是 | 回调函数。 |
示例:
observer.on('simStateChange', {slotId: 0}, data =>{console.log("on simStateChange, data:" + JSON.stringify(data));
});
observer.off(‘simStateChange’)7+
off(type: ‘simStateChange’, callback?: Callback): void;
移除订阅sim状态更改事件,使用callback方式作为异步方法。
说明:
可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
系统能力:SystemCapability.Telephony.StateRegistry
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | sim状态更改事件 |
| callback | Callback<[SimStateData]> | 否 | 回调函数。 |
示例:
let callback = data => {console.log("on simStateChange, data:" + JSON.stringify(data));
}
observer.on('simStateChange', callback);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
observer.off('simStateChange', callback);
observer.off('simStateChange');
LockReason8+
SIM卡锁类型。
系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.StateRegistry。
| 名称 | 值 | 说明 |
|---|---|---|
| SIM_NONE | 0 | 无锁。 |
| SIM_PIN | 1 | PIN锁。 |
| SIM_PUK | 2 | PUK锁。 |
| SIM_PN_PIN | 3 | 网络PIN锁。 |
| SIM_PN_PUK | 4 | 网络PUK锁。 |
| SIM_PU_PIN | 5 | 子网PIN锁。 |
| SIM_PU_PUK | 6 | 子网PUK锁。 |
| SIM_PP_PIN | 7 | 服务提供商PIN锁。 |
| SIM_PP_PUK | 8 | 服务提供商PUK锁。 |
| SIM_PC_PIN | 9 | 组织PIN锁。 |
| SIM_PC_PUK | 10 | 组织PUK锁。 |
| SIM_SIM_PIN | 11 | SIM PIN锁。 |
| SIM_SIM_PUK | 12 | SIM PUK锁。 |
SimStateData7+
SIM卡类型和状态。
系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.StateRegistry。
| 名称 | 类型 | 说明 |
|---|---|---|
| type | [CardType] | SIM卡类型,参考sim的[CardType] |
| state | [SimState] | SIM卡状态,参考sim的[SimState] |
| reason8+ | [LockReason] | SIM卡锁类型。 |
相关文章:
鸿蒙开发电话服务:【@ohos.telephony.observer (observer)】
observer 说明: 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import observer from ohos.telephony.observerobserver.on(‘networkStateChange’) on(type: ‘networkStateChange’, ca…...
希亦、追觅、云鲸洗地机:究竟有何不同?选择哪款更合适
最近收到很多私信里,要求洗地机测评的呼声特别高,作为宠粉的测评博主,当然是马上安排起来,满足大家对想看洗地机的愿望。这次洗地机测评,我挑选了三款热门的品牌型号,并从多个维度对它们进行使用测评&#…...
代码随想录算法训练营第二十六天
题目:455. 分发饼干 贪心第一题 这里的局部最优就是大饼干喂给胃口大的,充分利用饼干尺寸喂饱一个,全局最优就是喂饱尽可能多的小孩。或者小饼干先喂饱小胃口 首先要对 g 和 s进行排序这样才能知道最大的胃口和最大的饼干然后进行遍历即可…...
[面试题]Java【并发】
[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL 因为 Java 并发涉及到的内容会非常多,本面试题可能很难覆盖到所有的知识点,所以推荐 《Java并发编程的艺术》 。 Java 线程 线程 通知 等待 线…...
基于VSCode和MinGW-w64搭建LVGL模拟开发环境
目录 概述 1 运行环境 1.1 版本信息 1.2 软件安装 1.2.1 下载安装VS Code 1.2.1.1 下载软件 1.2.1.1 安装软件 1.2.2 下载安装MinGW-w64 1.2.2.1 下载软件 1.2.2.2 安装软件 1.2.3 下载安装SDL 1.2.3.1 下载软件 1.2.3.2 安装软件 1.2.4 下载安装CMake 1.2.4.…...
H5112B 降压恒流芯片12V24V36V48V60V72V100V 1.2ALED 调光无频闪光滑细腻
H5112B多功能LED恒流驱动器是一款具有良好性能与高度集成度的驱动芯片。以下是该产品的主要优点及应用领域的详细分析: 产品优点: 宽电压输入范围:H5112B支持5V至90V的宽电压输入范围,使其能够适应多种不同的电源环境࿰…...
真心建议大家冲一冲新兴领域,工资高前景好【大模型NLP开发篇】
前言 从ChatGPT到新近的GPT-4,GPT模型的发展表明,AI正在向着“类⼈化”⽅向迅速发展。 GPT-4具备深度阅读和识图能⼒,能够出⾊地通过专业考试并完成复杂指令,向⼈类引以为傲的“创造⼒”发起挑战。 现有的就业结构即将发⽣重⼤变…...
深度剖析淘宝扭蛋机源码:打造趣味性电商活动的秘诀
在当今电商市场中,如何吸引用户的注意力、提升用户的参与度成为了各大电商平台竞相追求的目标。淘宝扭蛋机作为一种新型的电商活动形式,以其趣味性和互动性深受用户喜爱。本文将深度剖析淘宝扭蛋机源码,探讨其如何打造趣味性与互动性并存的电…...
vue3+优化vue-baidu-map中marker点过多导致的页面卡顿问题
场景: 移动端h5中,当我们需要在地图中展示很多marker点坐标的时候,通常会使用 bm-marker ,去循环生成marker点,在数量不多的情况下是没问题的,但是随着数据量的增加,地图就会变得卡顿,以及渲染延…...
PMS助力制造企业高效运营︱PMO大会
全国PMO专业人士年度盛会 北京易贝恩项目管理科技有限公司副总经理朱洪泽女士受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“PMS助力制造企业高效运营”。大会将于6月29-30日在北京举办,敬请关注! 议题简要: …...
认识一些分布-关于极值点分布的一些知识
可以参考下面资料: Extreme Value Distribution & the Extreme Value Theory - Statistics How To...
Anaconda环境安装失败的解决方案
链接步骤的补充。 为了运行marlib,需要一个全新的Anaconda环境。但是,不想把文件安装在C盘,会造成空间不足。于是试着在.condarc文件里面改动了路径,具体如图。 上图中,在defaults前面添加了D盘的路径作为安装路径。 …...
mac 本地启动rocketmq
Mac 本地起rocketmq 官网下载:RocketMq官网下载地址 下载后解压 如果电脑配置不高或者不希望rocketmq占用太大内存的,修改配置/bin/runbroker.sh JAVA_OPT"${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"-Xmx4g 初始堆大小 4g -Xms4g 最大…...
数据资产管理的未来趋势:洞察技术前沿,探讨数据资产管理在云计算、大数据、区块链等新技术下的发展趋势
一、引言 随着信息技术的飞速发展,数据已成为企业最重要的资产之一。数据资产管理作为企业核心竞争力的关键组成部分,其发展趋势和技术创新受到了广泛关注。特别是在云计算、大数据、区块链等新技术不断涌现的背景下,数据资产管理面临着前所…...
lwip中server和client的socket、地址和端口号
1、server的socket通过lwip_socket建立: server_sd lwip_socket(AF_INET, SOCK_STREAM, 0);2、client的socket在监听到连接后建立: client_sd lwip_accept(server_sd, (struct sockaddr *)&client_addr_port, (socklen_t *)&size);3、server…...
代码随想录算法训练营Day38|动态规划理论基础、2.斐波那契数、3.爬楼梯、4.使用最小花费爬楼梯
动态规划理论基础 代码随想录 (programmercarl.com) 动态规划(Dynamic Programming,简称DP)是一种算法设计技术,它通过将复杂问题分解为更小的子问题来解决优化问题。动态规划通常用于解决那些具有重叠子问题和最优子结构特性的…...
IIC通信总线
文章目录 1. IIC总线协议1. IIC简介2. IIC时序1. 数据有效性2. 起始信号和终止信号3. 数据格式4. 应答和非应答信号5. 时钟同步6. 写数据和读数据 2. AT24C023. AT24C02读写时序4. AT24C02配置步骤5. 代码部分1. IIC基本信号2. AT24C02驱动代码3. 实验结果分析 1. IIC总线协议 …...
2024 年最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
OpenAi 环境安装 首先确保您的计算机上已经安装了 Python。您可以从 Python 官方网站下载并安装最新版本 Python。安装时,请确保勾选 “Add Python to PATH” (添加环境变量)选项,以便在 cmd 命令行中直接使用 Python。 安装 Op…...
git原理解释,windows 10 / ubuntu 24.04 安装使用 github
git的原理 git是赫赫有名的Linux之父Linus Torvalds从2005年起开发的文件版本管理系统,掌控Linux内核这样一个最为重量级的世界产品的Linus为什么要开发这个东西呢?因为Linux系统由全世界的程序员协作维护,对源代码文件的版本控制管理的需求…...
requests post json/data;requests response 接收不同数据
1、requests post json/data 在Python的requests库中,当你发送POST请求时,可以选择使用json参数或data参数来传递数据。这两者之间的主要区别在于它们如何被序列化和发送到服务器。 json参数: 当你使用json参数时,requests库会自…...
打字侠全面支持三大五笔输入法:初学者快速上手指南
1. 五笔输入法:为什么值得初学者投入时间? 在拼音输入法大行其道的今天,很多初学者可能会疑惑:为什么要花时间学习看起来更复杂的五笔输入法?其实答案很简单——效率。我十年前刚开始接触五笔时也有同样的困惑…...
LAVIS深度解析:语言视觉智能库的架构设计与视觉问答实现原理
LAVIS深度解析:语言视觉智能库的架构设计与视觉问答实现原理 【免费下载链接】LAVIS LAVIS - A One-stop Library for Language-Vision Intelligence 项目地址: https://gitcode.com/gh_mirrors/la/LAVIS 语言视觉智能库LAVIS、视觉问答VQA、多模态AI、BLIP模…...
别再踩坑了!KubeKey离线安装K8s v1.26.12时,containerd镜像拉取失败的完整避坑指南
KubeKey离线部署K8s集群:containerd镜像拉取全流程避坑手册 第一次用KubeKey离线部署Kubernetes集群时,containerd镜像拉取失败的问题让我折腾了大半天。看着部署日志里反复出现的证书错误提示,才意识到离线环境下的镜像仓库配置远比想象中复…...
从‘腐蚀液’到‘设计美学’:PCB布线‘禁止直角’这条规则是怎么流行起来的?
从工艺限制到设计美学:PCB布线"禁止直角"规则的历史演变 在电子工程领域,PCB布线中"禁止直角"的规则几乎成为了一种行业圣经。从大学实验室到商业设计部门,新手工程师们总是被反复告诫要避免在布线中使用90度转角。但有趣…...
s2-pro实战落地:跨境电商产品介绍多语种语音批量生成
s2-pro实战落地:跨境电商产品介绍多语种语音批量生成 1. 场景痛点与解决方案 跨境电商企业面临一个共同挑战:如何高效地为全球不同语言市场的产品生成专业语音介绍。传统方案需要雇佣多语种配音人员,成本高、周期长,且难以保证语…...
强化学习实战:Sarsa vs Q-learning,on-policy和off-policy到底怎么选?
强化学习实战:Sarsa与Q-learning的深度对比与策略选择指南 1. 理解策略分类的核心逻辑 在强化学习领域,策略选择直接影响算法的行为模式和学习效果。我们先从最基础的概念切入:什么是策略?简单来说,策略就是智能体在特…...
如何用A_B测试优化AI模型的业务指标?
如何用A/B测试优化AI模型的业务指标? 关键词:A/B测试、AI模型优化、业务指标、实验设计、数据驱动决策、模型迭代、统计显著性 摘要:本文深入探讨如何利用A/B测试方法来优化AI模型的业务指标。我们将从基础概念出发,通过生活化的比喻解释A/B测试原理,详细分析其在AI模型优…...
别再乱调灯光和材质了!UE5渲染性能优化的三个核心禁忌与正确姿势
UE5渲染性能优化的三大禁忌与实战解决方案 在虚幻引擎5的渲染管线中,性能优化往往成为项目后期最棘手的挑战之一。许多开发者习惯性地将注意力集中在视觉效果上,却忽略了渲染效率的平衡。当场景复杂度达到临界点时,那些看似无害的高精度贴图…...
百考通:AI全流程智能化驱动数据分析,让数据价值高效落地
在数字化浪潮席卷各行各业的今天,数据已成为核心生产要素,但如何从海量数据中挖掘价值、辅助决策,始终是企业与个人面临的核心难题。传统数据分析流程繁琐、技术门槛高、周期漫长,让许多非专业人士望而却步。百考通(ht…...
如何快速掌握单细胞分析:CELLxGENE新手必看的3个实用技巧
如何快速掌握单细胞分析:CELLxGENE新手必看的3个实用技巧 【免费下载链接】cellxgene An interactive explorer for single-cell transcriptomics data 项目地址: https://gitcode.com/gh_mirrors/ce/cellxgene 你是否曾经面对海量的单细胞转录组数据感到无从…...
