Broadcat监视电量变化

/**
 *检测手机电量变化
 *     使用registerReceiver(receiver, intentFilter);来注册广播,而不是在清单文件中注册<receiver><receiver>
 *     需要添加权限:
 *         <uses-permission android:name="android.permission.BATTERY_STATS"/>
 * 在onResume()中注册广播
 *         registerReceiver(receiver, intentFilter);
 * 在onPause()中注销广播
 *         unregisterReceiver(receiver);
 *广播接收者中检测处理电量的变化
 *  检测意图 电量变化:Intent.ACTION_BATTERY_CHANGED
 *
 *  获取当前电量
 *      int level = intent.getIntExtra("level", 0);
 *  获取总电量
 *      int scale = intent.getIntExtra("scale", 100);
 *
 *
 */
public class MainActivity extends Activity {
    TextView tv;
    private BroadcastReceiver receiver;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv = (TextView)findViewById(R.id.tv);

    }

    @Override
    protected void onResume() {
        super.onResume();
        receiver = new MyReceiver();
        //意图过滤器, 过滤电量变化
        IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
        //注册广播接收者
        registerReceiver(receiver, intentFilter);
    }

    @Override
    protected void onPause() {
        super.onPause();
        //注销广播接收者
        unregisterReceiver(receiver);
    }

    /**
     * 广播接收者
     */
    private class MyReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            if(intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)) {//系统的电量变化action
                //当前电量 "level"
                int level = intent.getIntExtra("level", 0);
                //总电量
                int scale = intent.getIntExtra("scale", 100);
                //显示
                tv.setText("当前电量"+ (level * 100) / scale + "%");
            }
        }
    }

}
时间: 2024-11-05 16:38:09

Broadcat监视电量变化的相关文章

Node.js文件模块fs监视文件变化

Node.js文件模块fs监视文件变化 Node中文件模块fs监视文件的函数源码如下: fs.watch = function(filename) { nullCheck(filename); var watcher; var options; var listener; if (util.isObject(arguments[1])) { options = arguments[1]; listener = arguments[2]; } else { options = {}; listen

手机影音第七天 视频的播放下一个视频功能实现,视频进度、电量变化的实现

先看下效果图: 在这里,视频进度条会根据视频播放变化,下方的按钮中,播放下一个,上一个都已实现. 代码已经托管到码云上,想下载看的小伙伴可以从下方地址中获取 https://git.oschina.net/joy_yuan/MobilePlayer 1.在这张图上,自定义的显示电量的那一列已经被系统自带的状态栏遮盖,下面就说一下实现方法: 系统电量变化时,系统会发送一个广播,所有对这个广播感兴趣的activity都可以注册广播来接收这个广播.在这里接收系统电量变化,屏幕锁屏.开屏的广播,只能使用

使用广播查看电量变化

public class BatteryChangedReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //当前电量 int currLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0); //总电量 int total = intent.getIntExtra(BatteryMa

[Java 8] 列举目录下的所有文件和监视文件变化

列举目录中的所有文件 首先给出代码: Files.list(Paths.get(".")).forEach(System.out::println); Files.list方法得到的是一个Stream类型的对象,它代表了目标路径下所有的文件.如果只想获取目标路径下的所有目录文件: Files.list(Paths.get(".")) .filter(Files::isDirectory) .forEach(System.out::println); 在以前的Java

监视目录变化

1.在实际开发中可能会需要监视某个目录下的文件所发生的变化. 2.在java7之前的做法 在一个独立的线程中使用File类的listFiles方法来定时检查目录中的内容,并与之前的内容进行比较 3.java7之后的做法 NIO.2中提供了新的目录监视服务,使用这些服务可以在指定目录中的子目录或文件被创建.更新或者删除时得到事件的通知. 基于这些通知,程序可以进行相应的处理 4.被监听的对象要实现java.nio.file.Watchable接口,并通过register方法注册到表示监视服务的ja

BroadcastReceiver接收电量变化的广播-------在代码中动态创建接受者

本例为动态创建广播接收者即不是在AndroidManifest.xml文件中定义的广播接收着 代码: 1 package com.qf.broadcastreceiver01; 2 3 import android.app.Activity; 4 import android.app.AlertDialog; 5 import android.content.BroadcastReceiver; 6 import android.content.Context; 7 import android

AppWidght全面学习之电量监控小部件的实现详解

前几天翻看之前下载的各种资料,无意中发现了一款AppWidght应用的源代码,想起之前一直想研究这块,却一直没机会,于是花费了两天时间,把这款桌面电量监控小插件的实现研究了一下,收获颇丰,特此把学到的东西与大家分享.明天就是苦逼的信息论的期末考试了,我是一点看不懂,唉,就这样吧,重修再说吧,我们换个好心情,看一下这款小软件是如何实现的. 虽然这个小软件实现的不错,但是代码质量我却不敢恭维,费了好大劲,才把很多没用的代码和文件剔除,并且对一些实现进行了优化,话不多说,咱们先来看看效果图饱饱眼福.

Inotify监视限值不足问题

使用Android Studio导入AOSP源码遇到inotify大小不足的问题,原文即ide推荐的解决方法.Android Studio就是基于IntelliJ平台修改的. 对于一个"聪明"的ide,它应该能知道与它协同工作的外部组件,如VCS.编译工具.代码生成器等,对它管控的文件产生了修改.举例来说,IntelliJ有专门的后台线程去监视这些变化.这个方法根据不同的平台可能实现会有不同,在Linux平台我们用的Inotify工具. Inotify会对工程内的所有文件夹设置&quo

Android应用的电量消耗和优化的策略

对于Android移动应用的开发者来说,耗电量的控制一直是个老大难问题. 我们想要控制耗电量,必须要有工具或者方法比较准确的定位应用的耗电情况.下面,我们先来分析下如何计算android应用的耗电量. 在android自带的设置里面有电量计算的界面,如下图: <ignore_js_op> 我们看下是如何实现的:? 在android framework里面有专门负责电量统计的Service:BatteryStatsSerive.这个Service在ActivityManagerService中创