您的位置:首页 > 其它

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

2013-12-20 10:31 357 查看
<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"/>


外拨电话是广播接收者 接电话 是服务
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: