Android中的SMS原始pdu

1)有什么方法可以从Android设备发送原始SMS PDU?

要么,

2)是否有可用的类可以使我访问PDU标头(例如TP-DCS),以便我可以按自己的喜好构造PDU?

我已经在网上搜索并发现:http

:

//www.androidjavadoc.com/1.0_r1_src/com/android/internal/telephony/gsm/ISms.html,

但以上类是私有的,因此对我不可用(避难所)实际上不明白为什么)。

我要问的内容是否有可能?如果不是,那我为什么不能拥有这种功能?

谢谢

回答:

这是公共API所要求的功能。

开发人员的注释暗示了使用sendRawPdu内部SMSDispatcherAPI的,可以通过反射来完成。但是,强烈建议不要将私有API用于生产代码

尚不清楚是否可以使用公共TelephonyManagerAPI 发送。

/*

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

结论:尚不清楚是否可行。我和你有同样的问题。

以上是 Android中的SMS原始pdu 的全部内容, 来源链接: utcz.com/qa/397831.html

回到顶部