autojs获取电池温度

简介: autojs获取电池温度
importClass(android.content.Intent);
importClass(android.content.IntentFilter);
importClass(android.os.BatteryManager);
let BatteryN; //目前电量
let BatteryV; //电池电压
let BatteryT; //电池温度
let BatteryStatus; //电池状态
let BatteryTemp; //电池使用情况
let mBatInfoReceiver = new JavaAdapter(android.content.BroadcastReceiver, {
  onReceive: function (context, intent) {
    log(intent);
    let action = intent.getAction();
    /*
     * 如果捕捉到的action是ACTION_BATTERY_CHANGED, 就运行onBatteryInfoReceiver()
     */
    if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
      BatteryN = intent.getIntExtra("level", 0); //目前电量
      BatteryV = intent.getIntExtra("voltage", 0); //电池电压
      BatteryT = intent.getIntExtra("temperature", 0); //电池温度
      switch (intent.getIntExtra("status", BatteryManager.BATTERY_STATUS_UNKNOWN)) {
        case BatteryManager.BATTERY_STATUS_CHARGING:
          BatteryStatus = "充电状态";
          break;
        case BatteryManager.BATTERY_STATUS_DISCHARGING:
          BatteryStatus = "放电状态";
          break;
        case BatteryManager.BATTERY_STATUS_NOT_CHARGING:
          BatteryStatus = "未充电";
          break;
        case BatteryManager.BATTERY_STATUS_FULL:
          BatteryStatus = "充满电";
          break;
        case BatteryManager.BATTERY_STATUS_UNKNOWN:
          BatteryStatus = "未知道状态";
          break;
      }
      switch (intent.getIntExtra("health", BatteryManager.BATTERY_HEALTH_UNKNOWN)) {
        case BatteryManager.BATTERY_HEALTH_UNKNOWN:
          BatteryTemp = "未知错误";
          break;
        case BatteryManager.BATTERY_HEALTH_GOOD:
          BatteryTemp = "状态良好";
          break;
        case BatteryManager.BATTERY_HEALTH_DEAD:
          BatteryTemp = "电池没有电";
          break;
        case BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE:
          BatteryTemp = "电池电压过高";
          break;
        case BatteryManager.BATTERY_HEALTH_OVERHEAT:
          BatteryTemp = "电池过热";
          break;
      }
      log(
        "目前电量为" +
          BatteryN +
          "% --- " +
          BatteryStatus +
          "\n" +
          "电压为" +
          BatteryV +
          "mV --- " +
          BatteryTemp +
          "\n" +
          "温度为" +
          BatteryT * 0.1 +
          "℃"
      );
    }
  },
});
// 注册一个系统 BroadcastReceiver,作为访问电池计量之用这个不能直接在AndroidManifest.xml中注册
let filter = new IntentFilter();
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
context.registerReceiver(mBatInfoReceiver, filter);
events.on("exit", function () {
  unregisterReceiver();
});
function unregisterReceiver() {
  context.unregisterReceiver(mBatInfoReceiver);
  toastLog("关闭广播监听");
}
setInterval(function () {}, 1000);


参考文章

AndroidCpuTools

https://blog.csdn.net/su749520/article/details/79179668

声明

部分内容来自网络

本教程仅用于学习, 禁止用于其他用途

相关文章
|
JavaScript 前端开发
js中模糊搜索 模糊匹配如何实现?
js中模糊搜索 模糊匹配如何实现?
|
Android开发
autojs修改悬浮窗按钮点击事件
牙叔教程 简单易懂
1635 0
|
传感器 网络协议 物联网
在Linux中搭建Mosquitto MQTT协议消息服务端并结合内网穿透工具实现公网访问
Mosquitto是一个开源的消息代理,它实现了MQTT协议版本3.1和3.1.1。它可以在不同的平台上运行,包括Windows、Linux、macOS等。mosquitto可以用于物联网、传感器、移动应用程序等场景,提供了一种轻量级的、可靠的、基于发布/订阅模式的消息传递机制。
|
安全 网络协议 物联网
不看后悔系列之一篇搞懂LinuxCentOS搭建MQTT服务器及客户端操作使用
linux CentOS上搭建MQTT服务器并不难,主要就是用到了mosquitto这款消息代理服务软件。其采用发布/订阅模式传输机制,轻量、简单、开放并易于实现,被广泛应用于物联网之中。
2938 0
|
3月前
|
Shell Android开发 Python
微信多开脚本,微信双开器脚本插件,autojs开源代码分享
AutoJS脚本实现安卓端微信多开,通过无障碍服务 Python脚本提供跨平台解决方案,自动检测微信安装路径
html页面点击按钮实现页面跳转功能
html页面点击按钮实现页面跳转
1015 11
|
前端开发 网络协议 物联网
Django Web:搭建Websocket服务器(入门篇)
Django Web:搭建Websocket服务器(入门篇)
1702 1
|
IDE 关系型数据库 MySQL
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
这篇文章是关于如何创建一个Django框架,介绍Django的项目结构和开发逻辑,并指导如何创建应用和编写“Hello, World!”程序的教程。
750 3
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
|
运维 Linux 数据处理
探索Linux命令lsinitrd:深入了解与实用指南
`lsinitrd`命令在Linux中用于查看initrd文件内容,它是系统引导时加载驱动和模块的关键组件。此命令无需挂载,支持gzip和cpio格式,提供详细输出,包括文件属性。使用`-a`, `-l`, `-R`参数可调整显示方式。例如,`lsinitrd -l initrd.img-版本号`列出详细信息。注意权限,确保正确路径,操作前备份数据,并可与其他命令结合使用。
|
存储 Ubuntu 安全
在Ubuntu 16.04上安装和保护Mosquitto MQTT消息代理的方法
在Ubuntu 16.04上安装和保护Mosquitto MQTT消息代理的方法
465 1