问题来源:
使用Android编写录音软件进行音频的读写时,当点击开始录音时会闪退,起初我以为是动态权限的问题,于是加了动态权限,但是依旧报错。
报错信息:
Process: com.example.audiosample, PID: 3506
java.lang.IllegalStateException: 未能创建/storage/emulated/0/reverseme.pcm
at com.example.audiosample.MainActivity.StartRecord(MainActivity.java:153)
at com.example.audiosample.MainActivity$2.run(MainActivity.java:113)
at java.lang.Thread.run(Thread.java:929)
I/Process: Sending signal. PID: 3506 SIG: 9
原因分析:
后来想了想,进行文件写入时,使用的是getExternalStorageDirectory获取路径,而现在的android已经不存在外部存储这个概念了,因而需要添加一个权限,进行声明:
android:requestLegacyExternalStorage="true"
这样的话就可以就行文件的写入了。