1

我知道如何从 Android 发送短信。这很简单:

var   
  smsTo: JString;
  smsManager: JSmsManager;
begin
  smsManager := TJSmsManager.JavaClass.getDefault;
  smsTo := StringToJString('number_xxx');
  smsManager.sendTextMessage(smsTo, nil, StringToJString('Test SMS'), nil, nil);

但问题是:如何向收件人发送短信?Delphi XE5可以吗?

感谢您的回答。乔治

4

1 回答 1

1

来自Android 的文档

参数

  • destinationAddress 将消息发送到的地址
  • scAddress 是服务中心地址或 null 使用当前默认 SMSC
  • text要发送的消息正文
  • sentIntent 如果不为 NULL,则在消息发送成功或失败时广播此 PendingIntent。结果代码将是 Activity.RESULT_OK 表示成功或以下错误之一:RESULT_ERROR_GENERIC_FAILURE RESULT_ERROR_RADIO_OFF RESULT_ERROR_NULL_PDU。基于每个应用程序的 SMS 控制检查 sentIntent。如果 sentIntent 为 NULL,则调用者将针对所有未知应用程序进行检查,这会导致在检查期间发送的 SMS 数量较少。
  • deliveryIntent 如果不为 NULL,则在将消息传递给收件人时广播此 PendingIntent。状态报告的原始 pdu 位于扩展数据(“pdu”)中。

您显然缺少代码中的最后两个参数。

下面是如何在 Java 中做到这一点 - 它非常简单,但 Delphi 对我们来说有点困难。看看这里的答案。最有趣的是答案中的第一个链接

基本上,您需要使用 JNI 包装器直接与 Java 类进行通信,因为 Delphi 没有公开此处所需的功能 - 至少我什么都不知道。

祝你好运!

于 2013-10-19T13:15:13.747 回答