问题标签 [android-api-30]
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 intent.resolveActivity 在 API 30 中返回 null
在我们的应用程序中,我们有支付网关实现。我们正在开放意向开放 GPay、PhonePay、Paytm 和其他应用程序。请找到以下代码,
我在 AndroidManifest.xml 中添加了“查询”标签
即使 UPI 应用程序安装在设备上,但我们却没有找到 UPI 应用程序!请安装继续!
请帮助我做什么。
java - Android 11 中的应用程序无法访问 Android/obb/package-folder 位置吗?
如果我为我的游戏应用下载 obb 文件并且它们存储在这个位置
我也将我的文本文件存储在这个位置
在 Android 10 之前运行良好,我需要进行哪些更改才能使其在 Android 11 环境中运行?我应该将文本文件移动到这个位置吗
或者
文本文件的目的只是存储数据,然后当我必须加载 obb 以开始游戏时从中读取 URL。
android - Cordova [Android 平台] 从 API 29 迁移到 API 30
我正在尝试迁移我的移动应用程序(使用 Cordova 和 AngularJS 为 Android 和 iOS 平台开发),我遇到了从 API 29 到 API 30 的一些问题。在我的应用程序中,我从 REST 服务下载了一个带有分隔图片的 JSON 目录(JPG格式)存储在数据目录(cordova.file.dataDirectory)中。使用 API 设置为 29 的应用程序构建,应用程序运行良好,下载图片并在 HTML 页面中显示它们(使用 AngularJS 更新)。但是,如果我尝试将 API 设置为 30 来构建它,应用程序会继续工作(它会正确下载数据目录中的 json 和 jpg 文件),但不会显示存储在该目录中的图片。我还尝试使用所有更新的组件(Cordova 10.0.0、Android 平台 10.0.0、插件等)创建一个新的简单移动应用程序,但我获得了相同的行为,我无法解决这个问题。
使用 API 29 构建信息应用程序
Cordova v8.1.2
安卓平台 v8.0.0
使用 API 30 构建信息应用程序
Cordova v10.0.0
安卓平台 v10.0.0
插件列表
cordova-plugin-android-permissions 1.0.2“权限”
cordova-plugin-camera 4.1.0“相机”
cordova-plugin-compat 1.2.0“Compat”
cordova-plugin-datepicker 0.9.3“DatePicker”
cordova-plugin-设备 2.0.3 “设备”
cordova-plugin-dialogs 2.0.2 “通知”
cordova-plugin-file 6.0.2 “文件”
cordova-plugin-file-hash 0.4.1 “FileHash”
cordova-plugin-filepath 1.5.8 “cordova-plugin-filepath”
cordova-plugin-geolocation 4.0.2 “地理位置”
cordova-plugin-globalization 1.11.0 “全球化”
cordova-plugin-inappbrowser 3.2.0 “InAppBrowser”
cordova-plugin-network-information 2.0.2 "网络信息”
cordova-plugin-sign-in-with-apple 0.1.2 “cordova-plugin-sign-in-with-apple”
cordova-plugin-splashscreen 5.0.3 "Splashscreen"
cordova-plugin-statusbar 2.4.3 "StatusBar"
cordova-plugin-whitelist 1.3.4 "白名单"
cordova-plugin-wkwebview-engine 1.2.1 "Cordova WKWebView Engine"
cordova- plugin-wkwebview-file-xhr 2.1.4 “Cordova WKWebView 文件 XHR 插件”
cordova-sqlite-storage 5.0.0 “Cordova sqlite 存储插件 - cordova-sqlite-storage 插件版本”
ionic-plugin-keyboard 2.2.1 “键盘”
phonegap-plugin-mobile-accessibility 1.0.5-dev “移动辅助功能”
android - Android 目标 api 11,从 linux 命令行构建,复杂项目
我需要通过命令行从linux机器构建一个apk,所以通过gradle wrapper。
该项目已将 NDK 和 CMAKE 配置为使用本机库。目前对于目标 29,一切正常。它具有以下配置:
- NDK 21.3.6528147
- CMAKE 3.10.2
- 源兼容性 VERSION_1_8。
- 构建工具版本“29.0.3”
- 编译SdkVersion,targetSdkVersion 29
- com.android.tools.build:gradle:3.6.4'
- 梯度包装器
distributionUrl=https\://services.gradle.org/distributions/gradle-6.2-all.zip
- JDK 8 安装在 linux 机器上
- SDK工具(命令行工具)sdk-tools-linux-3859397.zip
- Robolectric 'org.robolectric:robolectric:4.3.1'
来自 gradle.build ,当然我需要 compileSdkVersion
30
- 我需要
buildToolsVersion
设置为 30.0.2 吗? - 我需要特定的 gradle 包装器版本吗?例如,如果我需要将工具从 29.0.3 设置为 30.0.2,我是否需要将 gradle 包装器更新到 7.1.1,例如?
- 我需要更新到 com.android.tools.build:gradle:7.0.2'
- 如果我不需要 Java VERSION_11,我是否需要进行任何相关更改?
- 机器上安装的JDK有什么作用吗?我需要更新到 JDK 11 吗?
- 我需要最新的 SDK 工具吗,例如 commandlinetools-linux-6609375_latest.zip
- Robolectric ......真是一场噩梦......我认为它不适用于 Java 11......
我已经尝试了各种东西,甚至将所有内容更新到最新版本。没有任何效果,组合变得无穷无尽,谷歌也不清楚。
例如更新包装器需要更新NDK,然后NDK 需要更新cmake。sdk manager 3.10以上版本不附带cmake,您需要手动更新cmake,cmake安装不附带ninja,而从sdkmanager安装也安装ninja,您需要安装ninja并将其与cmake结合使用ndk等...
所以我们只是在寻找对外围设备、目标 API 30 的最小更改,仅此而已。
uuid - 如何在android 11中生成唯一代码
如您所知,在 Android 11 中无法获取imei。可以复制您的应用程序的应用程序会生成一个新的 android id。对于具有相同条件的两部手机,伪 id 可能会重复。随机 uuid 只生成一个随机代码但我正在寻找一个像 Imei 这样的不可更改的唯一代码。
android - 即使应用访问非 SDK 接口,应用也不会崩溃/
根据“访问受限非 SDK 接口时的预期行为”,如果应用程序(API 版本 30)尝试访问非 SDK 接口(greylist-max-q),应用程序应该会崩溃。但根据我的经验,该应用程序不会崩溃。
例如,我设备的 API 是 30,我的应用程序使用 OkHttp3(4.xx)。当我启动应用程序时,logcat 如下所示。
该setUseSessionTickets
函数似乎被标记为graylist-max-q,并且 30(my device api) 大于 q(29)。但应用程序正常工作,没有任何崩溃。我不知道为什么没有崩溃。
可以忽略这个警告日志吗..?
android - Android API 30 上的 Nativescript WebView 产生 ERR_ACCESS_DENIED
我有一个 NativeScript 6.8 JavaScript 应用程序,它使用 WebView 来显示在引用本地图像文件的应用程序中组成的 html 字符串。Google Play 商店迫使我支持 API 30,当我这样做时,WebView 失败并显示
我发现这篇文章建议我修改一些 Android WebView 的访问设置,这样我的代码现在看起来像这样
AndroidManifest.xml:
xml:
js:
当我运行它时,我在控制台中收到这些消息:
在第一次导航到页面时,会显示 android 错误屏幕。但是,如果我重新导航到该页面,我只会收到“设置集”消息,并且 html 会正确显示。好像设置有效,但设置得不够快。将代码移动到 LoadStarted 事件没有任何效果。
我觉得我很接近;我欢迎任何帮助。
android - WindowController 的切换状态栏文本颜色/setAppearanceLightStatusBars 未按预期工作
我为我的应用程序使用两种不同的背景,具体取决于哪个屏幕处于活动状态。一般来说,状态栏是透明的,背景应该放在它后面。根据背景,我需要状态栏文本的颜色为浅色或深色。
到目前为止,我使用此主题属性使状态栏透明(它确实是半透明的,但如果有人知道如何让它透明,将不胜感激)
每当背景应该像这样切换时,我正在使用 Jetpack 导航来导航并将参数传递给目的地
这真的很好。现在不起作用的部分是状态栏文本颜色的切换:
这是使用的控制器,创建于onCreate()
我的MainActivity
在这里您可以看到状态栏是绿色的,因为 mainActivity 的背景位于半透明状态栏的后面。windowController.setAppearanceLightStatusBars(true);
评论了这个版本
在这里,您看到状态栏是白色的,文本是白色的(因为它仍然是绿色背景),但它被向下移动并被某种默认的白色状态栏背景取代。查看电池图标现在的位置。windowController.setAppearanceLightStatusBars(true);
未发表评论并在沿路某处被处决
更新:
在此之后,我能够在运行 Android 10 的测试设备上获得所需的结果。
在 Emulator Running API 30 上,我现在还有一个问题:
WindowCompat.setDecorFitsSystemWindows(window, false);
让我们在状态栏和导航栏后面绘制。现在状态栏按预期工作,但导航栏隐藏了部分 UI。我需要导航栏处于旧状态,而不是被绘制在下面。有任何想法吗?
为了完整性
cordova - 导出cordova 10.0.0时出现黑屏
我使用 cmd 和以下命令导出游戏。科尔多瓦平台添加 android@10.0.0 但在最终导出中屏幕是黑色的,这发生在所有来源。问题是什么?我所有的同事都有这个问题,可能是cordova的问题。我需要一个目标为 30 的输出