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
- Android常用的系统广播的使用
- Android 常用的系统广播
- Android常用的系统广播
- Android源码中常用的系统广播
- Android源码中常用的系统广播
- android常用的广播
- android的系统广播
- 一些常用的系统广播
- 常用的系统广播总结
- Android: 常用系统广播
- Android常用系统广播
- android常用系统广播
- Android常用系统广播
- Android常用系统广播
- Android常用系统广播
- Android常用系统广播
- Android常用系统广播
- Android常用系统广播
- 最简单例子图解JVM内存分配和回收
- 引用的本质剖析
- AngularJS——ng-class
- FoxitReader_AX_Pro.ocx在其它电脑上报错异常
- POJ 3020 Antenna Placement(最小边覆盖)
- Android常用的系统广播的使用
- tableview和searchbar组合且不遮住状态栏
- 使用CMake编译用到cuFFT库的CUDA源代码
- 基于约束的SQL攻击
- git本地仓库push
- 自定义Viw之使用ViewDragHelper做条目的侧滑菜单
- android 开发零起步学习笔记(二十四):Android:打造“万能”Adapter与ViewHolder
- Redis 数据类型
- DataAdapter的Update 无法找到 TableMapping['Table'] 或 DataTable“Table"