我正在尝试从录音机记录声音,但在Android 6+上,我遇到了权限错误。我添加了请求权限的代码(有3个权限需要请求),其中两个能够工作,但是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)
在清单文件中
<uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT"/>
[更新] 经过多次尝试和研究,我现在可以回答: 感谢谷歌,我们现在不能录制通话。 只有使用C代码和NDK才可能实现。