【发布时间】:2018-02-03 11:57:18
【问题描述】:
我试图从录音机录制声音,但在 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)
在清单中
<uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT"/>
[UPD] 经过大量的尝试和研究,我现在可以回答: 感谢谷歌,现在我们无法记录通话。 只有使用 C 代码和 NDK 才有可能。
【问题讨论】:
-
@Hetfieldan24 我在清单中有一行
-
您实施了 NDK 吗?是不是两个声音都录了?
-
@Heena 是的,已实现。它的唯一记录麦克风。应该以某种方式避免这种情况..但我不知道如何,没有 NDK 经验
-
@Peter 可以使用 NDK 到 Android 9(不包括)。这就是为什么你会看到许多通话录音应用程序无法在 Android 9 上录音的原因。现在它变得越来越不可能了。也许通过root是可能的,但仍然很难。如果您知道如何通过 root 执行此操作(并且没有将应用程序作为系统应用程序),请告诉我。
-
@androiddeveloper 我留下了这个想法。不合法
标签: java android audio output record