android广播 监听开机 监听电池电量 监听网络
来源:互联网 发布:蜂窝数据各app关不了 编辑:程序博客网 时间:2024/05/22 01:35
用于注册和申请监听权限
广播接收者,发送当前电池变化:编写一个广播接收者
2.注册广播接收者
3.创建广播接收着监听网络变化
//监听开机广播权限<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <!-- 注册开机广播地址--> <action android:name="android.intent.action.BOOT_COMPLETED"/> <category android:name="android.intent.category.DEFAULT" />
监听电池变化
1.在清单文件中注册广播,并监听的类型
//广播的注册<receiver android:name=".BatteryChangedReceiver"> <intent-filter> <action android:name="android.intent.action.BATTERY_CHANGED"/> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver>
广播接收者,发送当前电池变化:编写一个广播接收者
public class BatteryChangedReceiver extends BroadcastReceiver { private static final String TAG = "BatteryChangedReceiver"; @Override public void onReceive(Context context, Intent intent) { int currLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0); //当前电量 int total = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 1); //总电量 int percent = currLevel * 100 / total; Log.i(TAG, "battery: " + percent + "%"); } }
获取电池电量
//获取电池当前电量Intent batteryIntent = getApplicationContext().registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); int currLevel = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0); int total = batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE, 1); int percent = currLevel * 100 / total; Log.i("battery", "battery: " + percent + "%");
监听网络变化
1.申请权限
//监听网络是否可能的广播;权限<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
2.注册广播接收者
<receiver android:name=".NetworkStateReceiver"> <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver>
3.创建广播接收着监听网络变化
public class NetworkStateReceiver extends BroadcastReceiver { private static final String TAG = "NetworkStateReceiver"; @Override public void onReceive(Context context, Intent intent) { Log.i(TAG, "network state changed."); if (!isNetworkAvailable(context)) { Toast.makeText(context, "network disconnected!", 0).show(); //用于创建回调方法 //通知使用网络的工具是否进行下载,如果没有网络则取消进行下载; } } /** * 网络是否可用 * * @param context * @return */ public static boolean isNetworkAvailable(Context context) { ConnectivityManager mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo[] info = mgr.getAllNetworkInfo(); if (info != null) { for (int i = 0; i < info.length; i++) { if (info[i].getState() == NetworkInfo.State.CONNECTED) { return true; } } } return false; } }
0 0
- android广播 监听开机 监听电池电量 监听网络
- Android 监听开机广播
- 监听电池电量之粘性广播
- Android开机、关机广播监听
- [Android] Android_监听电池电量
- Android 广播监听网络状态
- Android网络状态广播监听
- Android 广播监听网络状态
- Android 广播监听网络状态
- Android广播监听网络状态
- 监听开机and 网络状态的广播
- 79 Android BroadcastReceiver 电池电量监听
- android 监听电池电量的变化
- Android开机和关机广播监听
- 广播监听网络变化
- 广播监听网络
- 广播监听网络状态
- 广播监听网络状态
- 【Java】SSH框架功能实现 —— 一条功能线代码浅析
- 自我研究使用jenkins做持续集成测试
- JNI 学习笔记
- Caffe-10.0--调参技巧、经验
- 常用算法操作
- android广播 监听开机 监听电池电量 监听网络
- 性能优化2-常见内存泄漏
- tomcat 启动报Could not publish to the server. Please assign JRE to the server的解决方法
- Git cmd下git log中文乱码的解决方案
- 初学者,如何理解链表,为什么要引入链表?
- bzoj 1226 学校食堂
- 欢迎使用CSDN-markdown编辑器
- python中dic的操作
- 机器学习与数据挖掘参考文献