一、电池状态获取及监测

#pragma mark - 电池状态获取及监控
-(void)checkAndMonitorBatteryState{UIDevice * device = [UIDevice currentDevice];//是否允许监测电池//要想获取电池状态和监控电池状态 必须允许device.batteryMonitoringEnabled = true;//1、check/*电池状态typedef NS_ENUM(NSInteger, UIDeviceBatteryState) {UIDeviceBatteryStateUnknown,UIDeviceBatteryStateUnplugged,   // on battery, dischargingUIDeviceBatteryStateCharging,    // plugged in, less than 100%UIDeviceBatteryStateFull,        // plugged in, at 100%} __TVOS_PROHIBITED;*/UIDeviceBatteryState state = device.batteryState;NSArray *stateArray = [NSArray arrayWithObjects:@"未开启监视电池状态",@"电池未充电状态",@"电池充电状态",@"电池充电完成",nil];NSLog(@"电池状态:%@", [stateArray objectAtIndex:state]);//2、monitor[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didChangBatteryState:) name:@"UIDeviceBatteryStateDidChangeNotification" object:device];
}-(void)didChangBatteryState:(NSNotification *)notification{//电池状态发生改变时调用}

二、电池电量获取及监测

#pragma mark - 电池电量获取及监控
-(void)checkAndMonitorBatteryLevel{//拿到当前设备UIDevice * device = [UIDevice currentDevice];//是否允许监测电池//要想获取电池电量信息和监控电池电量 必须允许device.batteryMonitoringEnabled = true;//1、check/*获取电池电量0 .. 1.0. -1.0 if UIDeviceBatteryStateUnknown*/float level = device.batteryLevel;NSLog(@"level = %lf",level);//2、monitor[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didChangeBatteryLevel:) name:@"UIDeviceBatteryLevelDidChangeNotification" object:device];}- (void)didChangeBatteryLevel:(id)sender{//电池电量发生改变时调用UIDevice *myDevice = [UIDevice currentDevice];[myDevice setBatteryMonitoringEnabled:YES];float batteryLevel = [myDevice batteryLevel];NSLog(@"电池剩余比例:%@", [NSString stringWithFormat:@"%f",batteryLevel*100]);
}

三、低电量模式切换监测

#pragma mark - 低电量模式切换
-(void)checkAndMonitorPowerMode{//1、check//是否处于低电量模式if ([[NSProcessInfo processInfo] isLowPowerModeEnabled]) {NSLog(@"处在低电量模式");}else{NSLog(@"未处于低电量模式");}//2、monitor//低电量模式切换通知[[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(didChangePowerMode:)name:NSProcessInfoPowerStateDidChangeNotificationobject:nil];}//收到低电量通知之后调用的方法
//PS:手动设置低电量模式时,程序会回到后台,当程序从后台回到前台时就会调用该方法
- (void)didChangePowerMode:(NSNotification *)notification {if ([[NSProcessInfo processInfo] isLowPowerModeEnabled]) {NSLog(@"打开低电量模式");} else {NSLog(@"关闭低电量模式");}
}

参考文章:

1、获取IOS设备的电量信息:Battery Level - iPhone手机开发技术文章 - 红黑联盟

2、[iOS] 如何检测 iPhone 处于低电量模式 - 推酷

3、IOS 电池状态监控 - 永远在跟随,从未去超越 - 博客频道 - CSDN.NET

iOS开发:电池电量监测相关推荐

  1. Android系统移除电池电量监测管理功能

    系统优化 - 去除电池电量监测管理功能 去除电池电量监测管理功能,去除电量提示功能. 需要去除电池电量对升级功能的影响,如低电量时无法进行系统升级. 车机平台不需要电池电量监测管理,电池管理模块对界面 ...

  2. 电池电量与电压的关系

    目前(2012-6)人们主要使用两种监测方法: (1)电流积分(current integration)为基础 前者依据一种稳健的思想,即如果对所有电池的充.放电流进行积分,就可以得出剩余电量的大小. ...

  3. 简便的电池电量测试设计方法

    2010-08-29 10:51:37|  分类: 方案资料|举报|字号 订阅 一.前言 使用便携式电子产品,希望能够随时知道电池的所剩电量,所能持续的工作时间,并且据此调节相关应用,这无疑将是一个非 ...

  4. iOS 监控体系之电池状态监控【电池的状态处理:电池状态获取及监测、电池电量获取及监测、低电量模式切换监测】应用场景:ASO机刷的场景就需要保证设备的高可用性(UIDeviceBattery)

    文章目录 前言 划重点 一.电池状态获取及监测 二.电池电量获取及监测 三.低电量模式切换监测 Q&A See Also 前言 原文地址: https://kunnan.blog.csdn.n ...

  5. iOS 开发之优化电量

    ????????关注后回复 "进群" ,拉你进程序员交流群???????? 在现如今的开发中, 电量消耗是一个应用运行效果的一个重要的衡量标准,尤其是直播,运动应用.设备中的每个硬 ...

  6. iOS状态栏操作之获取WiFi信号强度,WiFi名字和IP,网络类型,运营商,电池电量,系统时间等...

    iOS开发中对状态栏的操作比较少,因为状态栏是系统级别的View,是受苹果保护的,不可以随便更改,不可以随便遮挡住.如果违反这些苹果的规范,那么APP将有可能上不了架.笔者就曾写过一个APP,因状态栏 ...

  7. iOS状态栏操作之获取WiFi信号强度,网络类型,运营商,电池电量,系统时间等

    iOS状态栏操作之获取WiFi信号强度,WiFi名字和IP,网络类型,运营商,电池电量,系统时间等 此篇文章讲述iOS中的状态栏 iOS开发中对状态栏的操作比较少,因为状态栏是系统级别的View,是受 ...

  8. Android官方开发文档Training系列课程中文版:电池续航时间优化之监测电池电量及充电状态

    原文地址:http://android.xsoftlab.net/training/monitoring-device-state/index.html 引言 作为一款优秀的APP应用,应该总是想方设 ...

  9. ios 获取电量百分比_iOS 获取电池电量

    由于项目需要,要求获取iOS手机电池电量的详细值以及变化量等信息.所以做了相关的技术调研,实现的方法有很多.所以写了这篇总结,对于当前获取电池电量的方式进行一个整理. 方法一:通过苹果给的api获取 ...

最新文章

  1. [软件推荐]电子日记本EDiary,记下您 的每一天
  2. SAP CRM Business Partner 自动决定Determination的执行逻辑
  3. 50年代黄岩师专_300多位30、40和50年代获得第一份技术工作的开发人员的故事
  4. 国内流行的两大开源.net微信公众平台SDK对比分析
  5. linux mint php mysql_Installing LAMP (Linux, Apache, MySQL and PHP) On Linux Mint
  6. 关于简历:怎样才叫熟悉/精通Linux?
  7. 学习IP地址的一些体会总结
  8. html 下划线_web前端实战入门训练之HTML基本元素
  9. STM32-RTC实时时钟-毫秒计时实现
  10. 屏蔽百度搜索右边的热点和广告推广
  11. 【agora】 Agora Media SDK : aut transport
  12. 如何添加Google统计在自己的网站
  13. linux skyeye,移植LINUX到SKYEYE上
  14. Win11 解决wifi连接出现的无法连接该网络的问题
  15. professional issue复习
  16. 用python写个根据提示猜词语简单的游戏_python实现简单猜单词游戏
  17. 和菜鸟一起学产品之产品经理的自我管理能力
  18. 卢周来:穿越政治经济学年代
  19. 油猴Tampermonkey及其脚本的安装
  20. java硬币兑换_java程序题:把一元钞票换成一分、二分、五分硬币(每种至少一枚),有哪些种换法...

热门文章

  1. js语句末尾是否需要加分号?
  2. lambda调用函数_从另一个Lambda函数调用AWS Lambda函数
  3. RocketMQ 常见面试问题
  4. Qt串口QSerialPort的多线程 及 QSerialPort的waitForReadyRead函数的问题
  5. 考研过程中遇到学习焦虑怎么办--缓解学习焦虑的神奇方法
  6. “升级版后浪”刷屏:B站别再搬砖砸自己脚了!
  7. 2018.7.18学习笔记
  8. Linux下配置miniconda环境
  9. Auto.js正则匹配字符串是否为纯数字
  10. zippo蚀刻计算机键盘,发个技术贴,蚀刻DIY.