问题标签 [android-12]

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 投票
0 回答
184 浏览

java - createSpeechRecognizer() 和 createOnDeviceSpeechRecognizer() 有什么区别?

createSpeechRecognizer()方法是在API level 8中添加的。该createOnDeviceSpeechRecognizer()方法已在Android S中添加。但是它们的描述是一样的(根据官方网站)。任何人都可以澄清它们之间的区别吗?该方法在不久的将来是否有可能createSpeechRecognizer()被弃用?

0 投票
0 回答
51 浏览

android - 之后我们将在 SpeechRecognizer 中获得 ERROR_TOO_MANY_REQUESTS 的大致限制是多少?

Android S 的 SpeechRecognizer 类中添加了一些功能。其中之一是 ERROR_TOO_MANY_REQUESTS。它表示当来自同一客户端的请求过多时会遇到此错误。了解可以安全发送的最大请求数对我们很有帮助。

0 投票
3 回答
3038 浏览

android - windowSplashScreenAnimatableIcon not found

I want to customize my splash screen on Android 12 and I get the AAPT error:

Here is the relevant part of the style:

That is the attribute mentioned in the documentation.

Here is an overview of the build tool libs I'm using:

I use Android Studio Arctic Fox | 2020.3.1 Beta 1 just for the records.

Can someone point out what I'm doing wrong?

0 投票
3 回答
5152 浏览

android - 如何在 Android 12 SplashScreen 中使用或退出

Android 12 中的新 API SplashScreen看起来不错,但就像之前文档中的示例代码并不能真正帮助解释整个和正确的实现。在某些情况下,您可能会在启动画面期间执行某些任务,在我们的例子中,这是启动 Firebase Auth,所以最好的方法可能是选择不使用这个新的特色 API,但根据 lint 警告,这似乎是强制性的并且没有办法选择退出。

应用程序不应提供自己的启动屏幕

应用程序定义的启动屏幕 从 Android 12 (API 31+) 开始,应用程序的启动屏幕由系统提供,应用程序不应创建自己的,否则用户将看到两个启动屏幕。请检查 SplashScreen 类以检查如何控制和自定义启动画面。

旧设备的向后兼容性如何,如何处理?是否有任何代码实验室项目可以玩和测试?

0 投票
2 回答
2150 浏览

android - 无法找到具有路径的平台 SDK:platforms;android-31

我正准备将支持 SDK 更新到最新版本的 Android,即 SDK 31“S”,但 Gradle 同步存在一些问题。

错误

这是设置

已经在使用最新的 AGPcom.android.tools.build:gradle:7.1.0-alpha01

已经安装了 Android“S”预览工具。 在此处输入图像描述

最后已经有了最新的 AS 版本预览

Android Studio 大黄蜂 | 2021.1.1 Canary 1 Build #AI-203.7717.56.2111.7361063,于 2021 年 5 月 14 日构建

遵循文档也无法正常工作。

Gradle 同步成功

但是该应用程序根本无法安装在任何设备上,无论是发布还是调试。

我们还应该做什么?

0 投票
8 回答
31130 浏览

android - 针对 Android 12 的清单合并失败

使用 Android Studio 4.2.1,在我的 build.gradle 文件中将 sdk 目标更改为 Android 12 后,出现Manifest merger failed with multiple errors, see logs错误。

选项卡中显示的错误Merged Manifest如下:

但是,该android:exported标记已应用于我的 AndroidManifest.xml 文件中。我只有一项活动。没有服务或广播接收器。见下文:

我的 build.gradle(:app) 文件:

知道如何解决这个问题吗?

0 投票
2 回答
621 浏览

android - Android 12 Beta 1 AOSP 构建失败

我正在尝试构建最近android-s-beta-1从 Google 发布的版本,但我遇到了一些构建错误,主要是在module:aosp-dir/packages/modules/NeuralNetworks/

我正在使用"lunch aosp_x86_64-eng". 请让我知道,如果有人有任何想法。谢谢

0 投票
5 回答
13880 浏览

android - Android 12 新的蓝牙权限

蓝牙是我们应用程序的主要依赖项。因此,我们已经尝试实施新的 Android 12 蓝牙权限。我们唯一的资源是Android 开发人员 Android 12 中的新蓝牙权限。只是说添加权限

“android.permission.BLUETOOTH_CONNECT”

“android.permission.BLUETOOTH_SCAN”

我添加并获得了两者的运行时权限,当然还有位置(通常是 12 之前的版本))。
我的代码库没有其他变化。应该?我不知道。所以,问题是我的应用找不到 BLE 设备。我找不到原因。

你有什么建议或资源吗?

0 投票
2 回答
2420 浏览

android - setExpedited 是如何工作的,它和前台服务一样好和可靠吗?

背景

过去,我使用前台的IntentService来处理接踵而至的各种事件。然后它在 Android 11 到来时被弃用(Android R,API 30),据说它更喜欢使用使用setForegroundAsync的 Worker,所以我这样做了。

问题

随着 Android 12 的到来(Android S,API 31),只有一个版本之后,现在setForegroundAsync被标记为已弃用,我被告知使用setExpedited代替:

问题是,我不确定它是如何工作的。之前,我们有一个通知应该显示给用户,因为它正在使用前台服务(至少对于“旧”Android 版本)。现在似乎getForegroundInfoAsync用于它,但我认为它不会用于 Android 12 :

在 Android S 之前,WorkManager 代表您管理和运行前台服务来执行 WorkRequest,显示 ForegroundInfo 中提供的通知。要随后更新此通知,应用程序可以使用 NotificationManager。

从 Android S 及更高版本开始,WorkManager 使用即时作业管理此 WorkRequest。

关于它的另一个线索是(这里):

从 WorkManager 2.7.0 开始,您的应用可以调用 setExpedited() 来声明 Worker 应该使用加急作业。此新 API 在 Android 12 上运行时使用加速作业,并且该 API 在早期版本的 Android 上使用前台服务来提供向后兼容性。

他们拥有的唯一片段是调度本身:

甚至OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST的文档似乎也很奇怪:

当应用程序没有任何加急工作配额时,加急工作请求将回退到常规工作请求。

我想要的只是立即、可靠、不间断地(或至少尽可能低的机会)做某事,并使用操作系统提供的任何东西来做这件事。

我不明白为什么setExpedited要创建。

问题

  1. 究竟是如何setExpedited工作的?
  2. 这个“加急工作配额”是什么?当 Android 12 遇到这种情况时会发生什么?工人不会立即完成工作?
  3. setExpedited和前台服务一样可靠吗?它总是能够立即启动吗?
  4. 有哪些优点、缺点和限制setExpedited?为什么我应该更喜欢它而不是前台服务?
  5. 这是否意味着当应用在 Android 12 上使用此 API 时用户将看不到任何内容?
0 投票
2 回答
548 浏览

android-studio - 如何检查 Android 12 API 级别?

我正在尝试使用以下代码检查 android 12 API 级别。

但总是在 android 12 beta 设备中运行应用程序时执行 else 部分。这是检查android 12 beta版本的另一种方法吗?