当前位置: 首页 > 面试题库 >

Android中的SMS原始pdu

东方飞捷
2023-03-14
问题内容

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中显示一个视频流,该流是原始的H.264,我正在连接到一个服务器,并将从服务器接收一个字节流。 基本上,我想知道有没有一种方法可以将原始字节发送到android的解码器并显示在Surface上? 我使用Android4.1中新的MediaCodec和MediaExtractor API成功地解码了包装在mp4容器中的H264,不幸的是,我没有找到使用这些API

  • 我尝试从res/raw文件夹播放音频文件,这是我用来播放文件的代码,这不会产生任何错误,并且我的设备音量最大,但没有任何声音。我尝试了MP3和WAV文件。 启动后我在 LogCat 上收到以下消息 帮助我解决这个问题,将不胜感激。

  • 我的原始资源中有. mp3、. mp4和. jpg文件。我想与社交应用程序共享这些文件。出于这个原因,我尝试设置文件提供程序,但没有成功。 清单: 路径。xml: 这就是我尝试共享文件的方式(在这种情况下是音频): 对象的返回这样的Uri: 当我运行它时,我要么没有得到任何错误,但意图没有显示,我的活动被重建,要么我得到这个: 我试图从Uri中删除/raw,但我得到了相同的错误: 为什么会发生这种

  • 1)android TargetSDKVersion30 requestLegacyExternalStorage=false。 在基于cordova的android应用程序中,从javascript级别完成XMLHttpRequest请求。 3)XMLHttpRequest引发错误 5)android targetSdkVersion 29 requestLegacyExternalStorag

  • 问题内容: 我只想创建一个像这样的File对象 但是它给了我 FileNotFoundException的 例外我 如何在我的原始文件夹中引用一个文件 编辑: 其实我想做这样的事情 问题答案: 这是2个功能。一种是从RAW读取的,另一种是从资产读取的 并从资产文件夹