最近在使用MediaMetadataRetriever的setDataSource方法时,老是抛出IllegalArgumentException异常,上网查了一番,发现出现这个异常的原因无非就是两大点:
1、文件路径不对
2、文件访问权限不够
结合这两点原因我排查了一下,发现确实是我的权限不够导致的,因为我测试时使用的Android 10.0的手机,虽然我已经动态申请了权限,但是Android10对权限的管理更加严格了,主要有以下两点:
1、权限按单个分配,不再按组分配,以前申请了读存储卡权限,即可获得同组的读写权限,现在需要逐个申请
2、存储卡读写权限需要在Application的Manifest清单中声明
Android10.0 需要在AndroidManifest.xml文件中application出加上 android:requestLegacyExternalStorage="true"