Android常用的系统广播的使用

来源:互联网 发布:python是面向对象语言 编辑:程序博客网 时间:2024/06/09 18:44

 短信广播:
注册:

<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"/>

信息获取:

这里写图片描述

这里写图片描述

这里写图片描述

0 0
原创粉丝点击