问题标签 [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.

0 投票
1 回答
58 浏览

java - 在 Android P 和 Q Beta 中以编程方式切换异常时出现意外行为

我有一个非常简单的应用程序,只有一个按钮。当我按下此按钮时,我希望以编程方式切换“仅来自已加星标的联系人”和“播放媒体声音”。我正在使用的代码是:

实际发生的是只有“播放媒体声音”被激活,而不是其他选项。对于我做错了什么的一些迹象,我将不胜感激。干杯!

0 投票
1 回答
546 浏览

android - Android Q RingtonePicker 现在会导致应用崩溃?

所以我一直在测试 Android Q 以确保我的应用程序不会有任何问题,我注意到如果你尝试启动它,铃声选择器现在会使应用程序崩溃。

错误信息如下。

android.content.ActivityNotFoundException: 没有找到处理 Intent { act=android.intent.action.RINGTONE_PICKER (has extras) }

我查找了此处找到的铃声偏好:https ://developer.android.com/reference/android/preference/RingtonePreference

现在它说 - 此类在 API 级别 Q 中已弃用。使用 AndroidX 首选项库在所有设备上实现一致的行为。有关使用 AndroidX 首选项库的更多信息,请参阅设置。

这只是一个问题,因为 android Q 处于测试阶段,还是我需要改变它。我有两个应用程序,我使用 ringtonePicker 来选择自定义警报声音或通知声音。有谁知道任何解决方法,还是我应该耐心等待 Q 进一步发展?

编辑:这是我的代码片段,也许它只是一个模拟器问题..

0 投票
6 回答
23159 浏览

android - 是否有 API 可以检测操作系统正在使用哪个主题 - 深色或浅色(或其他)?

背景

在最近的 Android 版本中,自 Android 8.1 以来,操作系统对主题的支持越来越多。更具体地说是黑暗主题。

问题

尽管从用户的角度来看有很多关于暗模式的讨论,但几乎没有为开发人员编写的内容。

我发现了什么

从 Android 8.1 开始,Google 提供了某种深色主题。如果用户选择深色壁纸,操作系统的某些 UI 组件会变黑(此处的文章)。

此外,如果您开发了一个动态壁纸应用程序,您可以告诉操作系统它有哪些颜色(3 种颜色),这也会影响操作系统的颜色(至少在基于 Vanilla 的 ROM 和 Google 设备上)。这就是为什么我什至制作了一个应用程序,它可以让你拥有任何壁纸,同时仍然可以选择颜色(这里)。这是通过调用notifyColorsChanged然后使用 onComputeColors 提供它们来完成的

从 Android 9.0 开始,现在可以选择要拥有的主题:浅色、深色或自动(基于壁纸):

在此处输入图像描述

而现在在临近的 Android Q 上,似乎又走得更远了,但还不清楚到什么程度。不知何故,一个名为“Smart Launcher”的启动器已经骑在它上面,提供直接使用主题本身(这里的文章)。因此,如果您启用暗模式(手动,如此所写),您将获得应用程序的设置屏幕,如下所示:

在此处输入图像描述

到目前为止,我唯一发现的是上述文章,并且我正在关注此类主题。

我也知道如何请求操作系统使用动态壁纸更改颜色,但这似乎在 Android Q 上发生了变化,至少根据我在尝试时看到的情况(我认为它更多基于时间,但不确定)。

问题

  1. 是否有 API 可以获取操作系统设置使用的颜色?

  2. 是否有任何类型的 API 来获取操作系统的主题?来自哪个版本?

  3. 新的 API 是否也与夜间模式有关?这些如何协同工作?

  4. 应用程序是否有一个很好的 API 来处理所选主题?这意味着如果操作系统处于某个主题中,那么当前的应用程序也会如此吗?

0 投票
2 回答
6626 浏览

android - 错误:使用 fullScreenIntent 需要 USE_FULL_SCREEN_INTENT 权限

我正在使用全屏通知我的代码可以在Oreo版本及以下版本中找到但是当我运行时android-Q我遇到了异常

我正在使用setFullScreenIntent()全屏通知

这是我的代码

0 投票
0 回答
1115 浏览

android - Android Q手机app如何获取手机MAC地址?

官网,我们可以看到:

默认情况下,在 Android Q 上运行的设备会传输随机 MAC 地址。如果您的应用程序处理企业用例,该平台提供了几个新的 API: 获取随机 MAC 地址:设备所有者应用程序和配置文件所有者应用程序可以通过调用 getRandomizedMacAddress() 检索分配给特定网络的随机 MAC 地址。获取实际的出厂 MAC 地址:设备所有者应用程序可以通过调用 getWifiMacAddress() 检索设备的实际硬件 MAC 地址。此方法对于跟踪设备队列很有用。

更多细节

另一个参考

我用这种方式在android Q中获取MAC地址,但我失败了。我得到随机的 MAC 地址,但不是真正的 MAC 地址。那么如何在我的应用程序中获取手机的 MAC 地址?

0 投票
1 回答
3482 浏览

android - 如何在 Android Q 中拍照并保存?

新编辑:

我正在开发一个android应用程序并希望支持android Q。当我的应用程序在目标API(<= 28)中运行时,一切正常。但是在android Q中,当我拍照并尝试保存它时,会发生一些奇怪的事情。

当我拍摄第一张照片时,我可以在我的自定义照片选择器中找到它。但是我找不到在第一张之后拍摄的其他照片。

但我可以在终端中使用 adb 找到所有照片。有人有什么建议吗?

我拍这样的照片:

并保存照片:

这是 copy() 方法:

解决方案:我应该像这样创建 uri:

0 投票
1 回答
334 浏览

android - 如何在 Android Q 中请求外部文件访问权限?

0 投票
2 回答
1724 浏览

android - Toast 未在 Android Q 中显示

Toast在Android Q中不起作用。有什么变化Toast吗?我找不到任何发行说明Toast
我的代码很简单。

这适用于 Android Pie,但不适用于 Android Q。
发生了什么Toast

0 投票
0 回答
38 浏览

android - “ProtocolException:将majorVersion=null 解析为int 的问题”Android Q Beta 3

在 Android Q Beta 3 上尝试之后,我在我的应用程序中遇到了这个异常。看起来我缺少majorVersion参数......但我没有在文档中找到它。有人遇到过这个问题吗?

还有另一个类似的例外

0 投票
1 回答
5969 浏览

android - 用于 Android Q 上的辅助存储的媒体扫描仪

随着较新的 ​​Android Q 的出现,许多事情发生了变化,尤其是在范围存储和逐渐弃用file:///URI 的情况下。问题是缺乏关于如何在 Android Q 设备上正确处理媒体文件的文档。

我有一个媒体文件(音频)管理应用程序,但我找不到一种可靠的方法来告诉操作系统我对文件执行了更改,以便它可以更新其 MediaStore 记录。

选项 #1:MediaScannerService

  • 使用file://来自主存储的 URI
  • 不适用于file://辅助存储(例如可移动存储)中的 URI
  • 不适用于任何content://URI

选项#2:广播

  • 根本不工作
  • 很快被弃用

选项 #3:手动插入 MediaStore

AudioFileContentValues是来自 的一些列值MediaStore.Audio.AudioColumns

基于file://URI的旧方法:

  • MediaStore.Audio.Media.getContentUriForPath已弃用
  • 还是行不通

基于我可以从文档中汇总的新方法:

来自主存储的位置,而类似于辅助存储的位置,取决于文件所在的位置correctVolumeexternal0000-0000

  • 插入返回一个内容 URI,例如,content://media/external/audio/media/125但没有记录保存在 MediaStore 中,用于位于主存储中的文件
  • 插入失败,没有返回 URI 并且 MediaStore 中没有记录

这些或多或少是以前 Android 版本中可用的所有方法,但现在它们都不允许我通知系统我更改了一些音频文件元数据并让 Android 更新 MediaStore 记录。事件虽然选项 #1 部分有效,但这绝不可能是一个有价值的解决方案,因为它显然不支持内容 URI。

尽管文件位于何处,是否有任何可靠的方法可以在 Android Q 上触发媒体扫描?根据 Google 的说法,我们甚至不应该关心文件位置,因为我们很快将只使用内容 URI。在我看来,MediaStore 一直有点令人沮丧,但现在情况更糟了。