Android中获取手机电量信息
2016-09-19 20:58
441 查看
有些时候我们需要在我们的应用上为用户展示当前手机的电量,这时候我们就需要用到广播了,我们都知道在动态注册广播的时候,我们需要传入一个BroadcastReceiver类对象,还有一个意图过滤器IntentFilter,平时我们使用自定义广播的时候IntentFilter中的action可以自定义写成任意形式,但是如果我们要过去系统电量,就需要用到这个系统为我们提供好的action,Intent.ACTION_BATTERY_CHANGED。同样的,因为我们监听的是系统广播,所以广播的发送方是系统,我们只需要在需要接受到改广播的类中注册广播就可以了。
然后我们自定义了一个BroadcastReceiver,用来处理广播中的获得电量的逻辑代码:
这里我们调用intent.getExtras()方法得到intent携带的Bundle集合,系统为我们写好了一些字段,如我们使用的"level","scale",分别是存储的当前电量和总电量信息。这是约定俗成的,Google的开发工程师为我们写好的,记住会用就可以。我们这里需要在一个控件上展示出来我们的当前电量,于是我在广播接收器的构造函数中传递进来了该控件的实例。得到当前电量和总电量之后,我们就可以计算出当前电量剩余的百分比,然后设置在控件上。自定义完广播接收器后,我们还需要在需要接受广播的类中注册广播,如下所示:
当然,由于我们是动态注册广播,所以不要忘了在生命周期的onDestroy()方法中取消注册广播:
这样,我们就成功获得了当前电量的百分比,是不是很简单呢~
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
然后我们自定义了一个BroadcastReceiver,用来处理广播中的获得电量的逻辑代码:
package ggcomic.rabbit.lx.ggcomic.broadcastReceiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.TextView; /** * 监听获取手机系统剩余电量 * Created by Lx on 2016/9/17. */ public class BatteryReceiver extends BroadcastReceiver { private TextView pow; public BatteryReceiver(TextView pow) { this.pow = pow; } @Override public void onReceive(Context context, Intent intent) { int current = intent.getExtras().getInt("level");// 获得当前电量 int total = intent.getExtras().getInt("scale");// 获得总电量 int percent = current * 100 / total; pow.setText(percent + "%"); } }
这里我们调用intent.getExtras()方法得到intent携带的Bundle集合,系统为我们写好了一些字段,如我们使用的"level","scale",分别是存储的当前电量和总电量信息。这是约定俗成的,Google的开发工程师为我们写好的,记住会用就可以。我们这里需要在一个控件上展示出来我们的当前电量,于是我在广播接收器的构造函数中传递进来了该控件的实例。得到当前电量和总电量之后,我们就可以计算出当前电量剩余的百分比,然后设置在控件上。自定义完广播接收器后,我们还需要在需要接受广播的类中注册广播,如下所示:
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
receiver = new BatteryReceiver(tvElectric);
registerReceiver(receiver, filter);
当然,由于我们是动态注册广播,所以不要忘了在生命周期的onDestroy()方法中取消注册广播:
@Override protected void onDestroy() { super.onDestroy(); //销毁广播 unregisterReceiver(receiver); }
这样,我们就成功获得了当前电量的百分比,是不是很简单呢~
相关文章推荐
- Android 获取手机电量信息
- Unity&Android之二:获取手机电量信息、网络状况
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用 ...
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
- android系统信息(内存,cpu,sd卡,电量,版本)的获取
- Android获取手机和系统版本等信息的代码
- Android获取手机和系统版本等信息的代码
- android 获取手机信息(device ip,os version etc.)
- (转)Android开发之系统信息——获取Android手机中SD卡内存信息
- Android 获取手机总内存和可用内存等信息
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- Android开发之系统信息【1】——获取Android手机中SD卡存储信息
- Android开发之系统信息——获取Android手机中SD卡内存信息
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
- Android 获取手机总内存和可用内存等信息
- Android 获取手机信息
- android的一些常用手机信息获取
- 获取Android手机内存信息