我正在开发的应用程序使用File
作为照片拍摄的目标。这是通过用户使用Intent(ACTION_IMAGE_CAPTURE)
选择相机应用程序在外部执行的。自从将build和Taret-sdk升级到29后,出现了一系列问题,首先是限制在外部存储上自由访问文件。第一个更改是使用应用程序的私有缓存目录之一,例如:
<代码>文件。createTempFile(“tempImage”,“.jpg”,context.cacheDir)
或应用程序私有外部存储目录:
<代码>文件。createTempFile(“tempImage”,“.jpg”,context.getExternalFilesDir(Environment.DIRECTORY\u PICTURES))
与file_路径中的FileProvider访问相结合。html" target="_blank">xml,例如:
<paths>
<external-path name="images" path="Pictures/" /><!-- prior to SDK-29, use public external storage -->
<external-files-path name="externalImages" path="Pictures/" />
<files-path name="internalImages" path="internalImages/"/>
<cache-path name="cache" path="/" />
</paths>
在正确配置后,这些功能现在运行良好,但是实现“保存到图库”功能,例如:在运行Android-10的设备上通知其他应用程序新图像不再工作
// use FileProvider to make this new photo publicly accessible
val shareableUri = FileProvider.getUriForFile(context, FILE_PROVIDER_AUTHORITY, newImage)
context.sendBroadcast(
Intent(ACTION_MEDIA_SCANNER_SCAN_FILE).apply { data = uris.externalUri }
)
这种方法应该有效,但不起作用,无论原始图像保存在何处(Private ate-app-dir、cache-dir、exexted-Private)
MediaScannerConnection.scanFile(context, arrayOf(newImage.absolutePath), arrayOf("image/jpeg")) { path: String, uri: Uri? ->
if (uri == null) {
throw IllegalStateException("media scan failed...")
} else {
// successful
}
}
Android的SDK-29中是否有新的限制要求更改MediaScanning,特别是与扫描(可能)私有图像文件的方式有关?我注意到MediaScanner方法大多需要字符串路径而不是URI,因此我认为新的限制将不适用于它,因为它是一个系统组件。
默认情况下,针对Android 10(API级别29)及更高版本的应用程序可以访问外部存储设备或范围存储。
因此,您需要使其与scopedStorage兼容,但您可以使用谷歌Android开发者指南中提到的这种临时方法。
在应用程序与作用域存储完全兼容之前,您可以根据应用程序的目标SDK级别或requestLegacyExternalStorage清单属性暂时退出:
<manifest ... >
<!-- This attribute is "false" by default on apps targeting
Android 10 or higher. -->
<application android:requestLegacyExternalStorage="true" ... >
...
</application>
</manifest>
Google Play Store对Android范围内的应用程序存储设置了新的要求,使用清单标志 我的应用程序正在使用React Native community提供的CameraRoll软件包,该软件包尚不支持作用域存储(并且需要标志才能工作),时间非常短(2021年5月5日)。CameraRoll还有其他选择吗?这里的目标是在用户图库应用程序中显示图像,比如谷歌照片或供应商默认图库,而无需在
见屏幕一黑,绝影也不知道是怎么回事,以前在公司测试的时候从来没出现这种情况,反正肯定是程序出了问题,坏就坏在还是全屏,图像一黑,整个屏幕就黑了。他用眼角的余光瞟了瞟周总,还好周总正在兴致勃勃地给医生们介绍KIPACS是如何如何好,只有医院领导一个人发现了问题。他赶忙退出全屏关掉KIPACS,再次打开。 医院领导正要开口,绝影抢在他前面说:“这是正常现象,一般KIPACS用久了就要重启一次。”那言外
Flutter:没有虚拟方法getLongVersionCode(),Sdk 29 有人知道怎么解决吗? /content/pm/packageinfo;或其超类(声明
尝试在google play store上上传apk或app bundle aab时,出现以下错误:上传失败 *
上一节介绍了 Cookie 和 Session 的相关概念,本节就要在 Django 中操作 Cookie 和 Session,同时我也会继续带领大家追踪相关的代码,这样可以更好的理解相关操作。 1. Django 中操作 Cookie 操作 Cookie 同样是考察4个基本动作:增删改查。现在分别从这4个角度看 Django 如何操作 Cookie : 增:对于视图函数或者视图类的三种返回 Re
为了完成第四部分,你将简单把你所学习的完整的 TDD 流程,应用于你可能不熟悉的、更相关的项目。请参阅练习 28 来确认你了解该流程,并确保你严格遵循它。如果必须的话,创建一个检查列表。 警告 当你实际工作时,这个严格的流程完全没有用。目前,你正在研究该流程,并将其内在化,以便你可以在现实世界中使用它。这就是为什么我让你严格遵循它。这只是练习,所以当你做真正的工作时,不要成为一个狂热者。这本书的目