最近项目中有人提出来说拍照没法拍,我的第一反应是之前项目一直是好的,按道理不是硬件代码的问题。结合了自己昨天刚把测试机升到了android10,所以箭头指向了android版本。于是用了测试机试了一下,果不其然也报错了。错误信息是 java.io.FileNotFoundException。就是找不到该文件了,于是翻阅资料发现,在AndroidManifest.xml 里的application中添加 android:requestLegacyExternalStorage=“true” 临时解决。可以兼容到Android 11。或者targetsdk 降低到29以下。

<application  
  android:requestLegacyExternalStorage="true"
>

还有类似还有一个问题,就是我申请了读写权限,但是就是指向不到文件,所以就一直没办法拍照。后来研究发现,是因为还需要再手动给一次权限。

if (ActivityCompat.checkSelfPermission(WaitActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  ActivityCompat.requestPermissions(WaitActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
}

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐