如何检测Android中是否有应用程序请求麦克风



我正在开发一个应用程序,该应用程序需要知道其他第三方应用程序何时请求麦克风。有什么方法可以检测到它吗?

提前感谢!

经过一些研究,由于安全原因,似乎不可能知道另一个第三方应用程序何时请求MICROPHONE。

如果你想根据媒体记录器的实际状态执行操作,你可能必须按照这篇文章中的解释来处理:

如何检测MediaRecorder是否被其他应用程序使用?

关于检测其他应用程序的权限访问,我认为这可以提供一个答案:如何检测其他应用的权限访问?

但是,如果你想检查需要RECORD_AUDIO权限的应用程序,你可以继续阅读以下行:

基于Kopi-B对此问题的回答

要获得请求麦克风的应用程序列表,您可以按照以下步骤进行:

final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List pkgAppsList = getPackageManager().queryIntentActivities(mainIntent, 0);
//create a package names list
List<String> packageNames=new ArrayList<>();
for (Object obj : pkgAppsList) {
ResolveInfo resolveInfo = (ResolveInfo) obj;
PackageInfo packageInfo = null;
try {
packageInfo = getPackageManager().getPackageInfo(resolveInfo.activityInfo.packageName, PackageManager.GET_PERMISSIONS);
} catch (PackageManager.NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String[] requestedPermissions = packageInfo.requestedPermissions;
//check the microphone permission
if (requestedPermissions!=null) {
for (String packagePermission : requestedPermissions) {
if (packagePermission == Manifest.permission.RECORD_AUDIO) {
packageNames.add(packageInfo.packageName);
break;
}
}
}
}

相关内容

最新更新