SMS raw pdu в Android

1) Есть ли способ, которым я могу отправить необработанный PDU с Android-устройства?


2) существуют ли доступные классы, которые могут дать мне доступ к заголовкам PDU (например, TP-DCS), чтобы я мог построить PDU по своему усмотрению?

Я обыскал сеть и нашел:, но вышеуказанные классы являются частными и, как таковые, недоступны мне (гавань Фактически я понял почему).

Является ли то, что я прошу, в любом случае или нет? Если нет, то почему у меня нет такой функциональности?


Это запрошенная функция для публичного API.

Комментарии разработчика sendRawPdu на использование sendRawPdu из внутреннего API SMSDispatcher , который можно сделать с помощью отражения . Однако использование частных API для производственного кода сильно обескуражено

Неясно, можно ли отправлять с использованием общедоступного API 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) { 

В заключение: Неясно, возможно ли это. У меня такой же вопрос, как и вы.

Я знаю как. и xposed framework
Вам нужно будет укоренить свой телефон, чтобы использовать модуль xposed -raw-pdu, но он работает. Hush-sms предоставляет функциональность / расширяемость api для отправки 7 сырых смс-типов.