问题标签 [android-10.0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 使用 Android Q 中引入的 Scoped Storage,我应该如何开发文件管理器应用程序?
Android Q 将为应用引入新的沙盒文件系统 Scoped Storage。此政策将在任何以 API>=29 为目标的应用程序上强制执行。第三方文件管理器应用程序应如何克服此限制并继续正常工作?
这个问题对于任何具有一些文件管理功能的应用程序来说都是通用的,比如浏览、保存、加载、同步等。
android - 我已将 targetSdkVersion 更新为 Q,但我无法获得 READ MEDIA IMAGES 的许可
我已将 targetSdkVersion 更新为 Q,但我无法获得新的权限,例如READ MEDIA IMAGES
.
这是我的 build.gradle 文件:
我无法READ MEDIA IMAGES
使用
或者
有谁知道为什么?
android - 在Android Q中卸载应用程序后是否有保存应用程序文件的位置,媒体收藏或下载除外
根据https://developer.android.com/preview/privacy/scoped-storage,具有沙盒视图的应用程序只能访问位于应用程序特定目录中的文件或 Android Q 中的媒体集合或下载。
如果我想在卸载应用程序后保留应用程序文件,我只是感到困惑,我可以在哪里写我的文件,除了媒体或下载目录。
在不适当的位置写入文件是不好的,所以这个问题只是想知道当应用程序使用范围存储时是否有可能。
android-emulator - 设置中的应用程序在 Android Q(Beta 3)模拟器中崩溃
尝试在“设置”中打开“应用程序和通知”时遇到问题。当我尝试这样做时,设置崩溃并显示启动器的主屏幕。
当应用程序尝试打开权限对话框(授予覆盖权限)或当我尝试打开任何应用程序的“应用程序信息”活动时,也会发生这种情况。
这是在 Windows 7 机器上。
这是我们可以在 Google 问题跟踪器中添加星标的相关条目:https ://issuetracker.google.com/issues/132401131
已在 Beta 4 中修复
android - 当我只能处理文件或文件路径时如何处理 SAF?
背景
直到 Android Q,如果我们想获取有关 APK 文件的信息,我们可以使用WRITE_EXTERNAL_STORAGE和READ_EXTERNAL_STORAGE来访问存储,然后在文件路径上使用PackageManager.getPackageArchiveInfo函数。
存在类似的情况,例如在压缩文件上使用ZipFile 类,可能还有无数的框架 API 和第三方库。
问题
谷歌最近宣布了对 Android Q 的大量限制。
其中之一称为Scoped Storage,它在访问设备拥有的所有文件时会破坏存储权限。它允许您处理媒体文件,或使用非常受限的存储访问框架 ( SAF ),它不允许应用程序使用 File API 和文件路径访问和使用文件。
当 Android Q Beta 2 发布时,它破坏了很多应用程序,包括谷歌。原因是它默认打开,影响所有应用程序,无论它们是否针对 Android Q。
原因是许多应用程序、SDK 和 Android 框架本身 - 都经常使用 File API。在许多情况下,它们也不支持 InputStream 或 SAF 相关的解决方案。这方面的一个例子正是我写的关于 (PackageManager.getPackageArchiveInfo) 的 APK 解析示例。
然而,在 Q beta 3 上,情况发生了一些变化,因此以 Q 为目标的应用程序将具有范围存储,并且有一个标志可以禁用它,并且仍然像往常一样使用正常的存储权限和文件 API。可悲的是,旗帜只是暂时的(在这里阅读),所以它推迟了不可避免的事情。
我试过的
我已经尝试过并发现了接下来的事情:
使用存储权限确实没有让我读取任何不是媒体文件的文件(我想查找 APK 文件)。就好像文件不存在一样。
使用 SAF,我可以找到 APK 文件,并通过一些解决方法来找到它的真实路径(链接在这里),我注意到 File API 可以告诉我文件确实存在,但它无法获得它的大小,并且框架未能使用其路径使用
getPackageArchiveInfo
. 在这里写了这个我试图对文件建立一个符号链接(链接在这里),然后从符号链接中读取。它没有帮助。
对于解析APK文件的情况,我尝试寻找替代解决方案。我找到了 2 个使用 File 类(此处和此处)处理 APK 的 github 存储库,以及一个使用 InputStream 代替(此处)的存储库。遗憾的是,使用 InputStream 的那个非常旧,缺少各种功能(例如获取应用程序的名称和图标)并且不会很快更新。此外,拥有一个库需要维护以跟上未来的 Android 版本,否则将来可能会出现问题,甚至崩溃。
问题
一般来说,有没有办法在使用 SAF 时仍然使用 File API?我不是在谈论根解决方案或只是将文件复制到其他地方。我说的是更可靠的解决方案。
对于APK解析的情况,有没有办法解决框架只提供文件路径作为参数的问题?也许有任何解决方法或使用 InputStream 的方法?
android - 如何在使用 Android Q 的 Android 模拟器上运行颤振应用程序时修复“HttpException”错误?
我正在尝试在 Android Q 上运行的 Android Emulator Pixel 2 上运行颤振应用程序,但该命令flutter run
会引发以下错误:
我尝试重新启动 Android Studio 以及模拟器。根据在 Github 问题和 Stackoverflow 上找到的解决方案,我也尝试添加NO_PROXY=localhost,127.0.0.1
到.bash_profile
android - Android Q 版本握手期间的 SSLV3_ALERT_CERTIFICATE_UNKNOWN
我已经使用“TLSv1”协议为客户端-服务器通信添加了自签名证书,在所有设备中都能完美运行,但在握手过程中的 Android Q 预览中出现以下异常
错误可以从procedtoUnsafe产生或从浏览器添加异常
我添加了创建连接的功能
我提到了 StackOverflow问题,但没有找到解决方案
android - 如何从 Android 设备获取网络路由信息?
Android Q 正在删除此处的访问权限/proc/net/
:https ://developer.android.com/preview/privacy/data-identifiers 。
我需要替换使用/proc/net/route
并/proc/net/ipv6_route
收集路由信息。但 Android 建议使用NetworkStatsManager
并ConnectivityManager
替换它。但无法从这些类中找到路由信息。我错过了一些用法吗?
android - Android Q 上仅 DNS 的 VPN 服务
我们使用 VpnService 来设置具有自定义 DNS 设置的 VPN。我们只是对更改设备的 DNS 设置感兴趣。
在当前版本的 Android(P 及以下)中,通过不在 VPN 中设置路由,服务流量会直接路由到应用程序,DNS 请求会发送到提供的地址。我们不需要 TUN 接口,因为我们不提供真正的 VPN 服务。
在 Android Q beta 3 上,VPN 已建立,但 DNS 设置被忽略。发生了什么变化?
下面是我们如何在 onStartCommand 中启动服务