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

本文探讨了在Android10.0中使用MediaMetadataRetriever的setDataSource方法时遇到的IllegalArgumentException异常,主要原因是文件访问权限不足。文章详细解释了Android10对权限管理的加强,包括权限按单个分配及存储卡读写权限的声明方式。
8137





