问题标签 [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 - Android 12 (S) 出现 RxJava 或 Retrofit PendingIntent 错误
我正在尝试将目标版本更改为 Android 12 (S)。但我有一个错误
强烈考虑使用 FLAG_IMMUTABLE,仅当某些功能依赖于 PendingIntent 是可变的时才使用 FLAG_MUTABLE,例如,如果它需要与内联回复或气泡一起使用。
产生此错误的代码是:
获取设备令牌查询:
我不明白,似乎 RxJava 库或改造库有一些 PendingIntent 功能,但我不明白究竟是哪个库。
我的图书馆:
请帮忙!
android - 通过 Api31/Android 在 Android 设备中使用 # 进行深度链接
好的,所以我在 stackoverflow 中看到 Q/A 说它不可能在 android 中使用包含“#”的 url 进行深度链接。但是最近添加了“pathAdvancePattern”,我已经能够实现打开我的应用程序的深度链接,即使 URL 中有“#”!
但有趣的是,虽然根据文档 pathAdvancePattern 的目标是 api 31,但它无法在 api31 的 url 中捕获带有 # 的链接,但会捕获该 api 下的设备!
因此,目前我可以在 api31 以下的设备中使用“#”对 url 进行深度链接,但我需要一个解决方案来在任何 api 设备上捕获带有“#”的 url。提前致谢!
android - AndroidManifest 错误:需要明确指定 android:exported
当我将目标和编译 SDK 版本从 30 更改为 31 时,出现错误。类似于这个问题的东西,但它没有答案。
错误:需要明确指定 android:exported 为 . 面向 Android 12 及更高版本的应用需要为
android:exported
相应组件定义了 Intent 过滤器时指定显式值。有关详细信息,请参阅 https://developer.android.com/guide/topics/manifest/activity-element#exported。
但是所有带有意图过滤器的活动都已经有了andoird:exported
属性。我的机器人清单:
什么可能导致错误?
android - Android 11 - CallRedirectionService 没有被触发
我们需要在拨出电话时调用服务,以便我们可以使用目标号码来显示某些附加信息。根据 Android 文档,应使用 CallRedirectionService。然而,在文档中描述的自定义服务声明之后,我们发现自定义服务没有被触发。请让我们知道我们做错了什么。感谢你的帮助。
我也提到了这个链接,但答案不清楚。有提到角色获取,但我在 Android 文档中没有找到。如果可用,请引导我到相关页面。
清单.xml
自定义服务代码
java - 我的小部件缩略图在 Android API 31 小部件列表中为空白
我的应用程序有一个简单的小部件(显示一个大图像来启动应用程序)它在 Android 28 下工作正常,但它与 API31 不同:要拖动的缩略图出现在小部件列表中,但显示(使用模拟器)由一个空格,如图所示 , 我注意到 Android 31 中有关 Widgets 的更改,但没有发现任何解释此问题的内容
代码元素:清单
AppWidgetConfigureActivity
App_widget
android - FakeAppUpdateManager - 不再在 API 31+ 上工作,在获取 appUpdateInfo 时创建 PendingIntent 时未指定可变性标志
使用 PlayCoreKtx 版本 1.8.1,
我有一个仪器测试来测试 Play Core 的 inAppUpdate 功能。我的测试中有一个看起来像这样的函数
我在线上遇到以下异常
java.lang.IllegalArgumentException:定位 S+(版本 31 及更高版本)要求在创建 PendingIntent 时指定 FLAG_IMMUTABLE 或 FLAG_MUTABLE 之一。
我认为在 PlayCore 库中修复它之前不会解决这个问题?除非我错过了什么。
谢谢您的帮助
android - Android 接收短信未进入 onReceive() 方法 - API31
我正在开发一个简单的应用程序,它可以发送 SMS 消息并接收它们。onReceive 方法永远不会被触发。我正在使用我的 google pixel 5 进行测试(使用最新的 android 版本)。编译 SDK 为 31,最小 SDK 23
我应该以某种方式开始意图吗?或者我应该以某种方式禁用手机上的 SMS 应用程序?(谷歌消息)我怀疑由于某种原因我只允许 Send_sms 权限,而不是收到的权限。
在我的清单中,我添加了:
在我的 MainActivity 中,我使用此函数来启动用户权限弹出窗口:
我的 SmsReceiver 类:
android - Android 12 - 打开 https 意图会导致应用重新启动活动,然后启动浏览器
我看到一个奇怪的行为只发生在 android 12 设备上。
- 在
Fragment
应用程序中,我们点击以在浏览器中打开一个链接,如下所示:Intent(Intent.ACTION_VIEW, Uri.parse(link))
然后startActivity(intent)
- 该链接指向我们自己的网站,该网站已验证主机。
- 然后发生的
MainActivity
是被销毁并重新启动,然后浏览器打开。 - 该应用程序基于单个活动,
Fragments
并且具有launchMode=singleTask
- 运行 android 12 以外的设备只需打开浏览器,当返回应用程序时,应用程序处于上次
Fragment
访问状态 - 这是所需的行为,也是我所期望的。
请注意,该应用程序正确处理深层链接。它还启用了 autoVerify 并且assetLinks.json 的设置是正确的 - 单击链接时应用程序会自动打开。
我的想法是,围绕深层链接引入的变化autoVerify
一定是造成这种情况的原因。如果我们交换链接,https://www.google.com
它不会破坏MainActivity
,我们可以访问该网站并返回应用程序。与我们的一位主机的任何其他链接都会导致该行为。
好奇有没有人有同样的经历。我们正在考虑在内部打开一个 webview 以避免将其作为临时解决方案,但这样做并不理想。
android - 将 targetSdkVersion 从 30 更新到 31 时,任务 ':app:compileDebugJavaWithJavac' 执行失败
我正在将 targetSdkVersion 从 API 30 迁移到 31。使用的 Gradle 包装器版本是 distributionUrl=https://services.gradle.org/distributions/gradle-6.1.1-all.zip。Gradle 工具版本是类路径 'com.android.tools.build:gradle:3.6.4' 而 buildToolsVersion 是 28.0.3。我使用的jdk版本是1.8。
当我尝试仅将 targetSdkVersion 和 compileSdkVersion 更改为 31 时,我的项目模块之一出现以下错误,我无法构建我的项目。
我一直坚持这一点,不知道如何前进。升级到 API 31 时我有什么遗漏吗?