Skip to content
Back to skills

Hmos Networkboost Kit Multipath Quota Query

ASecurity

查询应用多网配额使用情况,获取已使用和剩余配额次数及时长,需申请ohos.permission.LINKTURBO权限,配额以24小时周期刷新,适用于多网加速场景配额管理和优化

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 22, 2026
businesstypescriptapi

Works with

  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 22, 2026

npx -y skills add IsKenKenYa/skills --skill hmos-networkboost-kit-multipath-quota-query --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Hmos Networkboost Kit Multipath Quota Query?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Hmos Networkboost Kit Multipath Quota Query
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/iskenkenya-hmos-networkboost-kit-multipath-quota-query/badge)](https://www.skillsdirectory.com/skills/iskenkenya-hmos-networkboost-kit-multipath-quota-query)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: hmos-networkboost-kit-multipath-quota-query
description: 查询应用多网配额使用情况,获取已使用和剩余配额次数及时长,需申请ohos.permission.LINKTURBO权限,配额以24小时周期刷新,适用于多网加速场景配额管理和优化
---

# 多网配额查询技能

## 功能描述

本技能提供HarmonyOS应用多网配额查询能力,通过调用`netHandover.getMultiPathQuotaStats()`接口获取当前应用的多网并发配额使用情况。返回已使用配额(次数和时长)和剩余配额(次数和时长),帮助应用合理分配多网加速资源。

**核心能力**:
- 获取已使用多网配额次数和时长
- 获取剩余多网配额次数和时长
- 配额24小时周期刷新机制
- 配额耗尽限制使用提示

**限制条件**:
- 需申请`ohos.permission.LINKTURBO`权限
- API版本要求:6.0.0(20)及以上
- 配额周期为24小时自动刷新
- 配额耗尽后请求多网会抛出错误码

## 使用场景

### 触发词
- "查询多网配额"
- "获取多网配额"
- "多网配额查询"
- "配额使用情况"
- "剩余配额查询"
- "多网加速配额"

### 能做
- 查询当前应用多网配额使用情况
- 获取已使用配额次数和时长信息
- 获取剩余配额次数和时长信息
- 在配额耗尽前合理规划多网使用策略
- 监控配额使用状态优化资源分配

### 绝不做
- 不增加或修改配额数值(配额由系统管理)
- 不清空已使用配额(配额24小时自动刷新)
- 不绕过配额限制强制使用多网
- 不处理其他NetworkBoost Kit功能(如连接迁移、多网请求等)

### 补充
- 配额包括次数配额和时长配额两种类型
- 配额耗尽后请求多网会返回错误码1013620004
- 建议在发起多网请求前先查询配额情况
- 配额查询不影响实际配额使用

## 调用规范和规则

### 输入约束
- 无需输入参数
- 调用前需确认已申请`ohos.permission.LINKTURBO`权限
- 调用前需确认API版本≥6.0.0(20)

### 执行约束
- 调用方式:同步调用,立即返回结果
- 调用频次:无限制,可根据需要随时查询
- 最大耗时:通常<100ms
- 权限校验:必须具备`ohos.permission.LINKTURBO`权限

### 内容约束
- 禁止伪造配额数据
- 禁止篡改配额信息
- 禁止推测配额刷新时间(由系统管理)
- 必须使用官方API接口获取配额

### 降级约束
- 权限校验失败:提示用户申请`ohos.permission.LINKTURBO`权限
- API版本不支持:提示用户升级系统版本至6.0.0(20)及以上
- 内部处理异常:记录错误日志,提示用户稍后重试
- 系统处理异常:检查网络管理服务状态,重启应用后重试

## 调用流程和步骤

### 步骤1:准备阶段

**前置校验**:
1. 确认已申请`ohos.permission.LINKTURBO`权限
2. 确认系统版本≥6.0.0(20)
3. 导入必要模块:`@kit.NetworkBoostKit`和`@kit.BasicServicesKit`

**权限配置示例**:
```json
// module.json5
{
  "module": {
    "requestPermissions": [
      {
        "name": "ohos.permission.LINKTURBO",
        "reason": "$string:linkturbo_reason"
      }
    ]
  }
}
```

**参数准备**:
```typescript
// 导入必要模块
import { netHandover } from '@kit.NetworkBoostKit';
import { BusinessError } from '@kit.BasicServicesKit';
```

### 步骤2:调用API获取配额

**示例代码**:
```typescript
/**
 * 查询多网配额使用情况
 * @returns 返回配额信息,包括已使用和剩余配额
 */
function queryMultiPathQuota(): netHandover.MultiPathQuota {
  try {
    // 调用同步接口获取配额信息
    const quota: netHandover.MultiPathQuota = netHandover.getMultiPathQuotaStats();
    
    // 输出已使用配额信息
    console.info('[QuotaQuery] 已使用配额次数: ' + quota.used.count);
    console.info('[QuotaQuery] 已使用配额时长(秒): ' + quota.used.duration);
    
    // 输出剩余配额信息
    console.info('[QuotaQuery] 剩余配额次数: ' + quota.remaining.count);
    console.info('[QuotaQuery] 剩余配额时长(秒): ' + quota.remaining.duration);
    
    return quota;
  } catch (err) {
    const error = err as BusinessError;
    console.error('[QuotaQuery] 查询失败 - 错误码: ' + error.code + ', 错误信息: ' + error.message);
    throw error;
  }
}
```

### 步骤3:错误处理

**错误处理代码**:
```typescript
/**
 * 安全查询多网配额,包含完整错误处理
 */
function safeQueryQuota(): void {
  try {
    const quota = queryMultiPathQuota();
    
    // 检查配额是否充足
    if (quota.remaining.count <= 0 || quota.remaining.duration <= 0) {
      console.warn('[QuotaQuery] 配额已耗尽,请等待24小时后自动刷新');
      // 提示用户配额不足或调整使用策略
    }
    
  } catch (err) {
    const error = err as BusinessError;
    
    // 根据错误码进行针对性处理
    switch (error.code) {
      case 201:
        console.error('[QuotaQuery] 权限校验失败,请申请ohos.permission.LINKTURBO权限');
        break;
      case 1013600001:
        console.error('[QuotaQuery] 内部处理异常,请稍后重试');
        break;
      case 1013600002:
        console.error('[QuotaQuery] 系统处理异常,请检查网络管理服务状态');
        break;
      default:
        console.error('[QuotaQuery] 未知错误: ' + error.message);
    }
  }
}
```

### 步骤4:降级处理

**降级处理代码**:
```typescript
/**
 * 配额查询降级方案
 */
function fallbackQuotaQuery(): void {
  try {
    // 主方案:直接查询配额
    const quota = queryMultiPathQuota();
    processQuotaInfo(quota);
  } catch (err) {
    const error = err as BusinessError;
    
    if (error.code === 201) {
      // 降级方案1:提示申请权限
      console.warn('[QuotaQuery] 降级方案:请先申请ohos.permission.LINKTURBO权限');
      showPermissionRequestDialog();
    } else if (error.code === 801) {
      // 降级方案2:提示升级系统版本
      console.warn('[QuotaQuery] 降级方案:当前系统版本不支持,请升级至6.0.0(20)及以上');
      showVersionUpgradePrompt();
    } else {
      // 降级方案3:使用默认策略
      console.warn('[QuotaQuery] 降级方案:使用保守的多网使用策略');
      useConservativeStrategy();
    }
  }
}

/**
 * 处理配额信息
 */
function processQuotaInfo(quota: netHandover.MultiPathQuota): void {
  // 根据配额情况调整多网使用策略
  const remainingRatio = quota.remaining.count / (quota.used.count + quota.remaining.count);
  
  if (remainingRatio < 0.2) {
    console.warn('[QuotaQuery] 配额剩余不足20%,建议减少多网使用频率');
  } else if (remainingRatio < 0.5) {
    console.info('[QuotaQuery] 配额剩余约50%,合理使用多网加速');
  } else {
    console.info('[QuotaQuery] 配额充足,可正常使用多网加速');
  }
}
```

## 错误码说明

| 错误码 | 说明 | 解决方法 |
|-------|------|---------|
| 201 | 权限校验失败 | 在module.json5中申请`ohos.permission.LINKTURBO`权限 |
| 1013600001 | 内部处理异常(如状态机异常) | 记录日志,稍后重试;检查应用状态是否正常 |
| 1013600002 | 系统处理异常(如IPC失败、服务启动失败) | 检查网络管理服务状态,重启应用或设备 |
| 801 | 设备不支持该API | 确认系统版本≥6.0.0(20),提示用户升级系统 |

**配额耗尽相关错误码**(在请求多网时可能遇到):
| 错误码 | 说明 | 解决方法 |
|-------|------|---------|
| 1013620004 | 配额耗尽,无法发起多网请求 | 等待24小时配额自动刷新,或调整使用策略减少多网使用 |

## 编译和修复问题

### 依赖声明
```json
// oh-package.json5
{
  "dependencies": {
    "@kit.NetworkBoostKit": "^6.0.0",
    "@kit.BasicServicesKit": "^6.0.0"
  }
}
```

### 环境要求
- HarmonyOS系统版本:≥6.0.0(20)
- DevEco Studio版本:≥5.0.0
- SDK API版本:≥12

### 常见编译问题

**问题1:导入模块失败**
```
Error: Cannot find module '@kit.NetworkBoostKit'
```
**解决方法**:
1. 检查SDK版本是否≥12
2. 在DevEco Studio中更新SDK至最新版本
3. 确认oh-package.json5中已声明依赖

**问题2:权限未配置**
```
Error: Permission denied: ohos.permission.LINKTURBO
```
**解决方法**:
1. 在module.json5的requestPermissions中添加权限声明
2. 提供权限申请理由(reason字段)
3. 对于敏感权限,可能需要用户动态授权

**问题3:API版本不支持**
```
Error: API not supported on this device
```
**解决方法**:
1. 确认设备系统版本≥6.0.0(20)
2. 使用条件编译或版本检查适配低版本设备
3. 提示用户升级系统版本

**问题4:类型定义缺失**
```
Error: Property 'MultiPathQuota' does not exist on type 'netHandover'
```
**解决方法**:
1. 确认导入语句正确:`import { netHandover } from '@kit.NetworkBoostKit'`
2. 检查SDK版本是否包含该类型定义
3. 使用完整类型路径:`netHandover.MultiPathQuota`

## 常见问题与解决方法

### Q1:查询配额返回空值或异常
**原因**:
- 权限未正确申请或授权
- 系统版本不支持该API
- 网络管理服务未启动

**解决方法**:
1. 检查module.json5权限配置
2. 确认系统版本≥6.0.0(20)
3. 重启应用或设备恢复服务状态

### Q2:配额数值不符合预期
**原因**:
- 配额由系统统一管理,不同应用配额可能不同
- 配额24小时周期刷新,刷新时间由系统决定
- 配额消耗规则由系统定义

**解决方法**:
1. 理解配额是系统资源,由系统统一分配
2. 通过查询配额合理规划使用策略
3. 不要尝试修改或伪造配额数值

### Q3:配额耗尽后如何处理
**原因**:
- 已达到配额次数或时长上限
- 24小时周期内配额使用完毕

**解决方法**:
1. 等待24小时系统自动刷新配额
2. 在配额耗尽前合理规划多网使用频率和时长
3. 配额不足时减少多网加速使用,优先使用单网传输
4. 监控配额使用情况,提前预警

### Q4:如何判断是否应该发起多网请求
**原因**:
- 需要评估配额充足性和业务需求

**解决方法**:
1. 先调用`getMultiPathQuotaStats()`查询剩余配额
2. 判断剩余配额是否满足业务需求(次数和时长)
3. 配额充足时才发起多网请求,避免配额耗尽错误
4. 根据业务优先级合理分配配额资源

### Q5:多应用场景配额冲突如何处理
**原因**:
- 多个应用共享系统配额资源
- 配额分配策略由系统决定

**解决方法**:
1. 理解配额是应用级别资源,各应用独立配额
2. 各应用独立查询和管理自身配额
3. 高优先级应用可适当增加配额使用频率
4. 低优先级应用减少配额占用,释放资源

## 输出结果报告

执行完成后输出以下信息:

```json
{
  "status": "success",
  "quotaInfo": {
    "used": {
      "count": 5,
      "duration": 1200
    },
    "remaining": {
      "count": 10,
      "duration": 2400
    }
  },
  "quotaRatio": "33.3%",
  "quotaStatus": "充足",
  "recommendation": "可正常使用多网加速",
  "apiUsed": [
    "netHandover.getMultiPathQuotaStats()"
  ],
  "timestamp": "2026-07-03T10:30:00Z"
}
```

**字段说明**:
- `status`: 查询状态(success/failed)
- `quotaInfo`: 配额详细信息(已使用和剩余)
- `quotaRatio`: 已使用配额占比
- `quotaStatus`: 配额状态评估(充足/不足/耗尽)
- `recommendation`: 使用建议
- `apiUsed`: 使用的API列表
- `timestamp`: 查询时间戳

## 参考文档

- [多网配额查询开发指南](networkboost-netmultipath-getmultipathquota.md)
- [netHandover API参考说明](networkboost-nethandover.md)

## 完整示例代码

- [ArkTS完整示例代码](get_multipath_quota_example.ets)
- [权限配置示例](permission_config.json)

## 测试用例

### 正向测试用例
- [基础配额查询测试](test_query_quota_basic.ets):验证配额查询基本功能
- [配额充足场景测试](test_quota_sufficient.ets):验证配额充足时的正常使用
- [配额不足预警测试](test_quota_warning.ets):验证配额不足时的预警机制

### 边界测试用例
- [配额耗尽边界测试](test_quota_exhausted.ets):验证配额接近耗尽时的处理
- [高频查询性能测试](test_high_frequency_query.ets):验证高频查询的性能表现
- [零配额初始状态测试](test_zero_quota.ets):验证零配额初始状态的查询

### 异常测试用例
- [权限缺失异常测试](test_permission_missing.ets):验证权限缺失时的错误处理
- [版本不支持异常测试](test_version_unsupported.ets):验证低版本设备的降级处理
- [系统服务异常测试](test_service_error.ets):验证系统异常时的降级方案
- [内部异常处理测试](test_internal_error.ets):验证内部异常的错误恢复

Files in this skill

  • SUB_SKILL.md12.7 KB
  • assets/get_multipath_quota_example.ets8.5 KB
  • assets/permission_config.json1.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…