当我尝试用root生成呼叫记录应用程序时出错

时间:2020-02-17 15:57:21

标签: java android call recording

我在创建通话记录应用程序时遇到问题。我知道这是 对于普通的android来说是不可能的,但是我有root特权。 我在清单文件中拥有此权限:

        <uses-permission android:name="android.permission.CALL_PHONE" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.RECORD_AUDIO" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_CONTACTS" />
        <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
        <uses-permission android:name="android.permission.MANAGE_OWN_CALLS"/>
        <uses-permission android:name="android.permission.READ_CALL_LOG"/>
        <uses-permission android:name="android.permission.ANSWER_PHONE_CALLS"/>
        <uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT"/>
        <uses-permission android:name="android.permission.RECORD_AUDIO" />
        <uses-permission android:name="android.permission.STORAGE" />

我使用:

 callrecorder = new MediaRecorder();
            callrecorder.setAudioSource(MediaRecorder.AudioSource.CALL_PHONE);
            callrecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
            callrecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
            callrecorder.setOutputFile(Environment.getExternalStorageDirectory() + "/Download/file.amr");

            try {
                callrecorder.prepare();
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (IOException e) {
            }
     try {
            callrecorder.start();
        } catch (Exception e) {
            e.printStackTrace();
        }

我有错误:


System.err: java.lang.RuntimeException: start failed.
System.err:     at android.media.MediaRecorder.start(Native Method)
System.err:     at RecordAnswer.doInBackground(RecordAnswer.java:24)
System.err:     at android.os.AsyncTask$3.call(AsyncTask.java:378)
System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
System.err:     at java.lang.Thread.run(Thread.java:919)

例如,当我使用


callrecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);

没关系。

0 个答案:

没有答案