由于Android Q
中不推荐使用getExternalStoragePublicDirectory,建议使用其他方法。那么如何指定要将相机应用程序生成的照片存储到DCIM
文件夹或DCIM
中的自定义子文件夹?
文档中指出,以下3个选项是新的首选选项:
选项3也不是一个选择,因为它需要用户通过SAF文件资源管理器选择位置。
我们剩下的是方案2,纵隔;但是没有关于如何在Android Q中使用它来替代getExternalStoragePublicDirectory的文档。
根据文档,对relative_path
使用dcim/...
,其中...
是您的自定义子目录。所以,你会得到这样的结果:
val resolver = context.contentResolver
val contentValues = ContentValues().apply {
put(MediaStore.MediaColumns.DISPLAY_NAME, "CuteKitten001")
put(MediaStore.MediaColumns.MIME_TYPE, "image/jpeg")
put(MediaStore.MediaColumns.RELATIVE_PATH, "DCIM/PerracoLabs")
}
val uri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues)
resolver.openOutputStream(uri).use {
// TODO something with the stream
}
注意,由于relative_path
对于API级别29是新的,您需要在较新的设备上使用这种方法,而在较旧的设备上使用getExternalStoragePublicDirectory()
。
我收到此错误,并且尝试将更改为仍然收到不同的错误。
问题内容: 我收到此警告,但是该程序仍然可以正常运行。 MySQL代码向我显示了一条PHP消息: 不推荐使用:mysql_connect():不推荐使用mysql扩展,以后将被删除:在第2行的C:\ xampp \ htdocs \ task \ media \ new \ connect.inc.php中使用mysqli或PDO代替 我的页面是 这是什么意思,我该如何消除该消息? 问题答案: 有
问题内容: 我正在尝试使用和进行单元测试。 当我不包含注释时,测试将失败。但 不推荐使用MockitoJUnitRunner类型 我正在使用Mockito 2.6.9。我应该怎么做? 问题答案: 现在确实已弃用,应该改为使用。如您所见,仅软件包名称已更改,该类的简单名称仍为 。 摘录自javadoc : 移至,该课程将在Mockito 3中删除
新的侦听器(又名OnCameraMoveListener())方法onCameraMove()没有CameraPosition CameraPosition输入变量,所以我很迷惑:有没有方法回收我的旧代码? 这里有一些参考资料。
我收到这个警告,但程序仍然正常运行。 MySQL代码用PHP向我显示了一条消息: 不推荐使用:mysql_connect():不推荐使用mysql扩展,以后将删除该扩展:在C:\xampp\htdocs\task\media\new\connect.inc.php第2行使用mysqli或PDO 我的页是 这意味着什么,我如何消除消息?
问题内容: 当我使用以下用户定义的异常时,我收到一条警告:Python 2.6中不推荐使用BaseException.message: 这是警告: 这怎么了 为了摆脱过时警告,我必须更改什么? 问题答案: 解决方案-几乎不需要编码 只是继承您的异常类,并将消息作为第一个参数传递给构造函数 例: 您可以使用或(不太优雅)来访问自定义消息。 背景 在较新的Python版本(从2.6开始)中,我们应该从