有没有办法知道我的设备(iPhone)何时插入电源,例如带有USB端口的电脑或汽车音响系统?我在我的应用中使用本地化服务,并且我想在设备插入时自动更改为kCLLocationAccuracyBestForNavigation
。谢谢...如何知道iOS设备何时插入?
5
A
回答
3
您可以注册以在配件连接或断开连接时收到通知。
例子:
[[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications];
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter addObserver:self
selector:@selector(accessoryDidConnect:)
name:EAAccessoryDidConnectNotification
object:nil];
[notificationCenter addObserver:self
selector:@selector(accessoryDidDisconnect:)
name:EAAccessoryDidDisconnectNotification
object:nil];
一旦你收到此通知,您可以使用一个for循环遍历每个附件,如:
NSArray *accessories = [[EAAccessoryManager sharedAccessoryManager] connectedAccessories];
EAAccessory *accessory = nil;
for (EAAccessory *obj in accessories)
{
// See if you're interested in this particular accessory
}
在某一点(的dealloc也许)你将要注销为这些通知。你可以做到这一点,如:
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter removeObserver:self
name:EAAccessoryDidDisconnectNotification
object:nil];
[notificationCenter removeObserver:self
name:EAAccessoryDidConnectNotification
object:nil];
[[EAAccessoryManager sharedAccessoryManager] unregisterForLocalNotifications];
7
您可以启用电池监控直通的UIDevice class并检查电池状态,看它是否正在充电:
typedef enum {
UIDeviceBatteryStateUnknown,
UIDeviceBatteryStateUnplugged,
UIDeviceBatteryStateCharging,
UIDeviceBatteryStateFull,
} UIDeviceBatteryState;
你要检查或收费在启用最佳GPS准确性之前已满。通过让你自己的操作方法batteryStateChanged
通话
UIDeviceBatteryState batteryState = [[UIDevice currentDevice] batteryState];
要订阅通知,关于电池状态的变化,例如:
- (void) setup {
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
NSNotificationCenter * center= [NSNotificationCenter defaultCenter];
[center addObserver:self
selector:@selector(batteryStateChanged)
name:UIDeviceBatteryStateDidChangeNotification
object:nil];
}
2
要检查电池状态记得取消订阅当你的对象是dealloced:
- (void) dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
[[UIDevice currentDevice] setBatteryMonitoringEnabled:NO];
}
相关问题
- 1. iOS:如何知道设备语言何时更改?
- 2. 如何知道设备?
- 3. 我们如何知道通知到达iOS设备?
- 4. 如何识别何时将USB设备插入WinCE设备
- 5. 如何在iOS设备插入时检查“Debug View Hierarchy”?
- 6. 如何知道iframe何时准备好?
- 7. NSNetService - 我如何知道它是Mac还是iOS设备?
- 8. 如何知道设备的密度?
- 9. 想知道如何使用select插入
- 10. 如何知道何时在MonoMac中设置了控制插座?
- 11. 客户端(iOS设备)如何知道服务器的任何更改?
- 12. 如何知道何时在Angular 2中设置了[输入]?
- 13. 如何检测音频设备何时插入和拔出?
- 14. 如何将耳机插入3.5接口时知道?
- 15. 如何知道iOS设备是通过USB还是Wall Port Charger连接?
- 16. 如何知道在IOS中与设备连接哪个网络主机
- 17. iOS - 您如何知道设备是否在播放某些内容?
- 18. 如何获得iOS设备
- 19. mySQL:知道何时更新和什么时候插入?
- 20. 如何知道何时在Cocoa中连接HID USB /蓝牙设备?
- 21. 如何从OS X的设备ID中知道设备的名称?
- 22. 如何知道用户在屏幕截图之前何时按下iOS设备上的硬按钮?
- 23. 如何知道您的GUI何时准备好XCode/Interface Builder
- 24. 如何知道数据库何时准备好?
- 25. 如何知道Android的新服务何时准备就绪?
- 26. 如何知道Neo4j何时准备服务
- 27. activemq服务器如何知道何时将一个从设备升级为主设备?
- 28. 如何删除iOS设备列表上的iOS设备?
- 29. 如何在电源插入时启动Android设备?
- 30. 如何让Android设备在插入时保持睡眠状态
**非常感谢**我会tes t此代码... – human4 2012-02-16 21:21:54
@ human4总是乐于提供帮助。如果'UIDevice'的'batteryState'上的KVO正常工作,那么这就是我想要的。 – Sam 2012-02-16 22:22:05
这不再起作用。 – 2015-01-23 08:53:15