SMS raw pdu в Android - PullRequest
       8

SMS raw pdu в Android

7 голосов
/ 15 сентября 2010

1) Можно ли как-нибудь отправить необработанный SMS PDU с устройства Android?

Или,

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

Я обыскал сеть и нашел: http://www.androidjavadoc.com/1.0_r1_src/com/android/internal/telephony/gsm/ISms.html но вышеупомянутые классы являются частными и, как таковые, мне не доступны (на самом деле не поняли, почему).

Возможно ли то, что я спрашиваю, или нет? Если нет, то почему я не могу иметь такую ​​функциональность?

Thanx

Ответы [ 2 ]

5 голосов
/ 20 февраля 2011

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

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

Не ясно, можно ли отправлять с использованием общедоступного TelephonyManager API.

/*
 * 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) {

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

1 голос
/ 16 июня 2014

Я знаю как. http://www.silentservices.de/products/android-hushsms/ и xposed рамки http://repo.xposed.info/module/de.robv.android.xposed.installer
Вам понадобится рутировать свой телефон, чтобы использовать модуль xposed raw-pdu, но он работает. Hush-sms предоставляет API-функциональность / расширяемость для отправки 7 необработанных типов sms.

...