Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何在应用程序中检测DND模式?_Iphone_Ios_Cocoa Touch - Fatal编程技术网

Iphone 如何在应用程序中检测DND模式?

Iphone 如何在应用程序中检测DND模式?,iphone,ios,cocoa-touch,Iphone,Ios,Cocoa Touch,我正在构建一个医疗诊断应用程序。当患者(或医生)正在使用该应用程序时,可能会中断应用程序的使用,并浪费大量时间 我想知道如何在应用程序中检测请勿打扰模式是否打开/关闭。(知道飞机模式是否打开/关闭也很好。)这样我可以提醒用户进入设置以打开它 更好(更文明):我有没有办法允许用户在应用程序中打开DND模式?(就像用户可以使用规范化应用程序中的设备卷一样。) 最接近的是用一个特殊的“URL”打开飞机模式。但它在iOS 5中是可用的。没有关于请勿打扰甚至飞机模式的公共API。甚至不知道状态 关于飞机

我正在构建一个医疗诊断应用程序。当患者(或医生)正在使用该应用程序时,可能会中断应用程序的使用,并浪费大量时间

我想知道如何在应用程序中检测请勿打扰模式是否打开/关闭。(知道飞机模式是否打开/关闭也很好。)这样我可以提醒用户进入设置以打开它

更好(更文明):我有没有办法允许用户在应用程序中打开DND模式?(就像用户可以使用规范化应用程序中的设备卷一样。)



最接近的是用一个特殊的“URL”打开飞机模式。但它在iOS 5中是可用的。

没有关于请勿打扰甚至飞机模式的公共API。甚至不知道状态

关于飞机模式,您可以检查网络状态(使用可达性),但它不是100%准确


可达性是一个很重要的概念,但GitHub上有几个基于它的库。

我找到了一种方法来知道DND是否开启,但它可能只在某些情况下使用。。。 当DND打开时,CallKit将返回特定的错误代码,例如:

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");
                                          }
                                      }
                                  }];

谢谢你,马塞洛。如何检查可达性状态?我非常感谢你的帮助,Marcelo,并投票支持你。尽管这可能是任何人都能做到的最好的答案,但这并不是一个令人满意的答案。这就是为什么我没有接受。好问题。iOS设置不允许用户进入DND或飞行模式的时间段,这对我来说非常特别。诺基亚最老的手机拥有这一功能,它对于输入DND非常有用,但不会忘记重新打开它。我一直在做的事情。我想要一个仅用于该功能的应用程序。将代码中的
3
替换为
cxErrorCodeIncomingCallerErrorFilteredByDonotSturb
please@VyachaslavGerchicov完成,谢谢:)