Я тестирую разрешения доступа с помощью AXIsProcessTrustedWithOptions.
При запуске приложения значение возвращается правильно. Однако, если я изменю настройку в Системных настройках -> Безопасность и конфиденциальность во время работы приложения, вызов API по-прежнему возвращает предыдущее значение.
Это ошибка?
Вот пример кода:
bool checkIfAccessibilityEnabledAndDisplayPopup()
{
// Method to check if accessibility is enabled
// Passing YES to kAXTrustedCheckOptionPrompt forces showing popup
NSDictionary *options = @{(bridge id)kAXTrustedCheckOptionPrompt: @YES};
Boolean accessibilityEnabled = AXIsProcessTrustedWithOptions((CFDictionaryRef)options);
return (!!accessibilityEnabled);
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSLog(@"Starting");
for (int i=0;i<100;i) {
checkIfAccessibilityEnabledAndDisplayPopup();
[NSThread sleepForTimeInterval:20.0f];
NSDictionary *options = @{(__bridge id)kAXTrustedCheckOptionPrompt: @NO};
Boolean b = AXIsProcessTrustedWithOptions((CFDictionaryRef)options);
Boolean b1 = AXIsProcessTrusted();
NSLog(@"accessibility AXIsProcessTrustedWithOptions--> %d AXIsProcessTrusted --->
%d", b, b1);
}
}