我是Xcode的一个菜鸟,很抱歉,如果我让自己愚弄自己。我正在尝试制作一个应用程序,其中一个功能是检查iphone / ipod / ipad是否正在充电。如果不充电,我希望它可能发出声音并闪烁LED。此外,如果它正在充电,我想让它显示文本,如“设备充电:)”。顺便说一句,我使用FlipsideViewController的方法,但这些功能将在MainView中。我已经查看了各种示例,并看到了下面的一个以及许多测试应用程序,但我不知道如何使用它。提前谢谢!!
代码:
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
if ([[UIDevice currentDevice] batteryState] != UIDeviceBatteryStateUnplugged) {
//Device is connected (charging or fully charged)
}
答案 0 :(得分:0)
将此添加到appDelegate.m
- (void)applicationDidBecomeActive:(UIApplication *)application{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryStateDidChange:) name:UIDeviceBatteryStateDidChangeNotification object:nil];
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
}
- (void)applicationWillResignActive:(UIApplication *)application {
[[UIDevice currentDevice] setBatteryMonitoringEnabled:NO];
}
- (void)batteryStateDidChange(NSNotification*)notif {
// check the status here.
// See if it is charging, or not and respond to the change.
}
(编辑以使代码更明确)
答案 1 :(得分:0)
听起来你可能想要开始编写iPhone应用程序的一些教程,因为上面的代码看起来还不错(虽然我没有特别试过)。如果你不理解如何做我在下面描述的一些事情(或者某些术语不熟悉),我建议你买一本好书或者查看一些教程:
Book: iOS 6 SDK Development (Amazon)
Tutorials: Ray Wenderlich has many good tutorials on his site
Apple Documentation is quite good
为你编写代码是没有意义的,因为你可能想学习如何编程,如果有人为你做的话,你就不会学到很多东西。
以下是关于如何思考这个问题的一些指示,尽管你所希望的行为并不是完全明显的。
如果我理解你,你想要在显示主视图时发生两种不同的动作。
首先,为什么不让它在字段中设置文本字符串以匹配充电/不充电状态?
所以你要在Xcode中的主视图.xib文件中添加一个UILabel,并在视图控制器中添加一个插座,以便你可以在运行时设置它的文本。
然后你想要在某个地方上面的第一行调用一次以开始监视(参数是:是),然后再次调用NO以在视图消失后停止监视。如果您在顶部附近的developer.apple.com上查看UIViewController
的文档,您将看到UIViewController实现的方法列表。在这种情况下,您可能希望覆盖(创建自己的版本)viewWillAppear
和viewWillDisappear
并将setBatteryMonitoringEnabled
调用分别与YES和NO一起放入这两个方法中。
因此,负责启用/禁用电池状态监控。现在您需要测试状态并采取措施(这是在上面的代码中调用batteryState
)。
关于设计的一个问题,从您的描述中不明显的是,如果您想在视图出现时执行此操作,或者您希望它继续监视状态。
如果您想这样做一次,您可以将呼叫置于viewDidAppear
中,然后使用UILabel的插座将标签中的消息设置为“正在充电”或“不充电”根据{{1}}方法的结果收取费用。
如果您想要监视收费状态的变化,那么您需要订阅通知并将您的代码更改为该通知的处理程序中的UILabel(或您最后为响应更改而做的任何事情)
您可以通过阅读developer.apple.com上的UIDevice或Xcode的管理器窗口的文档部分中的文档来解决这个问题。如果您阅读了batteryState
方法UIDevice
的文档,则可以看到“另请参阅”部分包含两个条目,您可以订阅以查找级别或状态更改时的通知:{ {1}}和batteryMonitoringEnabled
。要了解如何订阅通知,您需要查看NSNotificationCenter
文档。
然后,一旦你开始工作,你可以添加你的发烧友警报(小心重复把它们!)和声音(虽然当电池没有充电时播放声音会使用电池,这有点可疑..只是制作一定不要重复这样做。)
祝你好运!