2023-11-17更新: 根据留言,添加适配Sonoma系统的内容。

前言(废话)

我在第一次使用Teams开组会的时候,Teams一直提示我听不到我的声音,让我检查系统设置。

但是来到MacOS的隐私设置部分却发现了一个大问题,就是没有Teams这个软体的选项。

关于如何解决这个问题,去网络上检索很快发现了答案。

那么下面就记录一下如何解决这个问题

关于命令

由于采用不同的晶片似乎需要使用不同的命令,因此分别记载

Intel晶片

1
sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT or REPLACE INTO access VALUES('kTCCServiceMicrophone','#########',0,1,1,NULL,NULL,NULL,'UNUSED',NULL,0,1577993260);"

Apple Silicon

1
sudo sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT or REPLACE INTO access VALUES('kTCCServiceMicrophone','#########',0,0,4,1,NULL,NULL,0,'UNUSED',NULL,0,1622199671);"

Sonoma系统

根据在本页下方留言的小可爱Jus的提示,在Sonoma系统中这个数据的列数由原来的13个变成了17个。

感谢!但是sonoma中数据结构变成了17个参数,经过我测试这个是可以用的
sudo sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db “INSERT or REPLACE INTO access VALUES(‘kTCCServiceMicrophone’,’#########’,0,1,1,1,NULL,NULL,’UNUSED’,1,0,1551892126,0,0,0,0,0);”

如果您使用的是Sonoma系统,您可以尝试下面这个命令。

1
sudo sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT or REPLACE INTO access VALUES('kTCCServiceMicrophone','#########',0,1,1,1,NULL,NULL,'UNUSED',1,0,1551892126,0,0,0,0,0);”

名称替换

关于上述代码中的#########部分,需要替换成对应软件的注册名称(即Bundle identifier

关于查询一个应用的注册名称,可以使用下述代码

1
mdls -name kMDItemCFBundleIdentifier -r 

复制上述代码后,打开终端(terminal)

终端(Terminal)

将代码粘贴到终端中的最后敲上一个空格,从访达(Finder)的应用程序中找到相应应用程序的图标,将应用程序图标拖动到当前的终端(terminal)窗口,然后按下回车。

此时会出现一行内容,将出现的那行内容复制(但是不要复制最后一个“%”)

然后替换到相对应的那一长串代码中#########的部分,然后将替换后的代码粘贴到终端中,按下回车。

此时终端会提示输入电脑的解锁密码,这个时候输入密码即可。

!注意:此时输入密码,屏幕上是不会有任何显示的,输入密码之后按下回车即可。

此时再回到MacOS的隐私设置中就可以找到麦克风这一栏中出现了相应的应用程式了。

参考链接

[Mac系统怎么添加麦克风权限?|知乎]: https://www.zhihu.com/question/379603585

[How to get Bundle ID of Mac application?|StackOverflow]: https://stackoverflow.com/questions/39464668/how-to-get-bundle-id-of-mac-application