国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

詳解Android短信的發送和廣播接收實現短信的監聽

2019-12-12 04:45:29
字體:
來源:轉載
供稿:網友

本文介紹了Android短信的發送和廣播接收者實現短信的監聽,要注意Android清單中權限的設置以及廣播的注冊監聽實現,廢話不多說,代碼如下:

以下就是 Android清單的XML

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"  package="com.zyw.broadcastsendsms"  android:versionCode="1"  android:versionName="1.0" >  <uses-sdk    android:minSdkVersion="8"    android:targetSdkVersion="15" />  <application    android:icon="@drawable/ic_launcher"    android:label="@string/app_name"    android:theme="@style/AppTheme" >    <activity      android:name=".SendSMS"      android:label="@string/title_activity_send_sms" >      <intent-filter>        <action android:name="android.intent.action.MAIN" />        <category android:name="android.intent.category.LAUNCHER" />      </intent-filter>          </activity>    <receiver android:name=".SMSBroadcastReceiver">      <intent-filter android:priority="1000">        <action android:name="android.provider.Telephony.SMS_RECEIVED"/>      </intent-filter>    </receiver>      </application>  <uses-permission android:name="android.permission.SEND_SMS"></uses-permission><!--添加權限-->  <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>   <uses-permission android:name="android.permission.READ_SMS"></uses-permission> </manifest>

發送短息的主界面mian.xml和實現Activity    SendSMS.java

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  android:orientation="vertical"  android:padding="10sp" >  <TextView    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="手機號碼" />  <EditText    android:id="@+id/Number"    android:numeric="integer"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:hint="請輸入電話號碼" />  <TextView    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="短信內容" />  <EditText    android:id="@+id/Content"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:hint="請輸入短信內容"    android:lines="3" />  <TextView    android:layout_width="fill_parent"    android:layout_height="wrap_content" >  </TextView>  <Button    android:id="@+id/btnSend"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:gravity="center"    android:paddingTop="20sp"    android:text="發送短信"     android:onClick="send"    /> </LinearLayout>

實現Activity 
SendSMS.java

package com.zyw.broadcastsendsms;import java.util.ArrayList;import android.app.Activity;import android.os.Bundle;import android.telephony.SmsManager;import android.view.View;import android.widget.EditText;import android.widget.Toast;public class SendSMS extends Activity{  private EditText num;  private EditText content;    @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    num=(EditText) findViewById(R.id.Number);    content=(EditText) findViewById(R.id.Content);  }    public void send(View view ) {    String strNo=num.getText().toString();    String strContent=content.getText().toString();        SmsManager smsManager = SmsManager.getDefault();    //如果字數超過5,需拆分成多條短信發送    if (strContent.length() > 5) {      ArrayList<String> msgs = smsManager.divideMessage(strContent);      for (String msg : msgs) {        smsManager.sendTextMessage(strNo, null, msg, null, null);                  }    } else {      smsManager.sendTextMessage(strNo, null, strContent, null, null);    }    num.setText("");    content.setText("");        Toast.makeText(SendSMS.this, "短信發送完成", Toast.LENGTH_LONG).show();  }}

廣播接收者實現短信的監聽  SMSBroadcastReceiver.java

package com.zyw.broadcastsendsms;import java.text.SimpleDateFormat;import java.util.Date;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.telephony.SmsMessage;import android.widget.Toast;public class SMSBroadcastReceiver extends BroadcastReceiver {  public void onReceive(Context context, Intent intent) {    SmsMessage msg = null;      Bundle bundle = intent.getExtras();      if (bundle != null) {        Object[] pdusObj = (Object[]) bundle.get("pdus");        for (Object p : pdusObj) {          msg= SmsMessage.createFromPdu((byte[]) p);                    String msgTxt =msg.getMessageBody();//得到消息的內容                    Date date = new Date(msg.getTimestampMillis());//時間          SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");          String receiveTime = format.format(date);                    String senderNumber = msg.getOriginatingAddress();                if (msgTxt.equals("Testing!")) {          Toast.makeText(context, "success!", Toast.LENGTH_LONG)              .show();          System.out.println("success!");          return;        } else {          Toast.makeText(context, msgTxt, Toast.LENGTH_LONG).show();          System.out.println("發送人:"+senderNumber+" 短信內容:"+msgTxt+"接受時間:"+receiveTime);          return;        }      }      return;    }  }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 芦溪县| 天峻县| 张家口市| 图木舒克市| 葵青区| 盘锦市| 鄂托克旗| 清丰县| 泸定县| 绩溪县| 枞阳县| 环江| 崇义县| 尚志市| 金川县| 抚松县| 榆林市| 河间市| 板桥市| 兰西县| 翼城县| 锡林郭勒盟| 武定县| 阳谷县| 晴隆县| 宁河县| 兰州市| 孝昌县| 齐齐哈尔市| 土默特右旗| 郑州市| 金乡县| 深水埗区| 惠州市| 西安市| 高雄市| 通许县| 当雄县| 洛隆县| 商南县| 兴安县|