Ceci est une fonctionnalité requested pour l'API publique.
Les commentaires du développeur suggèrent d'utiliser le sendRawPdu
de l'API interne SMSDispatcher
, ce qui peut être fait via reflection. Cependant, l'utilisation d'API privées pour le code de production est fortement déconseillée
Il n'est pas clair s'il est possible d'envoyer en utilisant l'API publique TelephonyManager
.
/*
* TODO(cleanup): It looks like there is now no useful reason why
* apps should generate pdus themselves using these routines,
* instead of handing the raw data to SMSDispatcher (and thereby
* have the phone process do the encoding). Moreover, CDMA now
* has shared state (in the form of the msgId system property)
* which can only be modified by the phone process, and hence
* makes the output of these routines incorrect. Since they now
* serve no purpose, they should probably just return null
* directly, and be deprecated. Going further in that direction,
* the above parsers of serialized pdu data should probably also
* be gotten rid of, hiding all but the necessarily visible
* structured data from client apps. A possible concern with
* doing this is that apps may be using these routines to generate
* pdus that are then sent elsewhere, some network server, for
* example, and that always returning null would thereby break
* otherwise useful apps.
*/
/**
* Get an SMS-SUBMIT PDU for a destination address and a message
*
* @param scAddress Service Centre address. Null means use default.
* @return a <code>SubmitPdu</code> containing the encoded SC
* address, if applicable, and the encoded message.
* Returns null on encode error.
* @hide
*/
public static SubmitPdu getSubmitPdu(String scAddress,
String destinationAddress, String message,
boolean statusReportRequested, byte[] header) {
En conclusion: On ne sait pas si cela est possible. J'ai la même question que toi.
Après tant de temps et après avoir pu me reconnecter à mon compte. Merci beaucoup pour la réponse! – zlinks