HarmonyOS鸿蒙Next中如何跳转sos紧急呼叫页面

HarmonyOS鸿蒙Next中如何跳转sos紧急呼叫页面 如何跳转sos紧急呼叫页面,不是紧急联系人页面

4 回复

目前没有直接公开的 API 支持第三方应用直接跳转到 SOS 紧急呼叫页面。由于 SOS 功能属于系统级核心安全模块,其页面跳转权限受到严格管控,未对三方应用开放。

1. 替代方案:拨打紧急号码

您可以使用 Telephony Kit 提供的 call.makeCall() 接口直接拨打紧急号码(如 110、119、120)。调用该接口后,系统会自动识别并进入紧急呼叫流程。

2. 代码示例

import { call } from '@kit.TelephonyKit';
import { BusinessError } from '@kit.BasicServicesKit';

/**
 * 拨打紧急电话
 * 
 * @param phoneNumber 紧急电话号码 (如 "110")
 */
function dialEmergencyNumber(phoneNumber: string): void {
  // 检查号码是否为空
  if (!phoneNumber) {
    console.error("电话号码不能为空");
    return;
  }

  // 调用拨号接口
  call.makeCall(phoneNumber, (err: BusinessError) => {
    if (err) {
      // 拨号失败处理
      console.error(`拨号失败. Code: ${err.code}, Message: ${err.message}`);
    } else {
      // 拨号成功处理
      console.info("已成功启动紧急呼叫流程");
    }
  });
}

// 调用示例
dialEmergencyNumber("110");

3. 限制说明

  • 无专用接口call.makeCall() 仅支持跳转至拨号界面或直接拨号,无法直接拉起系统层级的 SOS 专属页面。
  • 权限限制:通过 Want 参数跳转 action.system.EMERGENCY 的能力目前仅限于系统应用(System App),三方应用无法使用。

参考文档:

更多关于HarmonyOS鸿蒙Next中如何跳转sos紧急呼叫页面的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


鸿蒙里三方无法进行跳转SOS紧急呼叫页面

在HarmonyOS Next中,可通过want显式跳转至SOS紧急呼叫页面。使用startAbility方法,并指定bundleNamecom.huawei.ohos.sosabilityNamecom.huawei.ohos.sos.MainAbility。示例代码片段如下:

let wantInfo = {
    bundleName: 'com.huawei.ohos.sos',
    abilityName: 'com.huawei.ohos.sos.MainAbility'
};
try {
    await context.startAbility(wantInfo);
} catch (err) {
    console.error(`Failed to start ability. Code: ${err.code}, message: ${err.message}`);
}

需在module.json5中声明ohos.permission.START_ABILITIES_FROM_BACKGROUND权限。

在HarmonyOS Next中,可以通过调用系统能力 EmergencyCall 来启动SOS紧急呼叫页面。具体步骤如下:

  1. 导入模块:在代码中导入 @ohos.telephony.emergencyCall 模块。
  2. 检查支持性:使用 hasEmergencyCall 接口检查设备是否支持紧急呼叫功能。
  3. 启动页面:调用 startEmergencyCall 接口,传入紧急号码(如 “110”、“119” 等)或空字符串(系统将显示紧急呼叫页面),即可跳转到SOS紧急呼叫界面。

示例代码如下:

import emergencyCall from '@ohos.telephony.emergencyCall';

// 检查是否支持紧急呼叫
let isSupported = emergencyCall.hasEmergencyCall();
if (isSupported) {
  // 跳转到SOS紧急呼叫页面(传入空字符串显示系统默认页面)
  emergencyCall.startEmergencyCall('', (err) => {
    if (err) {
      console.error('启动紧急呼叫失败: ' + JSON.stringify(err));
    }
  });
}

注意事项:

  • 该功能需要申请 ohos.permission.PLACE_CALL 权限,并在配置文件中声明。
  • 确保设备具备通话能力(如插入SIM卡),否则可能无法正常启动。
  • 传入的紧急号码需符合本地法规要求,部分区域可能限制特定号码。

通过以上方法,可直接跳转至系统SOS紧急呼叫页面,而非紧急联系人列表。

回到顶部