0

我想在 android 中创建将阻止通话录音的应用程序。如果有人在我的手机中秘密安装通话录音应用程序,例如病毒或其他东西,那么这个应用程序将限制/阻止所有通话录音。

所以我的问题是

有什么办法可以屏蔽通话录音吗?

先感谢您。

4

1 回答 1

1

我觉得有可能!!!如果一台安卓设备同时运行两个不同的通话录音应用程序,通话将只被第一个应用程序记录,这将使用该设备中的通话录音资源,其余所有应用程序将无法录音,因为资源可以被一个人使用一次应用程序,它是一个计算,谁会触发开始使用资源将获胜..它可以是你的应用程序!

我只是给出idea而已,不是完美的解决方案!!!

示例代码(非完整代码):

       MediaRecorder recorder = new MediaRecorder();

 Log.d(TAG, "RecordService will config MediaRecorder with audiosource: " + audiosource + " audioformat: " + audioformat);
    try {
        // These calls will throw exceptions unless you set the
        // android.permission.RECORD_AUDIO permission for your app
        recorder.reset();
        recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        Log.d(TAG, "set encoder default");
        recorder.setOutputFile(recording.getAbsolutePath());
        Log.d(TAG, "set file: " + recording.getAbsolutePath());
        //recorder.setMaxDuration(msDuration); //1000); // 1 seconds
        //recorder.setMaxFileSize(bytesMax); //1024*1024); // 1KB

        recorder.setOnInfoListener(this);
        recorder.setOnErrorListener(this);

        try {
            recorder.prepare();
        } catch (java.io.IOException e) {
            Log.e(TAG, "RecordService::onStart() IOException attempting recorder.prepare()\n");
            Toast t = Toast.makeText(getApplicationContext(), "CallRecorder was unable to start recording: " + e, Toast.LENGTH_LONG);
            t.show();
            recorder = null;
            return; //return 0; //START_STICKY;
        }
        Log.d(TAG, "recorder.prepare() returned");

        recorder.start();
        isRecording = true;
        Log.i(TAG, "recorder.start() returned");
        //updateNotification(true);

    } catch (java.lang.Exception e) {
        Toast t = Toast.makeText(getApplicationContext(), "CallRecorder was unable to start recording: " + e, Toast.LENGTH_LONG);
        t.show();

        Log.e(TAG, "RecordService::onStart caught unexpected exception", e);
        recorder = null;
    } 
于 2016-04-02T09:21:12.437 回答