AndroidアプリケーションはSMS Intent放送を傍受する
2622 ワード
デバイスが新しいSMSメッセージを受信とandroidを含むブロードキャストがブロードキャストされる.provider.Telephony.SMS_RECEIVED動作のIntent.
アプリケーションがSMS Intentブロードキャストをリスニングするには、まずRECEIVE_を追加する必要があります.SMS権限.次のセグメントに示すように、アプリケーションmanifestにuses-permissionを追加します.
AndroidManifest.xmlコード:
SMSBroadcastReceiver.JAvaのソース:
各SmsMessageオブジェクトには、ソースアドレス(携帯電話番号)、時間、およびメッセージボディを含むSMSメッセージの詳細が含まれます.
そしてあなたは自分の操作を実現することができます.
具体的にどのように実現された放送かは後で具体的に分析します.
アプリケーションが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メッセージの詳細が含まれます.
そしてあなたは自分の操作を実現することができます.
具体的にどのように実現された放送かは後で具体的に分析します.