我正在尝试从录音机录制声音,但在 Android 6+ 上出现权限错误。我添加了请求权限的代码(有 3 个请求权限)2 工作但是CAPTURE_AUDIO_OUTPUT 显示错误。它只是不要求我授予许可。在日志中它只是“未授予”有人知道什么问题吗?
public static boolean PermissionCheck(Activity context, String permission, int code) {
boolean state = false;
int permissionCheck = ContextCompat.checkSelfPermission(context,
permission);
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(context, new String[]{permission}, code); // define this constant yourself
} else {
// you have the permission
return true;
}
return state;
}
case CAPTURE_AUDIO_OUTPUT_CONSTANT: {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Logger.e("CAPTURE PERMISSION GRANTED");
INIT();
} else {
Logger.e("CAPTURE PERMISSION NOT GRANTED");
finish();
}
return;
}
错误
W/PackageManager: Not granting permission android.permission.CAPTURE_AUDIO_OUTPUT to package blabla_package (protectionLevel=18 flags=0x3848be46)
在 list 中
<uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT"/>
[UPD] 经过大量的尝试和研究,我现在可以回答:感谢谷歌,现在我们不能记录通话。只有使用 C 代码和 NDK 才有可能。
CAPTURE_AUDIO_OUTPUT
不是危险
权限,因此不适用于运行时权限系统。 CAPTURE_AUDIO_OUTPUT
具有 android:protectionLevel="signature|privileged"
,因此它只能由安装在特权(又名系统)分区上或由平台签名 key 。
我是一名优秀的程序员,十分优秀!