且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何发送短信用Delphi XE5 Android中

更新时间:2023-12-02 10:47:46

试图通过空值()的 scAddress 的参数sendTextMessage$c$c>函数调用使用当前默认的短信中心:

 用途
  Androidapi.JNI.JavaTypes,Androidapi.JNI.Telephony;

程序TForm1.Button1Click(发件人:TObject的);
变种
  smsTo:的jstring;
  SmsManager的:JSmsManager;
开始
  SmsManager的:= TJSmsManager.JavaClass.getDefault;
  smsTo:= StringToJString('091 ......');
  smsManager.sendTextMessage(smsTo,零,StringToJString(测试SMS),无,无);
结束;
 

Does anybody know how to get this to work? The closest I got was the code below, but got no success. At first, it gives you some hope when it tells you need the SEND_SMS permission. But after you setup this permission, nothing happens!

uses
 Androidapi.JNI.JavaTypes;

procedure TForm1.Button1Click(Sender: TObject);
var
  smsManager: JSmsManager;
  smsTo, smsFrom: JString;
begin
  smsManager:= TJSmsManager.JavaClass.getDefault;
  smsTo:= StringToJString('552199999999'); //replace with the right destination number
  smsFrom:= StringToJString('552499999999'); //replace with the right originator number
  smsManager.sendTextMessage(smsTo, smsFrom, StringToJString(Edit1.Text), nil, nil);
end;

Try to pass empty value (nil) to the scAddress parameter of the sendTextMessage function call to use the current default SMS center:

uses
  Androidapi.JNI.JavaTypes, Androidapi.JNI.Telephony;

procedure TForm1.Button1Click(Sender: TObject);
var
  smsTo: JString;
  smsManager: JSmsManager;
begin
  smsManager := TJSmsManager.JavaClass.getDefault;
  smsTo := StringToJString('091...');
  smsManager.sendTextMessage(smsTo, nil, StringToJString('Test SMS'), nil, nil);
end;