HarmonyOS 短信服务是否提供像call.makeCall一样的方法进入发短信界面?

  1. 我们使用 @ohos.telephony.call提供的call.makeCall可以电话拨号界面
  2. 请问@ohos.telephony.sms模块中sms.sendMessage是直接无界面发送短信,还是类似与call.makeCall跳转到发短信界面,由用户触发发送操作
  3. 我们期望在sms模块中提供类似于call.makeCall的实现
阅读 586
1 个回答

短信服务是直接在应用界面实现发短信的能力。但sms.sendMessage需要调用系统能力发送短信,申请权限,当前权限不开放。

可以通过跳转短信应用来完成发送信息的操作。

可以调用元能力startAbility接口指定号码并跳转到发送短信页面,参考以下示例代码:

import common from '@ohos.app.ability.common';
import Want from '@ohos.app.ability.Want';

const MMS_BUNDLE_NAME = "com.ohos.mms";
const MMS_ABILITY_NAME = "com.ohos.mms.MainAbility";
const MMS_ENTITIES = 'entity.system.home';

export class Contact {
  contactsName: string;
  telephone: number;

  constructor(contactsName: string, telephone: number) {
    this.contactsName = contactsName;
    this.telephone = telephone;
  }
}

@Entry
@Component
struct JumpMessage {
  private context = getContext(this) as common.UIAbilityContext

  startMMSAbilityExplicit() {
    // 这里完善联系人和号码
    let params: Array<Object> = [new Contact("张三", 13344556677)];

    let want: Want = {
      bundleName: "com.ohos.mms",
      abilityName: "com.ohos.mms.MainAbility",
      parameters: {
        contactObjects: JSON.stringify(params),
        pageFlag: "conversation",
        // 这里填写短信内容
        content: "我才是测试内容"
      }
    };
    this.context.startAbilityForResult(want).then((data) => {
      console.log("Success" + JSON.stringify(data))
    }).catch(() => {
      console.log("error")
    })
  }

  build() {
    Row() {
      Column() {
        Button('发送短信')
          .onClick(() => {
            this.startMMSAbilityExplicit();
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进