检查电池电量 iOS Swift [关闭]

2023-12-04

我刚刚开始使用 Swift,一直在寻找一种检查电池电量的方法。我发现这个资源并一直在尝试它,但由于某种原因似乎无法让它工作。

我不太确定如何解决这个问题。有任何想法吗?


Xcode 11 • Swift 5.1

首先启用电池监控:

UIDevice.current.isBatteryMonitoringEnabled = true

然后您可以创建一个计算属性来返回电池电量:

电池电量范围从 0.0(完全放电)到 1.0(100%) 带电)。在访问此属性之前,请确保电池电量充足 监控已启用。如果未启用电池监控,则电池 state 是 UIDevice.BatteryState.unknown 并且该属性的值 是 –1.0。

var batteryLevel: Float { UIDevice.current.batteryLevel }

要监控您的设备电池电量,您可以添加一个观察者UIDevice.batteryLevelDidChangeNotification:

NotificationCenter.default.addObserver(self, selector: #selector(batteryLevelDidChange), name: UIDevice.batteryLevelDidChangeNotification, object: nil)

电池电量范围从 0.0(完全放电)到 1.0(100% 充电)。在访问此属性之前,请确保已启用电池监控。
如果未启用电池监控,则电池状态为 UIDevice.BatteryState.unknown,且该属性的值为 –1.0。


@objc func batteryLevelDidChange(_ notification: Notification) {
    print(batteryLevel)
}

您还可以验证电池状态:

var batteryState: UIDevice.BatteryState { UIDevice.current.batteryState }

case .unknown   //  "The battery state for the device cannot be determined."
case .unplugged //  "The device is not plugged into power; the battery is discharging"
case .charging  //  "The device is plugged into power and the battery is less than 100% charged."
case .full      //   "The device is plugged into power and the battery is 100% charged."

并添加一个观察者UIDevice.batteryStateDidChangeNotification:

NotificationCenter.default.addObserver(self, selector: #selector(batteryStateDidChange), name: UIDevice.batteryStateDidChangeNotification, object: nil)

@objc func batteryStateDidChange(_ notification: Notification) {
    switch batteryState {
    case .unplugged, .unknown:
        print("not charging")
    case .charging, .full:
        print("charging or full")
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查电池电量 iOS Swift [关闭] 的相关文章

  • UIScrollView 在缩放或滚动时阻止所有触摸

    当 UIScrollView 通过捏合手势或滚动进行缩放时 我无法按同一窗口中的任何其他按钮 有什么办法可以启用这种行为吗 这就像滚动视图具有独占触摸 尽管我尝试将其明确设置为NO 我在视图中有一个滚动视图 我希望它仅在用户按住滚动按钮时滚
  • Ionic 3 Deeplinking - 从 URL 启动应用程序

    我正在使用 Ionic 开发一个跨平台应用程序 当尝试实现深度链接时 我安装了一个名为 Ionic Native 插件深层链接 我运行了这些命令 ionic cordova plugin add ionic plugin deeplinks
  • 弹出窗口不指向按钮

    我有一个与 iPhone 和 iPad 布局兼容的应用程序 对于 iPhone 布局 我为 iPad 创建了 Action Sheet 和 Pop over 问题是弹出窗口的箭头没有指向我单击的按钮 下面是我的代码 let actionSh
  • Swift 中的等效 android.content.BroadcastReceiver

    我想知道 Swift 中是否有等效的 android content BroadcastReceiver 我需要相同的处理程序 例如onReceive Context context Intent intent 有可能的 谢谢 Ysee 在
  • 在 iOS 中如何本地化 UIDatePicker 中的月份文本,是否可能?

    我进行搜索 到目前为止我看到 UIDatePicker 正在处理设备的本地化 我有具有内部本地化的应用程序 我需要根据我的内部本地化更改月份文本 据我所知 这似乎是不可能的 我必须制作自己的自定义选择器 有没有办法在没有自定义日期选择器的情
  • 获取请求,iOS

    我需要执行此 GET 请求 http api testmy co il api sync BID 1049 ClientCode 3847 Discount 2 34 Service 0 Items Name Tax Price 2 11
  • 访问 iPhone 上用户的短信

    有没有一种方法可以访问用户的短信 没有互联网连接 显然 不尝试获取客户的消息 并分析应用程序中的文本 如果没有 出于安全原因 这是完全可以理解的 但我想我还是会问 不 你只能发送它们 S http developer apple com l
  • 无法使用应用程序加载器将 .ipa 上传到 iTunes

    我正在尝试将我的 iPhone ipa 文件上传到 iTunesconnect 我什至最近通过应用程序加载器成功地将构建上传到 iTunes Connect 但从过去两天开始 当我尝试上传 ipa 时 出现以下错误 并且 ipa 未上传到
  • iOS 中的泰米尔字体

    我尝试安装泰米尔字体名称Bamini ttf in xcode 4 2我做了具体的改变info plist 但它没有显示在界面生成器中 任何人都可以帮我解决这个问题吗 据我所知 您安装的新字体永远不会在界面生成器中列出 但是您可以在项目中使
  • 图像持久化和延迟加载与 Dispatch_Async 的冲突

    我正在开发一个提要阅读器 我通过使用 nsxmlparser 解析 rss 提要来完成它 我还有从 CDATA 块中获取的缩略图对象 void parser NSXMLParser parser foundCDATA NSData CDAT
  • SpriteKit中滚动背景的速度逐渐增加

    我正在 SpriteKit 中制作一个简单的游戏 并且我有一个滚动背景 简单的情况是 在加载游戏场景时 一些背景图像彼此相邻放置 然后当图像滚动到屏幕外时 图像会水平移动 这是我的游戏场景中的代码didMoveToView method s
  • Pod Spec Lint CoreSimulator 检测到 Xcode.app 重定位或 CoreSimulatorService 版本更改

    命令pod spec lint失败了 我在 SO 和 Cocoapod 的存储库上找不到类似的问题 完整日志 gt GPKit 0 1 1 错误 iOS 未知 遇到未知错误 757 意外令牌位于 2017 08 17 16 12 08 93
  • 当 Firebase 数据库中的值发生更改时创建推送通知

    我想在 firebase 数据库中的值发生更改时向用户发送推送通知 这是我的数据库 Battles 00000111 062B3333 4046 4FB4 AA37 C2B05853E497 BattleProgress Player1 l
  • 如何使用mapkit和swift在设定位置覆盖一个圆圈

    我在尝试弄清楚如何在与用户位置不同的所需位置显示透明圆形或矩形时遇到困难 我是 Mapkit 的初学者 所以提前致谢 class FirstViewController UIViewController MKMapViewDelegate
  • 编译到模拟器时如何排除 Xcode 中的框架

    我在我的项目中包含了 TokBox 框架 这样我们就可以进行视频短信 问题是该框架以及它们所需的其他一些框架不允许您在模拟器中编译或运行该应用程序 他们不受支持 有没有办法设置编译器标志以在编译到模拟器时跳过 TokBox 和其他框架 原因
  • Twitter iOS 个人资料页面配置

    我正在尝试构建一个类似于 Twitter 个人资料页面的页面 看起来他们正在使用基本的UITableView 最上面的配置文件就是tableHeaderView 这些选项卡是UISegmentedControl在SectionRowHead
  • CAltimeter 回调永远不会触发

    使用我的 6 我一直在尝试使用 CoreMotion 的新 CMAltimeter 读取相对高度和压力 但是回调永远不会触发 我有一个非常相似的设置 它使用加速度计 陀螺仪和磁力计 他们似乎都工作得很好 想知道是否有人设法阅读 void v
  • Xcode 13.2 - 内部错误:缺少包描述模块[重复]

    这个问题在这里已经有答案了 刚刚通过 Mac App Store 将 Xcode 更新到 13 2 我安装了附加组件 但我的项目将不再编译 Xcode 只是告诉我Internal error missingPackageDescriptio
  • 当Text超过Height时如何增加UITextView的高度

    我有一个 UITextView 当我在 5 6 行后输入数据时 数据正在向上滚动并且看不到 当输入的文本超过高度时 是否有任何属性可以用来增加 UITextView 的高度 请建议大家 使用此代码使 UITextView 的高度与其内部内容
  • iOS 7 导航栏在 viewDidAppear 上跳跃/拉伸

    I am trying to update my app for iOS 7 When my views appear on the screen you can see that there is a gap between the na

随机推荐

  • 如何将子类的向量传递给需要父类向量的函数?

    我可以将 Child 传递给需要 Parent 的成员函数 但是在使用向量时 我收到编译错误 提示没有匹配的声明 请参阅底部的 CorrelationEngineManager cpp 对 getUniqueLabels 的调用 服务器事件
  • MKPinAnnotationView:是否有超过三种颜色可用?

    根据 Apple 文档 MKPinAnnotationView 引脚颜色有红色 绿色和紫色可供选择 还有什么办法可以得到其他颜色吗 我在文档中没有找到任何内容 多一点 和原来的 和代码 MKAnnotationView mapView MK
  • 平均库存历史表

    我有一个表格 用于跟踪某些商店和产品的库存随时间的变化 该值是绝对库存 但我们仅在库存发生变化时插入新行 这种设计是为了保持表较小 因为预计它会快速增长 这是一个示例架构和一些测试数据 CREATE TABLE stocks id seri
  • DbAcl::check() - 权限检查中 ARO/ACO 节点查找失败。

    我正在使用 cakephp 并使用 acl 但我面临这个错误 DbAcl check Failed ARO ACO node lookup in permissions check 感谢帮助 您可能已向控制器添加了操作 但未更新aco桌子
  • CSS 属性中“auto”值的含义是什么?

    是什么意思autoCSS 属性的值 当 CSS 属性的值设置为时会发生什么auto 上述财产的价值已调整自动地根据元素的内容或上下文 例如 一个块级元素height auto随着包含更多文本 它会变得更高 再举一个例子 一个块元素margi
  • 安装后运行 kubectl 命令 Helm

    我想运行一些kubectl用于验证 Helm 图表的集群安装后的命令 我找不到与此相关的任何文档 在 Helm 中 存在将注释显示为一部分的概念NOTES txt但看起来您不能在该阶段运行任何命令 目前 Helm 无法做到这一点吗 您可以定
  • 将 morgan 与 logger 一起使用时,stream.write 不是一个函数

    基本上我正在尝试使用摩根和温斯顿为nodejs实现记录器 当我尝试使用 morgan 时 抛出stream write 错误不是一个函数 因为我想获取文件名 所以我传递模块 从模块对象有一个名为文件名的属性 下面是我的代码 温斯顿 js c
  • 如何将 Vim 中每行开头的空格数量减半?

    有人可以告诉我如何在 Vim 中执行与此映射相反的操作 nnoremap
  • 默认指定的非类型模板参数值时出现“使用类模板需要模板参数”错误

    编译这个 include
  • 调用弹出窗口的“.ShowDialog()”时 WPF 应用程序关闭

    首先 我想解释一下我要做什么 我正在开发一个学习应用程序来向学生展示一些卡片 我有CardPack类是一组卡片 为了获得卡包的许可 我想从用户那里获取 ID 然后我创建了一个窗口来从用户那里获取 RegisterKey 这是我的GetReg
  • 求所有连续子数组最大差值之和(S)的最佳方法

    给定一个包含 n 个元素的数组 d 0 d 1 d n 1 计算所有连续子数组的最大差值的和 S 形式上 S 总和 max d l r 最小值 d l r 0 Input 4 1 3 2 4 Output 12 解释 l 0 r 0 数组
  • python绘制多个直方图

    我有一个包含 30 个变量的数据框 X v1 v2 v30 and col name v1 v2 v30 对于每个变量 我想绘制直方图以了解变量分布 但是 写代码逐一绘制太手动了 我可以用for循环之类的东西一次性绘制30个直方图吗 例如
  • Python 3.1.3 打开 mbox 文件,与 python 2.x 相比真的慢吗?

    我尝试在 python 3 1 3 中使用邮箱模块打开 mbox 文件 里面只有3封邮件 只有27k大 但是 当阅读邮件时 我的 CPU 使用 100 大约 2 3 分钟 直到它完成任务且没有错误 我用 python 2 7 1 尝试了同样
  • 在 Android 上实时更改曲目的播放速率

    我想知道是否有人知道一个可以实时更改曲目播放速率的库 我的想法是加载曲目并将其播放速率更改为一半或两倍 首先 我尝试使用 MusicPlayer 但根本不可能 然后我尝试使用 SoundPool 问题是 使用 SoundPool 一旦加载曲
  • 如何复制包含“\0”字符的数据

    我正在尝试复制包含 0 的数据 我正在使用 C 当研究结果是否定的时 我决定编写自己的函数来将数据从一个 char 复制到另一个 char 但它没有返回想要的结果 我的尝试如下 include
  • Laravel 急切加载与嵌套关系

    我知道有人问过这个问题 但我的情况有所不同 我定义了与评论模型关系的帖子模型 Post Model public function comments return this gt hasMany comment 和评论模型 每个评论属于一个
  • 在Python中查找列表中最长和最短的列表[重复]

    这个问题在这里已经有答案了 我需要打印列表中具有最小和最大项目数的列表 例如 如果我有 total list 1 2 3 1 2 3 4 1 2 3 4 5 我需要返回具有最小和最大长度的列表 我该怎么做 输出可能类似于 total lis
  • WndProc 中未捕获表单 WM_KEYDOWN 和 WM_KEYUP 消息

    不捕获表单 keydown 和 keyup 消息 public partial class Form1 Form const int WM KEYDOWN 0x100 const int WM KEYUP 0x101 protected o
  • Firestore:查询与搜索词匹配或相似的名称

    我有一个用户列表 其姓名位于 Firestore 数据库中 我想要实现的是让用户能够搜索和找到其他用户 我的问题是 Query query db collection users whereEqualTo name searchTerm F
  • 检查电池电量 iOS Swift [关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我刚刚开始使用 Swift 一直在寻找一种检查电池电量的方法 我发现这个资源并一直在尝试它 但由于某种原因似乎无法让它工作 我不太确定如何解决这个问题 有任何想法吗 Xcode 11 Sw