短信广播:
注册:
<receiver android:name="receiver.SmsReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
权限:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
广播接收者:
public class SmsReceiver extends BroadcastReceiver{
//获取短信到来的广播,并取出短信内容
//所有的广播数据,都存在intent参数中
@Override
public void onReceive(Context context, Intent intent) {
Object[] obj = (Object[]) intent.getExtras().get("pdus");
StringBuilder builder = new StringBuilder();
for (Object o:obj) {
//获取每一条短信对象
SmsMessage mess = SmsMessage.createFromPdu((byte[])o);
Log.i("","==== 短信来电号码"+mess.getDisplayOriginatingAddress());
builder.append(mess.getMessageBody());
}
Log.i("","=== 短信完整内容为:"+builder.toString());
}
}
耳机插拔广播:
广播action名称:AudioManager.ACTION_HEADSET_PLUG
广播接收后的处理:
@Override
public void onReceive(Context context, Intent intent) {
if (intent.hasExtra("state")){
if (intent.getIntExtra("state" , 0) == 1){
Toast.makeText(context, "耳机已插入!", Toast.LENGTH_LONG).show();
} else if(intent.getIntExtra("state" , 0) == 0){
Toast.makeText(context, "耳机已拔出", Toast.LENGTH_LONG).show();
}
}
}
网络状态:
广播动作:ConnectivityManager.CONNECTIVITY_ACTION
权限:
`<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />`
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
// 获取网络状态信息
netInfo = mConnectivityManager.getActiveNetworkInfo();
if (netInfo != null && netInfo.isAvailable()) {
String name = netInfo.getTypeName();
if (netInfo.getType() == ConnectivityManager.TYPE_WIFI) {
//WiFi网络
Toast.makeText(context, "WiFi网络!", Toast.LENGTH_LONG).show();
} else if (netInfo.getType() == ConnectivityManager.TYPE_ETHERNET) {
//有线网络
Toast.makeText(context, "以太网有线网络!", Toast.LENGTH_LONG).show();
} else if (netInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
//移动网络
Toast.makeText(context, "移动网络!", Toast.LENGTH_LONG).show();
}
} else {
//网络断开
Toast.makeText(context, "无网络状态!", Toast.LENGTH_LONG).show();
}
}
}
电池状态,电池电量变化广播:
广播action名称:
Intent.ACTION_BATTERY_CHANGED
权限:
<uses-permission android:name="android.permission.BATTERY_STATS"/>
信息获取: