问题标签 [android-9.0-pie]

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 投票
2 回答
4884 浏览

android - 使用 NETWORK_SETTINGS 权限防止 Android 9 (Pie) 上的 wifi 扫描限制

正如一些人所指出的那样,Android 9 (Pie) 严格限制了 wifi 扫描,从而削弱了任何执行 wifi 记录或基于 wifi 的位置查找的应用程序,其频率类似于 GPS。

如上面链接的票中所述:

  • 每个前台应用程序限制为每 2 分钟扫描 4 次
  • 所有后台应用程序组合限制为每 30 分钟扫描一次
  • 持有android.Manifest.permission.NETWORK_SETTINGS权限的应用程序不受扫描限制(参见docs

但是,我在文档中的任何地方都没有找到android.Manifest.permission.NETWORK_SETTINGS描述(我希望它记录在android.manifest.permission中)。

如果我只是在清单中声明,应用程序构建正常,安装正常,但我看不到任何额外的权限(即使我选择显示全部),至少在 Oreo 上(不幸的是我没有要测试的 Pie 设备还在)。

android.Manifest.permission.NETWORK_SETTINGS常规用户(即非系统)应用程序是否可以使用常规权限?

0 投票
9 回答
169781 浏览

java - Android(9)Pie中如何允许所有网络连接类型HTTP和HTTPS?

从现在的 Android 9 Pie 开始,没有加密的请求将永远无法工作。默认情况下,系统会期望您默认使用 TLS。您可以在此处阅读此功能因此,如果您只通过 HTTPS 发出请求,那么您是安全的。但是,通过不同站点发出请求的应用程序呢,例如类似浏览器的应用程序。

如何在 Android 9 Pie 中启用对所有类型连接 HTTP 和 HTTPS 的请求?

0 投票
2 回答
2078 浏览

android - 在 Android 9 (Android Pie) 中从输入法服务显示对话框

我的应用程序包含一个带有特殊按钮的输入法服务,该按钮会弹出一个对话框。对于使用 Android 9 的用户,此对话框无法正确显示,只有 IME 上方的部分可见:

在此处输入图像描述

创建对话框的代码是

这与https://stackoverflow.com/a/13962770/292233中的描述相同

我也按照https://stackoverflow.com/a/3508462/292233TYPE_APPLICATION_PANEL中的建议进行了尝试,但这也无济于事。

有什么简单的解决方法吗?

0 投票
1 回答
1107 浏览

android - Android P - 在运行时检查系统主题(默认、浅色或深色)

有没有办法在运行时检查系统主题?(见下图) 在此处输入图像描述

0 投票
3 回答
8149 浏览

database - 无法在 Android Pie (Android 9) 中打开数据库

我使用 checkDataBase 函数来确保数据库是否已经存在,以避免每次在 Oreo 中打开应用程序时重新复制文件。但在 Android Pie 中它不起作用。

收到此错误:os_unix.c:36667: (2) open(/data/data/my.androidPieTrial.app/databases/admin.db) android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14 SQLITE_CANTOPEN): could not开放数据库

0 投票
1 回答
667 浏览

android - Android 9中wifi RTT范围的正确使用

Android 9 (Pie) 引入了wifi RTT 测距,用于基于 wifi 的地理定位。

在 Android 8 (Oreo) 之前的版本中,应用程序会定期请求 wifi 扫描。此功能在 Android 9 中受到严重限制:前台应用程序现在可以在 2 分钟的窗口内请求最多 4 次扫描;后台应用程序被限制为每 30 分钟一次扫描所有后台应用程序的组合。避免这种限制的唯一方法是NETWORK_SETTINGS权限,但是,它是签名权限(我认为这意味着它需要使用与操作系统构建相同的密钥进行签名,无论它是否是系统应用程序),因此不是可用于第三方应用程序。

我知道 wifi RTT 测距只能用 启动ScanResult,因此我需要先运行 wifi 扫描。但是,我大概可以通过对几个 RTT 测距请求重复使用相同的扫描结果来绕过油门,但代价是一段时间内没有获得新的 wifi。

但是,文档还提到了 wifi RTT 范围的限制,但是没有具体说明限制是什么。

最后,WifiManager.startScan() 已弃用,应用程序可能无法在未来版本中开始扫描。

问题:

  • 请求 wifi RTT 测距的限制是什么?
  • 获取ScanResult我需要启动 RTT 测距请求的正确方法是什么?
0 投票
1 回答
2488 浏览

java - Android API 28 更新后,出现:合并 dex 档案时出错

我正在尝试将我的 Android 应用程序移至 API 28 (Android 9/P)

我遇到了 5 个无法修复的错误。我对 Android 开发还比较陌生,我认为,我可能没有最好的更新方法。

我已经尝试清理和重建,但问题仍然存在。

这是我的项目gradle:

这是我的应用程序gradle:

我收到 5 个错误:

1- 程序类型已经存在:android.support.customtabs.ICustomTabsCallback

2-引起:java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:合并dex档案时出错:

3- 原因:com.android.builder.dexing.DexArchiveMergerException:合并 dex 档案时出错:

4-引起:com.android.tools.r8.CompilationFailedException:编译未能完成

5- 引起:com.android.tools.r8.utils.AbortException

我一直在努力寻找有关此事的文件。任何建议或文档链接将不胜感激。

0 投票
1 回答
435 浏览

android - Android Studio 3.1.4 设计预览不渲染材料设计元素

我正在使用 Android Studio 3.1.4。为了使用最新的材料设计库,我将编译和目标 SDK 版本更新为 28。现在,我在基本线性布局中使用一些 TextInputLayouts 和 TextInputEditTexts,并且设计预览无法正确呈现它们。它也不会渲染任何正确跟随它的元素。我在设计预览中收到以下错误:

java.lang.IllegalArgumentException:restoreToCount 中的下溢 - 在 android.support.design.widget.CutoutDrawable.postDraw(CutoutDrawable.java:113) 在 android.graphics.Canvas.restoreToCount(Canvas.java:604) 在 android .support.design.widget.CutoutDrawable.draw(CutoutDrawable.java:87) 在 android.support.design.widget.TextInputLayout.draw(TextInputLayout.java:1575)

这是预览的实际外观 - 对设计没有特别帮助:

材料设计元素渲染不当

我一直在寻找解决此问题的方法,但似乎找不到任何对当前版本的 Android Studio 或 SDK 28 有用的东西。这是应用程序 build.gradle 文件:

候选发布库之一是否可能存在问题?

0 投票
3 回答
1075 浏览

android-emulator - android Pie模拟器中没有互联网

最近开始使用 Android Pie 模拟器。除了以前的模拟器,最新的模拟器没有连接到互联网。尝试打开移动数据并从命令行配置 dns。模拟器中仍然没有连接。

在此处输入图像描述

0 投票
6 回答
4702 浏览

android - 在 Android Pie (API-28) 中进入活动时键盘不显示

我想在进入电子邮件登录屏幕时弹出设备键盘。

我在AndroidManifest.xml文件中声明了windowSoftInputModeto :"stateVisible"

我已遵循此文档

结果:

在最多运行 27 个 Android API 的设备上,会显示键盘。

在运行 Android API 28 的设备上,未显示键盘。

它是 Android Pie 中的错误吗?

有什么建议吗?