내가하려는 것은 전화가 걸려 올 때 코드를 실행하는 앱입니다. 발신자에 대한 세부 정보를 얻을 수 없다는 것을 알고 있습니다.앱이 잠 들어있을 때 전화 탐지
내 문제는 앱이 포 그라운드 일 때만 작동한다는 것입니다.
#import <CoreTelephony/CoreTelephonyDefines.h>
#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCall.h>
CTCallCenter *callCenter = [[CTCallCenter alloc] init];
[callCenter setCallEventHandler:^(CTCall *call) {
ONLog(@"Event handler called");
if ([call.callState isEqualToString: CTCallStateConnected]) {
ONLog(@"Connected");
} else if ([call.callState isEqualToString: CTCallStateDialing]) {
ONLog(@"Dialing");
} else if ([call.callState isEqualToString: CTCallStateDisconnected]) {
ONLog(@"Disconnected");
} else if ([call.callState isEqualToString: CTCallStateIncoming]) {
ONLog(@"Incomming");
}
}];
누군가가 백그라운드 작업으로이 실행을 좀 도와 수 :
이 내 코드?
는 편집 : 전화입니다 :) 그것은 작동하지 않습니다
__block UIBackgroundTaskIdentifier yourBackgroundTaskName;
yourBackgroundTaskName = [application beginBackgroundTaskWithExpirationHandler:^{
// CODE FOR EXPIRATION HANDLER BLOCK
[application endBackgroundTask: yourBackgroundTaskName];
yourBackgroundTaskName = UIBackgroundTaskInvalid;
}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// DO YOUR STUFF HERE. START OF BACKGROUND TASK.
NSLog(@"Background time Remaining: %f",[[UIApplication sharedApplication] backgroundTimeRemaining]);
self.callCenter = [[CTCallCenter alloc] init];
[self.callCenter setCallEventHandler:^(CTCall *call) {
ONLog(@"Event handler called");
if ([call.callState isEqualToString: CTCallStateConnected]) {
ONLog(@"Connected");
} else if ([call.callState isEqualToString: CTCallStateDialing]) {
ONLog(@"Dialing");
} else if ([call.callState isEqualToString: CTCallStateDisconnected]) {
ONLog(@"Disconnected");
} else if ([call.callState isEqualToString: CTCallStateIncoming]) {
ONLog(@"Incomming");
}
}];
//WHEN YOU ARE DONE WITH YOUR TASK, TELL THAT TO SYSTEM
[application endBackgroundTask: yourBackgroundTaskName];
yourBackgroundTaskName = UIBackgroundTaskInvalid;
});
- 그것은 단지 실행 배경의 저 180초를 구입 ...
- :
이 같은 Richas '코드를 사용 감지되지 않음
작성되지 않은 마지막 'else'에 속하지 않는지 확인할 수 있습니까? 그냥 생각. – Anon
Appstore에서 앱을 게시 하시겠습니까? 간단한 해결책이 있습니다. 앱을 일시 중지시키지 마십시오. 이렇게하려면 백그라운드에서 매우 인기있는 트릭 재생 무성음 파일을 사용하면 기기와 앱이 잠들지 않도록 할 수 있습니다. 하지만 앱을 거부해야하는 올바른 이유가 있어야한다는 뜻입니다. – creker