问题标签 [android-11]
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 - 如何在android11上获得本机屏幕录像机的通知?
我不希望用户录制我的应用程序的视频内容。我计划在屏幕录制时向用户展示错误的解释。所以我想在本机屏幕录像机录制设备屏幕时收到通知。
有没有人在那里,有线索如何做到这一点?
谢谢您的帮助!
android - Android 11 中的位置更新
我的应用程序会定期从后台开始跟踪前台服务中的位置更新,并在添加 android:foregroundServiceType="location" 后在 Android Q 中正常工作,但在 Android 11 beta 中它不再接收位置。
这种方式是 11 中的新方式还是只是一个错误?我没有在文件中看到任何内容。
android - intent.resolveActivity 在 API 30 中返回 null
查看intent.resolveActivity != null 但启动意图会引发 ActivityNotFound 异常,我写的是打开浏览器或具有深度链接的应用程序:
它不起作用。在 API 30 模拟器中找不到浏览器,而通用解决方案有效:
第一种方法不起作用,因为intent.resolveActivityInfo
orintent.resolveActivity
返回null
。但是对于 PDF 查看器,它可以工作。
我们应该解雇intent.resolveActivity
吗?
telephonymanager - Android 11 中的获取网络类型
在此处发布的更改之后,getNetworkType 方法已从 Android R 及更高版本中弃用。
尝试在 R 编译的应用程序中使用此方法时,会引发以下异常:
这很好,根据文档可以预期。如果我将应用程序编译到 Android R 之前的任何版本,则不会显示异常。
此异常表明我需要请求android.permission.READ_PHONE_STATE权限。
我想知道是否有一种方法可以使用不需要此权限的任何其他 API 获取网络类型(因为此权限的级别很危险,我宁愿不向用户询问)。
android - 在 Android 11 中查询 Audio Picker Intent 返回空
要检查设备上是否有音频选择器以便我可以显示选择器列表,我查询选择器列表然后显示意图,它在 Android 10 上工作,但在 Android 11 上停止工作(resInfoList 为空):
AndroidManifest 代码:
科特林代码:
奇怪的是,如果我查找视频文件,它可以正常工作并显示选择器:
AndroidManifest 代码:
科特林代码:
android - Android 10 上作用域存储的行为变化
我开始着手将 SDK 迁移到 29。
我遇到的主要问题Environment.getExternalStorageDirectory()
是已弃用和限定存储。
我把它全部替换为Context# getExternalFilesDir(null)
. 它开始使用 Android 11 beta 开发 Pixel 3a。
但是当我在带有 Android 10 的三星 s9+ 上对其进行测试时。它开始给我这个错误:
我试图在Glide的帮助下加载图像。
我也在其他设备上进行了测试。它不仅适用于 Android 10 设备。它适用于运行 Android 9 及更低版本和 Android 11 Beta 的设备。
然后,我将它放在android:requestLegacyExternalStorage = "true"
我的清单中,它也开始在 Android 10 上运行。
现在我的问题是:
- 如果它与 Scoped 存储有关,那么为什么它可以在 Android 11 而不是 Android 10 上运行?
- 我们是否只需要 Android 10 的旧标志来完成这项工作?
android - 如何在 Android R 中设置全屏?
我需要在我的应用程序中全屏显示屏幕。为此,我正在使用以下代码:
但是,该WindowManager.LayoutParams.FLAG_FULLSCREEN
标志已被弃用。
我的应用支持 Android Lollipop (API 21) 到 Android R (API 30)。使屏幕全屏显示的正确方法是什么?
android - DownloadManager 在 Android 11 模拟器上抛出 IllegalStateException 或 SecurityException
我的目标是 Android 10 / api 29,并且 DownloadManager 在版本 10 或更低版本上运行良好。它也适用于 R 预览版(我认为它是预览版 2)。但是,当我使用新的 api 30(修订版 6)在模拟器中进行测试时,它将无法正常工作。
当在带有 api 30 的模拟器上运行并调用 setDestinationInExternalFilesDir 时,它会在同一行出现异常:
代码是这样的:
如果我改为调用 setDestinationUri,则在使用请求调用 enqueue 时会出现异常:
例外:
异常的行是这样的:
在 api 29 上运行时,setDestinationInExternalFilesDir 和 setDestinationUri 都有效。
编辑:我也尝试过定位 api 30,它也有同样的问题。
此外,如果我在出现异常后再次尝试调用它,则不会引发异常,但是 DownloadManager 将无法下载文件并在查询时返回 DownloadManager.STATUS_PAUSED。
编辑:这是一个完整的例子,它不能在 Android 11 上工作,但在 Android 10 上工作。我没有使用 android:requestLegacyExternalStorage="true",它仍在 Android 10 上工作。他们还在文档中声明,当使用 setDestinationUri它将被保存到应用程序特定的目录。
在抛出异常之前也有这个警告: