Reputation: 1
i have project record voice and want save the voice record in external storage phone, i tried it with android version 8,9 it is working but when try it with android version 10 its not working and display this error.From the error that appears, it becomes clear that there was no permission to record audio and access media files. But I put the passcode in the correct place, and upon entering the program for the first time, a list of permissions will appear.
i hope fine solution.
thanks for all
E/InputEventReceiver: Exception dispatching input event.
E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
E/MessageQueue-JNI: java.lang.RuntimeException: could not build OutputStream from this filerecorded_audio.wav
at omrecorder.AbstractRecorder.outputStream(AbstractRecorder.java:44)
at omrecorder.AbstractRecorder.<init>(AbstractRecorder.java:22)
at omrecorder.Wav.<init>(Wav.java:35)
at omrecorder.OmRecorder.wav(OmRecorder.java:36)
at com.example.myapp.AudioRecorderActivity.resumeRecording(AudioRecorderActivity.java:303)
at com.example.myapp.AudioRecorderActivity.access$000(AudioRecorderActivity.java:38)
at com.example.myapp.AudioRecorderActivity$1.onTouch(AudioRecorderActivity.java:146)
at android.view.View.dispatchTouchEvent(View.java:13450)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3082)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2718)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3082)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2718)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3082)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2718)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3082)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2718)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3082)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2718)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3082)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2718)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3082)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2718)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:488)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1851)
at android.app.Activity.dispatchTouchEvent(Activity.java:4059)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:446)
at android.view.View.dispatchPointerEvent(View.java:13715)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5602)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5402)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4903)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4956)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4922)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5062)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4930)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5119)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4903)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4956)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4922)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4930)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4903)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7677)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7646)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7607)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7807)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:251)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:336)
at android.os.Looper.loop(Looper.java:181)
at android.app.ActivityThread.main(ActivityThread.java:7520)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Caused by: java.io.FileNotFoundException: /storage/emulated/0/recorded_audio.wav: open failed
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.myapp, PID: 26267
java.lang.RuntimeException: could not build OutputStream from this filerecorded_audio.wav
at omrecorder.AbstractRecorder.outputStream(AbstractRecorder.java:44)
at omrecorder.AbstractRecorder.<init>(AbstractRecorder.java:22)
at omrecorder.Wav.<init>(Wav.java:35)
at omrecorder.OmRecorder.wav(OmRecorder.java:36)
at com.example.myapp.AudioRecorderActivity.resumeRecording(AudioRecorderActivity.java:303)
at com.example.myapp.AudioRecorderActivity.access$000(AudioRecorderActivity.java:38)
at com.example.myapp.AudioRecorderActivity$1.onTouch(AudioRecorderActivity.java:146)
at android.view.View.dispatchTouchEvent(View.java:13450)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3082)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2718)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3082)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2718)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3082)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2718)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3082)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2718)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3082)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2718)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3082)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2718)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3082)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2718)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:488)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1851)
at android.app.Activity.dispatchTouchEvent(Activity.java:4059)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:446)
at android.view.View.dispatchPointerEvent(View.java:13715)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5602)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5402)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4903)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4956)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4922)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5062)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4930)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5119)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4903)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4956)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4922)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4930)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4903)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7677)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7646)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7607)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7807)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:251)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:336)
at android.os.Looper.loop(Looper.java:181)
at android.app.ActivityThread.main(ActivityThread.java:7520)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Caused by: java.io.FileNotFoundException: /storage/emulated/0/recorded_audio.wav: open failed: EACCES (Permission denied)
at libcore.io.IoBridge.open(IoBridge.java:496)
at java.io.FileOutputStream.<init>(FileOutputStream.java:235)
at java.io.FileOutputStream.<init>(FileOutputStream.java:186)
at omrecorder.AbstractRecorder.outputStream(AbstractRecorder.java:41)
... 52 more
Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
at libcore.io.Linux.open(Native Method)
at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252)
at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7419)
at libcore.io.IoBridge.open(IoBridge.java:482)
... 55 more
Upvotes: 1
Views: 595
Reputation: 550
i had same issue, Adding android:requestLegacyExternalStorage="true" to the Android Manifest worked for me (Android 10 (Q) at SDK 29+)
Upvotes: 1