2013-08-08 2 views
0

전체 질문 제목입니다.
여기에 내가 한 것.
나는 충전기에 내 맥에 아이폰을 연결하지 않는다. 나는 중요하지 않은지 안다.내 앱 충전시 iPhone이 잠기는 것을 방지하는 방법

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{... 
[UIDevice currentDevice].batteryMonitoringEnabled = YES; 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(batteryStateDidChange:) 
               name:UIDeviceBatteryStateDidChangeNotification object:nil]; 
...} 

- (void)batteryStateDidChange:(NSNotification *)notification 
{ 
    [[UIDevice currentDevice] setBatteryMonitoringEnabled:YES]; 

    if ([[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateCharging || 
     [[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateFull){ 

     [UIApplication sharedApplication].idleTimerDisabled = YES; 
    } 
    else if ([[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateUnplugged) { 

     [UIApplication sharedApplication].idleTimerDisabled = NO; 
    } 
} 

무엇이 누락 되었습니까?

답변

1

내가보기에 즉각적인 문제는 충전 상태가 나중에 변경 될 때 알림을 받도록 등록했지만 충전기의 상태가 실제로 변경되기 전에 유휴 타이머로 수행 할 작업을 구성하지 않는다는 것입니다.

예를 들어, 기기에 연결하면 충전기가 연결되어 충전되는 경우가 많으므로 기기를 분리하지 않으면 UIDeviceBatteryStateDidChangeNotification에 게시 할 이유가 없습니다.

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(batteryStateDidChange:) 
              name:UIDeviceBatteryStateDidChangeNotification object:nil]; 

[self batteryStateDidChange:nil]; 
:

는 다음과 같이 고려