小编A-A*_*UCG的帖子

Environment.getExternalStorageDirectory() 弃用替代方案

在 SDK 29(又名 Android_Q)中,Environment.getExternalStorageDirectory()不推荐使用该方法访问外部存储,不再返回可访问的文件。

getExtenalStoragePublicDirectory(字符串类型)

此方法在 API 级别 29 中已弃用。为了提高用户隐私,不推荐直接访问共享/外部存储设备。当应用以 Build.VERSION_CODES.Q 为目标时,此方法返回的路径不再可供应用直接访问。通过迁移到诸如 Context#getExternalFilesDir(String)、MediaStore 或 Intent#ACTION_OPEN_DOCUMENT 等替代方案,应用程序可以继续访问存储在共享/外部存储上的内容。

但是 using 会Context#getExternalFilesDir(String)返回 App-Data 文件夹中的一个文件夹。在您的应用程序卸载或数据清除时删除。

但是考虑一下像 WhatsApp 或 Facebook Messenger 这样的应用程序如何保存备份和下载,他们使用外部存储并创建自定义文件夹来存储他们的数据。

这些应用程序将如何迁移?有没有新的方法?

我的应用程序是一个笔记应用程序,它将所有笔记备份到一个文件夹中,以便在应用程序删除或数据清除后进行恢复。在 SDK 29 中,我不能再遵循这样的方法。

android

11
推荐指数
1
解决办法
1万
查看次数

页脚未在 Paging 3 中显示

我正在关注 Paging 3 的 Codelab。

分页工作正常,但尝试添加页脚似乎不起作用。

LoadStateAdapter我的代码在使用方面与 Codelab 完全一样

class ListLoadStateAdapter(
    private val retry: () -> Unit,
) : LoadStateAdapter<ListLoadStateAdapter.ListLoadStateViewHolder>() {

    override fun onBindViewHolder(holder: ListLoadStateViewHolder, loadState: LoadState) {
        holder.bind(loadState)
    }

    override fun onCreateViewHolder(
        parent: ViewGroup,
        loadState: LoadState,
    ) = ListLoadStateViewHolder.create(parent, retry)

    class ListLoadStateViewHolder(
        private val binding: ComponentPagedListFooterBinding,
        retry: () -> Unit,
    ) : RecyclerView.ViewHolder(binding.root) {

        init {
            binding.buttonRetry.setOnClickListener { retry.invoke() }
        }

        fun bind(loadState: LoadState) {
            if (loadState is LoadState.Error) {
                binding.textViewPlaceholderError.text = loadState.error.localizedMessage
            }

            binding.progressBar.isVisible = loadState is …
Run Code Online (Sandbox Code Playgroud)

android android-paging-3

10
推荐指数
1
解决办法
3613
查看次数

更新 Unity3D 中的 gradle 包装器

我正在使用 Unity3D 构建 Android 游戏,但 Unity 似乎正在使用旧版本的 Gradle。例如,它使用 Gradle Wrapper 4.6,而不是最新的 5.0,或者至少是之前最新的 4.10.2。

我尝试用Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\libAndroid Studio 中的 gradle 版本替换 gradle lib 文件夹,Unity 开始说invalid gradle installation

PS:我在Unity上问过这个问题,但要么那个地方已经死了,要么没有太多支持

android unity-game-engine gradle

6
推荐指数
0
解决办法
2101
查看次数