短信廣播:
註冊:
<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"/>
信息獲取: