Harsha C Alva が述べたように、これを行う 1 つの方法は、インストールされたアプリケーションを反復処理し、それらのアクセス許可を確認し、実行中の場合は強制終了することです。
アプリのインストールを繰り返すために
private void iterateInstalledApps()
{
PackageManager p = this.getPackageManager();
final List <PackageInfo> appinstall =
p.getInstalledPackages(PackageManager.GET_PERMISSIONS);
for(PackageInfo pInfo:appinstall)
{
String[] reqPermission=pInfo.requestedPermissions;
if(reqPermission!=null)
{
for(int i=0;i<reqPermission.length;i++)
{
if (((String)reqPermission[i]).equals("android.permission.RECORD_AUDIO"))
{
killPackage(pInfo.packageName.toString());
break;
}
}
}
}
}
1つのパッケージを殺すために
private void killPackage(String packageToKill)
{
ActivityManager actvityManager =
(ActivityManager) this.getSystemService( ACTIVITY_SERVICE );
final List<RunningAppProcessInfo> procInfos =
actvityManager.getRunningAppProcesses();
for (RunningAppProcessInfo runningAppProcessInfo : procInfos)
{
if(runningAppProcessInfo.processName.equals(packageToKill))
{
android.os.Process.sendSignal(runningAppProcessInfo.pid,
android.os.Process.SIGNAL_KILL);
actvityManager.killBackgroundProcesses(packageToKill);
}
}
}
Android はその場でアプリを再起動しているため、タイマーで iterateInstalledApps を呼び出すことができます。アプリケーションを強制終了し続けると、何も記録できなくなります。電話で話している間、Call Recorder でテストします。