Go Android SMS send and receive monitor
Last Update:2016-02-01
Source: Internet
Author: User
<span id="Label3"></p><code class="java preprocessor"><code class="java preprocessor">/**发送与接收的广播**/</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">String SENT_SMS_ACTION = </code></code><code class="java string"><code class="java string">"SENT_SMS_ACTION"</code></code><code class="java plain"><code class="java plain">;</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">String DELIVERED_SMS_ACTION = </code></code><code class="java string"><code class="java string">"DELIVERED_SMS_ACTION"</code></code><code class="java plain"><code class="java plain">;</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java keyword"><code class="java keyword">private</code></code><code class="java plain"><code class="java plain">BroadcastReceiver sendMessage = </code></code><code class="java keyword"><code class="java keyword">new</code></code> <code class="java plain"><code class="java plain">BroadcastReceiver() {</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java color1"><code class="java color1">@Override</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java keyword"><code class="java keyword">public</code></code><code class="java keyword"><code class="java keyword">void</code></code><code class="java plain"><code class="java plain">onReceive(Context context, Intent intent) {</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">Log.i(</code></code><code class="java string"><code class="java string">"TAG"</code></code><code class="java plain"><code class="java plain">, </code></code><code class="java string"><code class="java string">"send。。"</code></code> <code class="java plain"><code class="java plain">+ intent.getAction() + </code></code><code class="java string"><code class="java string">"---"</code></code><code class="java plain"><code class="java plain">+ getResultCode() + </code></code><code class="java string"><code class="java string">"---"</code></code><code class="java plain"><code class="java plain">+ getResultData());</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java comments"><code class="java comments">//判断短信是否发送成功 </code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java keyword"><code class="java keyword">switch</code></code><code class="java plain"><code class="java plain">(getResultCode()) {</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java keyword"><code class="java keyword">case</code></code> <code class="java plain"><code class="java plain">Activity.RESULT_OK:</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">Toast.makeText(context, </code></code><code class="java string"><code class="java string">"短信发送成功"</code></code><code class="java plain"><code class="java plain">, Toast.LENGTH_SHORT).show();</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java keyword"><code class="java keyword">break</code></code><code class="java plain"><code class="java plain">;</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java keyword"><code class="java keyword">default</code></code><code class="java plain"><code class="java plain">:</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">Toast.makeText(mContext, </code></code><code class="java string"><code class="java string">"发送失败"</code></code><code class="java plain"><code class="java plain">, Toast.LENGTH_LONG).show();</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java keyword"><code class="java keyword">break</code></code><code class="java plain"><code class="java plain">;</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">}</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">}</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">};</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java keyword"><code class="java keyword">private</code></code><code class="java plain"><code class="java plain">BroadcastReceiver receiver = </code></code><code class="java keyword"><code class="java keyword">new</code></code><code class="java plain"><code class="java plain">BroadcastReceiver() {</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java color1"><code class="java color1">@Override</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java keyword"><code class="java keyword">public</code></code><code class="java keyword"><code class="java keyword">void</code></code><code class="java plain"><code class="java plain">onReceive(Context context, Intent intent) {</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">Log.i(</code></code><code class="java string"><code class="java string">"TAG"</code></code><code class="java plain"><code class="java plain">, </code></code><code class="java string"><code class="java string">"receiver。。"</code></code><code class="java plain"><code class="java plain">+ intent.getAction() + </code></code><code class="java string"><code class="java string">"---"</code></code><code class="java plain"><code class="java plain">+ getResultCode() + </code></code><code class="java string"><code class="java string">"---"</code></code><code class="java plain"><code class="java plain">+ getResultData());</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java comments"><code class="java comments">//表示对方成功收到短信 </code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">Toast.makeText(mContext, </code></code><code class="java string"><code class="java string">"对方接收成功"</code></code><code class="java plain"><code class="java plain">, Toast.LENGTH_LONG).show();</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">}</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">};</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java preprocessor"><code class="java preprocessor">/** </code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java preprocessor"><code class="java preprocessor">* 参数说明 </code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java preprocessor"><code class="java preprocessor">* destinationAddress:收信人的手机号码 </code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java preprocessor"><code class="java preprocessor">* scAddress:发信人的手机号码 </code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java preprocessor"><code class="java preprocessor">* text:发送信息的内容 </code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java preprocessor"><code class="java preprocessor">* sentIntent:发送是否成功的回执,用于监听短信是否发送成功。 </code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java preprocessor"><code class="java preprocessor">* DeliveryIntent:接收是否成功的回执,用于监听短信对方是否接收成功。 </code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java preprocessor"><code class="java preprocessor">*/</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java keyword"><code class="java keyword">private</code></code><code class="java keyword"><code class="java keyword">void</code></code><code class="java plain"><code class="java plain">sendSMS(String phoneNumber, String message) {</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java comments"><code class="java comments">// ---sends an SMS message to another device--- </code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">SmsManager sms = SmsManager.getDefault();</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java comments"><code class="java comments">// create the sentIntent parameter </code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">Intent sentIntent = </code></code><code class="java keyword"><code class="java keyword">new</code></code><code class="java plain"><code class="java plain">Intent(SENT_SMS_ACTION);</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">PendingIntent sentPI = PendingIntent.getBroadcast(</code></code><code class="java keyword"><code class="java keyword">this</code></code><code class="java plain"><code class="java plain">, </code></code><code class="java value"><code class="java value">0</code></code><code class="java plain"><code class="java plain">, sentIntent, </code></code><code class="java value"><code class="java value">0</code></code><code class="java plain"><code class="java plain">);</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java comments"><code class="java comments">// create the deilverIntent parameter </code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">Intent deliverIntent = </code></code><code class="java keyword"><code class="java keyword">new</code></code><code class="java plain"><code class="java plain">Intent(DELIVERED_SMS_ACTION);</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">PendingIntent deliverPI = PendingIntent.getBroadcast(</code></code><code class="java keyword"><code class="java keyword">this</code></code><code class="java plain"><code class="java plain">, </code></code><code class="java value"><code class="java value">0</code></code><code class="java plain"><code class="java plain">, deliverIntent, </code></code><code class="java value"><code class="java value">0</code></code><code class="java plain"><code class="java plain">);</code></code> <code class="java spaces"><code class="java spaces"> </code></code><code class="java comments"><code class="java comments">//如果短信内容超过70个字符 将这条短信拆成多条短信发送出去 </code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java keyword"><code class="java keyword">if</code></code><code class="java plain"><code class="java plain">(message.length() > </code></code><code class="java value"><code class="java value">70</code></code><code class="java plain"><code class="java plain">) {</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">ArrayList<String> msgs = sms.divideMessage(message);</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java keyword"><code class="java keyword">for</code></code> <code class="java plain"><code class="java plain">(String msg : msgs) {</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">sms.sendTextMessage(phoneNumber, </code></code><code class="java keyword"><code class="java keyword">null</code></code><code class="java plain"><code class="java plain">, msg, sentPI, deliverPI);</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">}</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">} </code></code><code class="java keyword"><code class="java keyword">else</code></code><code class="java plain"><code class="java plain">{</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">sms.sendTextMessage(phoneNumber, </code></code><code class="java keyword"><code class="java keyword">null</code></code><code class="java plain"><code class="java plain">, message, sentPI, deliverPI);</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">}</code></code><code class="java spaces"><code class="java spaces"> </code></code><code class="java plain"><code class="java plain">}</code></code>Excerpt from: http://my.oschina.net/onlytwo/blog/260713<p><p>Go Android SMS send and receive monitor</p></p></span>