现在的位置: 首页 > 综合 > 正文

广播接收者 作用:短信监听器, 转播电话,重启监听

2013年01月19日 ⁄ 综合 ⁄ 共 2073字 ⁄ 字号 评论关闭
 <uses-permission android:name="android.permission.RECEIVE_SMS" />
  <receiver android:name="com.example.smsmanager.SmsListener" >
            <intent-filter android:priority="100" >
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.gsm.SmsMessage;
import android.widget.Toast;


public class SmsListener extends BroadcastReceiver {


 @Override
 public void onReceive(Context context, Intent intent) {
 //获取意图里面存放的短信数组
 System.out.println("-----------");
 Object[] objs=(Object[]) intent.getExtras().get("pdus");
 for (Object object : objs) {
 SmsMessage smsMessage=SmsMessage.createFromPdu((byte[])object);
 String body = smsMessage.getMessageBody();
 String sender = smsMessage.getOriginatingAddress();
 System.out.println("body:"+body);
 System.out.println("sender:"+sender);
 Toast.makeText(context, body+sender+"", 0).show();
// abortBroadcast();
 }
 }
}

低版本 进程都不需要操作 高版本上进程需要存在
-------------------------------
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>

<receiver android:name=".OutCallRecevier">
            <intent-filter>
                <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
            </intent-filter>
        </receiver>

public class OutCallRecevier extends BroadcastReceiver {


 @Override
 public void onReceive(Context context, Intent intent) {
 if("10086".equals(getResultData())){
 setResultData("1350000000");
 }
 }
}

--------------------------------------------

利用广播接收者 监听重启

package com.example.test;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class BootReceiver extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		// TODO Auto-generated method stub
System.out.println("手机重启完毕了");
Intent service=new Intent(context,PhoneLinstenService.class);
context.startActivity(service);
	}

}
<receiver android:name="com.example.test.BootReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"></action>
            </intent-filter>
        </receiver>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

 外拨电话是广播接收者 接电话 是服务

抱歉!评论已关闭.