texto puedo porque numero mensajes mensaje enviar desde como celular android delphi sms firemonkey delphi-xe5

puedo - Cómo enviar SMS con Delphi XE5 en Android



mensajes de texto (4)

¿Alguien sabe cómo hacer que esto funcione? Lo más cercano que obtuve fue el código de abajo, pero no tuve éxito. Al principio, le da alguna esperanza cuando le dice que necesita el permiso SEND_SMS . ¡Pero después de configurar este permiso, no pasa nada!

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;


El segundo parámetro para sendTextMessage no es el número "remitente", sino que identifica al centro de servicio del proveedor de SMS.

Es casi seguro que no quisiste especificar nada aquí. Simplemente pase nulo y SMSManager usará el centro de servicio predeterminado del dispositivo para entregar su mensaje.

sRecipient := StringToJString(edRecipient.Text); sMessage := StringToJString(edMessage.Text); sendTextMessage(sRecipient, nil, sMessage, nil, nil);


Intente pasar un valor vacío ( nil ) al parámetro scAddress de la llamada a la función sendTextMessage para usar el centro de SMS predeterminado actual:

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;


También puedes hacerlo con objeto JIntend como abajo

procedure CreateSms(const Number, Msg: string); var Intent: JIntent; Uri: Jnet_Uri; begin Uri := TJnet_Uri.JavaClass.parse(StringToJString(Format(''smsto:%s'', [Number]))); Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW, Uri); Intent.putExtra(StringToJString(''sms_body''), StringToJString(Msg)); SharedActivity.startActivity(Intent); end;