I\'m building a medical diagnostic app. Interruptions while a patient (or doctor) is in the midst of using it would disrupt the purpose of the app and waste a lot of time. <
I found a way to know if DND is on, but it may only be used in certain circumstance... The CallKit will return particular error code when DND is on, for example:
CXCallUpdate *update = [[CXCallUpdate alloc] init];
update.remoteHandle = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:handle];
[(CXProvider *)self.provider reportNewIncomingCallWithUUID:uuid
update:update
completion:^(NSError *error) {
if (error) {
NSLog(@"error when reporting imconing: %@", [error localizedDescription]);
//The operation couldn’t be completed. (com.apple.CallKit.error.incomingcall error 3.)
if ([error code] == CXErrorCodeIncomingCallErrorFilteredByDoNotDisturb) {
NSLog(@"Disturb mode is on");
}
}
}];