问题标签 [android-api-31]
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 - API 31 不推荐使用“VIBRATOR_SERVICE: String”
正如标题所说,我升级到 API 31。我有一个执行振动的功能,但在行
VIBRATOR_SERVICE现在显示为已弃用。我该如何更换它?或者至少,API 31 及更高版本的现代解决方案是什么?
编辑:正如 Joachim Sauer 所写,替代方案是 VibrationManager。我现在需要的是使用 VibrationManager 的等效代码行。
android - “连接信息的吸气剂:WifiInfo!” 已弃用。在 Java (Api 31) 中已弃用
当我想通过 WifiManager.connectionInfo 获取有关当前 wifi 连接的信息时,我得到了这个:
“连接信息的吸气剂:WifiInfo!” 已弃用。在 Java 中已弃用
我怎样才能在 Android 12 中做到这一点?(只想获取rssi)
android-emulator - Google SilentSignIn 不会在 Android 12 模拟器(Play API 31)中刷新令牌
我几天都面临一个问题,我没有更多的想法。我有一个带有 Google 登录功能的 android 应用程序,效果很好。它针对 API 30 (Android 11)。我最近将目标 SDK 升级到 31(Android 12)。
- 当我使用“Google Play Intel x86 Atom 系统映像(API 30)”模拟器运行我的应用程序时,一切正常(1 小时后令牌刷新良好)。
- 当我使用“Google Play Intel x86 Atom_64 System Image (API 31)”模拟器运行相同的应用程序时,第一次登录有效(它会创建一个有效的令牌),但在 1 小时的生命周期之后,静默登录不会刷新令牌,所以它已过期。
它是相同的源代码。唯一的区别是模拟器 Play SDK(30 对 31)。我没有真正的 Android 12 设备来测试。我希望这是一个模拟器 SDK 错误,但不确定,因为我什么都没发现。任何想法?
android - 无法从缓存目录 Android 12 将文件附加到 Gmail
我几乎找到了许多类似的链接 - 没有任何帮助
- Gmail 不允许我从 /storage/emulated/0/Android/data/myapppackage/cache/..pdf 手动使用 Gmail 和以编程方式获取文件
- 如果将相同的文件下载到 /storage/emulated/0/download/..pdf,则可以附加
代码 -
file_provder.xml
尝试了以下链接,这几乎看起来很完美,但对我不起作用 -通过 FileProvider 将缓存文件附加到 GMail 并且 Intent 不起作用
location - Android 12 不会返回具有大致位置权限的位置
在搭载 Android 12 (SPB5.210812.002) 的 Pixel 4a 上,当用户授予大致位置权限时,不会从FusedLocationProviderClient
. 当我将权限更改为确切位置权限时,我就可以获得位置。
我在 Manifest 中同时拥有粗略和精细的位置权限,并在运行时同时请求这两者。
一旦获得任一许可,我就会请求lastKnownLocation
,以及请求位置更新。有了精确的位置许可,我很快就能得到位置,但当用户给出大致的位置许可时却没有。
对于位置请求优先级,我已经尝试过LocationRequest.PRIORITY_HIGH_ACCURACY
和LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY
。
在 Android 9 上,一切都按预期工作,所以我猜这与Android 12 中引入的精确/近似位置权限有关。
这是我的代码的一部分:
android - exception.class.missing._Unknown_:强烈考虑在源代码中使用没有 PendingIntent 的 FLAG_IMMUTABLE
我最近更新了我的应用程序以针对 API 31,并注意到 Google Play 控制台中报告了一个新的崩溃,这对我来说毫无意义。
在 SO 和其他地方有许多答案导致的崩溃exception.class.missing._Unknown_: Strongly consider using FLAG_IMMUTABLE...
,但是从我读到的内容来看,这个崩溃应该只与使用有关PendingIntent
。
崩溃报告是有道理的,因为我只在 Android 12 (API 31) 上看到了崩溃报告,因为这是引入显式 IMMUTABLE 或 MUTABLE 要求的地方,但我搜索了整个项目,但找不到任何使用PendingIntent
.
崩溃的时间似乎与我发送的 FCM 推送通知相关,该通知再次与来自的崩溃相关PendingIntent
,但如果我在源代码中找不到它,那么我该如何明确设置FLAG_IMMUTABLE
?
我的项目依赖项如下:
android - Android 12 启动画面图标不显示
我发现我正在启动的一个新应用程序存在一个奇怪的问题。我正在使用新的 Android 12 初始屏幕 API 来创建我的初始屏幕,并按照Google 提供的指南进行操作。我在我的项目中包含了 core-splashscreen,以提供与旧版本 Android 操作系统的兼容性。当我运行该应用程序时,我在 API 30 等旧操作系统版本上看到了预期的启动屏幕,但是当我在 API 31 上运行它时,我提供的启动屏幕图标不显示。显示我指定的背景颜色,但图标根本不存在。我已经尝试过使用可绘制资产和 mipmap 进行此操作,但没有任何效果。我很困惑,因为我发现的每个教程都显示了我遵循的相同步骤以及他们工作启动画面的屏幕截图,但我没有任何运气。
对于上下文,这是我对 v31 的初始屏幕样式定义:
除了我使用“windowSplashScreenAnimatedIcon”而不是“android:windowSplashScreenAnimatedIcon”之外,我对所有其他操作系统版本都有相同的样式。我已经尝试过 v31 在项目名称前面有和没有“android:”的情况,但都不起作用。这是我的 MainActivity.kt:
我还在我的 AndroidManifest.xml 中将“android:theme”属性设置为我的初始样式。我知道正在应用启动样式,因为它尊重背景颜色,但由于某种原因它没有显示图标,即使图标对于旧操作系统版本显示良好。提前感谢您提供的任何帮助。
android - Android API 31,如何获取SSID?
清单(声明和授予的权限)
主班
输出
如何在针对最新 API 并使用最新的非弃用功能时检索 SSID?