macOS 10.15请求全局鼠标监听授权

1.背景

新的macOS10.15系统在监听全局鼠标、键盘事件的时候会弹出授权提示,

例如使用了CGEventTapCreate就会弹出监听输入授权提示
Screenshot2019_08_20_171323.jpg

2.主动授权

要主动授权就先要查询输入监听的授权状态,如果已授权则可以监听,没有授权过则进行访问授权,已拒绝可以弹出安全隐私界面要求用户授权。

#import <IOKit/hidsystem/IOHIDLib.h>

if(@available(macos 10.15, *))
{
    IOHIDAccessType theType = IOHIDCheckAccess(kIOHIDRequestTypeListenEvent);
    NSLog(@"IOHIDCheckAccess = %d", theType);
    switch (theType)
    {
        case kIOHIDAccessTypeGranted:
            //同意
            break;
        case kIOHIDAccessTypeDenied:
        {
            //拒绝
            NSString *urlString = @"x-apple.systempreferences:com.apple.preference.security?Privacy_ListenEvent";
            [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:urlString]];
            break;
        }
        case kIOHIDAccessTypeUnknown:
        {
            //未弹过提示框
            bool result = IOHIDRequestAccess(kIOHIDRequestTypeListenEvent);
            NSLog(@"IOHIDRequestAccess result = %d", result);
            break;
        }
        default:
            break;
    }
}

重置输入监听授权状态

tccutil reset ListenEvent
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,904评论 1 32
  • Web网站测试流程和方法(转载) 1测试流程与方法 1.1测试流程 进行正式测试之前,应先确定如何开展测试,不可盲...
    夏了夏夏夏天阅读 5,098评论 0 0
  • 概述 概览 音频会话管理音频行为 categories 代表音频规则 中断处理通知 通知支持音频路由的更改 音频会...
    充满活力的早晨阅读 7,823评论 0 4
  • 5月22号,这个对我来说特殊的日子在今年叠加了周三,碰撞出了不一样的事故。 正在监考化学时,放在一旁随时接受年级群...
    绿萝会开花阅读 3,709评论 4 5
  • [原文](唐代 李绅) 春种一粒粟,秋收万颗子。四海无闲田,农夫犹饿死。 锄禾日当午,汗滴禾下土。谁知盘中餐,粒...
    阳学风阅读 6,099评论 3 9

友情链接更多精彩内容