AndroidアプリケーションはSMS Intent放送を傍受する

2622 ワード

デバイスが新しいSMSメッセージを受信とandroidを含むブロードキャストがブロードキャストされる.provider.Telephony.SMS_RECEIVED動作のIntent.
 
アプリケーションがSMS Intentブロードキャストをリスニングするには、まずRECEIVE_を追加する必要があります.SMS権限.次のセグメントに示すように、アプリケーションmanifestにuses-permissionを追加します.

AndroidManifest.xmlコード:
 
<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

      package="cn.tbx.sms"

      android:versionCode="1"

      android:versionName="1.0">

    <application android:icon="@drawable/icon" android:label="@string/app_name">

		<receiver android:name=".SMSBroadcastReceiver">

			<intent-filter>

				<action android:name="android.provider.Telephony.SMS_RECEIVED"/>

			</intent-filter>

		</receiver>



    </application>

    <uses-sdk android:minSdkVersion="8" />

<uses-permission android:name="android.permission.RECEIVE_SMS"/><!--        -->

 <!--         -->

<uses-permission android:name="android.permission.INTERNET"/>

</manifest>

SMSBroadcastReceiver.JAvaのソース:
 
 
package cn.itcast.sms;



import java.sql.Date;

import java.text.SimpleDateFormat;

import java.util.HashMap;

import java.util.Map;



import cn.itcast.utils.SocketHttpRequester;



import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.telephony.SmsMessage;

import android.util.Log;



public class SMSBroadcastReceiver extends BroadcastReceiver {

    //              ,               

	@Override

	public void onReceive(Context context, Intent intent) {

		Object[] pduses = (Object[])intent.getExtras().get("pdus");

		for(Object pdus : pduses){

			byte[] pdusmessage = (byte[]) pdus;//    

			SmsMessage sms = SmsMessage.createFromPdu(pdusmessage);

			String mobile = sms.getOriginatingAddress();//      

			String content = sms.getMessageBody();//       

			Date date = new Date(sms.getTimestampMillis());//          

			//2009-10-12 12:21:23

			SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//       

			String sendtime = format.format(date);

			.....

		}

	}



}

各SmsMessageオブジェクトには、ソースアドレス(携帯電話番号)、時間、およびメッセージボディを含むSMSメッセージの詳細が含まれます.
そしてあなたは自分の操作を実現することができます.
具体的にどのように実現された放送かは後で具体的に分析します.