HarmonyOS鸿蒙Next中可以通过api开启免打扰模式吗

HarmonyOS鸿蒙Next中可以通过api开启免打扰模式吗 是否有相关的api可以实现这个功能

2 回复
您好,可以采取以下方式解决:

通常跳转系统应用的场景有两类:**跳转系统设置的各级页面**以及**跳转其他系统应用**。

- 跳转**系统设置的各级页面**Want参数需指定bundleName与abilityName,如需跳转设置相关子页面,除了指定bundleName与abilityName外,通常还需要填写对应uri与parameters,如下表格给出了常用各类设置子页面的uri与parameters配置信息:

| 页面 | bundleName | abilityName | uri | parameters |
|------|------------|-------------|-----|------------|
| WLAN页 | com.huawei.hmos.settings | com.huawei.hmos.settings.MainAbility | wifi_entry | / |
| 蓝牙页 | com.huawei.hmos.settings | com.huawei.hmos.settings.MainAbility | bluetooth_entry | / |
| 位置页 | com.huawei.hmos.settings | com.huawei.hmos.settings.MainAbility | location_manager_settings | / |
| 指定应用信息页 | com.huawei.hmos.settings | com.huawei.hmos.settings.MainAbility | application_info_entry | APPbundleName |
| 应用与元服务页 | com.huawei.hmos.settings | com.huawei.hmos.settings.MainAbility | application_info_entry | / |
| 声音和振动 | com.huawei.hmos.settings | com.huawei.hmos.settings.MainAbility | volume_settings | / |

注:"/"代表无需配置;"APPbundleName"为指定应用的bundleName,获取方式可参考[官网](https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs/faqs-package-structure-26)。

跳转系统设置页及子页面可参考如下代码进行配置:

```typescript
// 跳转系统设置页及子页面配置参考
let want: Want = {
  bundleName: "com.huawei.hmos.settings",
  abilityName: "com.huawei.hmos.settings.MainAbility",
  uri:"xxxx",
  parameters: {
    pushParams: "xxxxx"
  }
}
context.startAbility(want)

// 跳转到设置的声音和振动;包含铃声、声音模式、免打扰等
let want: Want = {
  bundleName: 'com.huawei.hmos.settings',
  abilityName: 'com.huawei.hmos.settings.MainAbility',
  uri: "volume_settings",
  parameters: {
    // 传对应应用的包名
    pushParams: 'com.example.gotosettings'
  }
};
context.startAbility(want)
  • 跳转其他系统应用,例如浏览器、应用市场、短信、联系人、文件管理器等,Want参数配置情况各有不同,各类系统应用Want相关配置可参考如下表格:
应用 action bundleName abilityName uri parameters
浏览器 ohos.want.action.viewData com.huawei.hmos.browser MainAbility 需自行构建,可参考下列代码 /
文件管理器 / com.huawei.hmos.filemanager MainAbility / /
短信 / com.ohos.mms com.ohos.mms.MainAbility / 需自行构建,可参考下列代码
联系人 / com.ohos.contacts com.ohos.contacts.MainAbility / 需自行构建,可参考下列代码
应用市场 / / / store://appgallery.huawei.com/app/detail?id=C${APPID} /

注:"/"代表无需配置;"APPID"为应用在AGC上对应的APPID

代码参考如下:

// 跳转浏览器并传递参数
let want: Want = {
  action: "ohos.want.action.viewData", // 表示要执行操作
  bundleName: 'com.huawei.hmos.browser', // 系统浏览器对应bundleName
  abilityName: 'MainAbility', // 系统浏览器对应abilityName
  uri: "https://www.huawei.com/", // 传递的参数
}
// 跳转应用市场指定应用
let want: Want = {
  uri: "store: // appgallery.huawei.com/app/detail?id=C+应用在应用商城的ID"
}
// 跳转短信并传递参数
export class Contact { // 构造联系人
  contactsName: string;
  telephone: number;

  constructor(contactsName: string, telephone: number) {
    this.contactsName = contactsName;
    this.telephone = telephone;
  }
}
let params: Array<Object> = [new Contact("张三", 12345678912)]

let want:Want = {
  bundleName: 'com.ohos.mms', // 短信对应的bundleName
  abilityName: 'com.ohos.mms.MainAbility', // 短信对应的abilityName
  parameters: {
    contactObjects: JSON.stringify(params), // 联系人信息
    content:"xxxxxxxxxx", // 短信内容
    pageFlag: 'conversation'
  }
}
// 跳转联系人并传递参数
let want: Want = {
  bundleName: 'com.ohos.contacts',
  abilityName: 'com.ohos.contacts.MainAbility',
  parameters: {
    'phoneNumber': 'xxxxxxx', // 需新增联系人电话
    'contactName': 'xxxx', // 需新增联系人姓名
    'pageFlag': 'page_flag_save_contact'
  }
}
// 跳转文件管理器
let want: Want = {
  bundleName: 'com.huawei.hmos.filemanager',
  abilityName: 'MainAbility',
}
let context = getContext(this) as common.UIAbilityContext
context.startAbility(want)

更多关于HarmonyOS鸿蒙Next中可以通过api开启免打扰模式吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,可以通过NotificationManager类的setDoNotDisturbMode方法来开启免打扰模式。具体实现如下:

NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.setDoNotDisturbMode(NotificationManager.DO_NOT_DISTURB_MODE_ALARMS);

此代码将设备设置为仅允许闹钟通知的免打扰模式。你可以根据需要调整模式参数,如DO_NOT_DISTURB_MODE_NONE(关闭免打扰)或DO_NOT_DISTURB_MODE_PRIORITY(仅允许优先通知)。

回到顶部