问题标签 [android-8.1-oreo]

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 回答
1480 浏览

android - onAnimationEnd() 调用了两次

从 23 更新 build sdk 27​​ 后,在调用时遇到了 onAnimationEnd 在下面的代码中触发两次的问题。onAnimationStart 仅被调用一次,并且 onAnimationRepeat 没有按预期调用。现在在应用程序中,当用户按一次后退按钮时,他们会后退两步。

gradle 中的所有库都使用最新的 27.0.2。这段代码在 sdk 23 中运行良好。我们的最小目标是 16。

我正在使用 isAnimating 标志来解决问题,但想找到可能影响应用程序其他区域的根本原因。

0 投票
1 回答
3105 浏览

android - Oreo (8.1) 无法在锁定屏幕上启动活动

我正在开发 NFC 支付应用程序。即使设备处于锁定状态,也可以在屏幕开启时付款。与 Android Pay 的行为基本相同。付款后,我想向用户显示胜利屏幕,以告知他付款结果 - 完成、错误、密码请求等。

我将此添加到清单中

在 onCreate 我正在设置这个标志

它在大多数设备上运行良好。但是一旦我将 Nexus 5X 更新到 Android 8.1,它就停止了工作。NFC交易是在后台完成的,没有任何问题,但是当我的手机处于锁屏状态并打开屏幕时,根本不显示胜利屏幕。当 5X 解锁时,它会毫无问题地开始活动。然后我发现它仅在应用程序未在后台运行时才起作用(当我转到设置并强制停止我的应用程序时)。当我打开应用程序并将其留在后台时,然后锁定我的手机并打开屏幕 - 它正在工作。但是当应用程序根本没有运行时 - 它不会显示我的活动。在其他设备上,例如带有 Andorid 7.0 的三星 S8,即使我强行停止活动并锁定手机,它也能正常工作。

我使用 Android 8.1 在 5X 上测试了 Android Pay,它在锁定屏幕上运行。所以仍然可以在锁定屏幕上开始活动,但我可能在那里遗漏了一些东西。

提前谢谢你。

0 投票
1 回答
1580 浏览

android - 基本推送通知不适用于奥利奥

我有一个超级简单的推送通知接收器。我真的只是在 AndroidManifest 中设置了接收器:

然后接收器类就是这样的:

在非奥利奥版本中,这会在操作系统的通知栏中发送一个推送通知徽章,播放默认通知声音,如果您点击通知徽章,应用程序就会打开。

这就是我现在真正需要的。这适用于非奥利奥版本,但奥利奥上没有任何显示。

知道为什么这不再起作用了吗?

0 投票
1 回答
517 浏览

java - 奥利奥通知加倍?

我在我的应用程序中包含了奥利奥支持。现在编译和目标 SDK 版本是 27。我创建了一个通道来获取我的通知。我正在从应用程序类调用创建通道方法。当应用程序处于前台时,通知看起来很好。但是,当我在应用程序处于后台时收到通知时,会创建默认通道,以便在通知托盘中显示 1 个默认通知和 1 个自定义通知。我正在使用广播接收器来获取通知。下面给出的是我的代码。

清单.xml

广播接收器.java

NotificationHandler.java

当我已经创建频道并将其设置为默认频道时,我不明白为什么它会创建默认频道。只有当应用程序在后台时才会发生这种情况。可能是什么问题?我该如何解决?

0 投票
0 回答
1813 浏览

android - Android 8.1 BLE 扫描不起作用

每当我使用 Android 8.1 关闭像素 2 的屏幕时,扫描仪就会关闭,正如这里已经描述的那样: BLE scan is not working when screen is off on Android 8.1.0

我尝试了特定的扫描过滤器属性和一个空的扫描过滤器,但没有成功,扫描仪被禁用并在打开屏幕后唤醒。

Logcat 输出(屏幕关闭):

无法在屏幕关闭时启动未经过滤的扫描。稍后将恢复此扫描...

任何帮助将不胜感激。

0 投票
1 回答
736 浏览

android - 如何检测应用程序已从 Android Oreo 上的最近访问(概览屏幕)中删除?

直到现在(在 Android Oreo 之前),我一直在通过 处理从应用程序最近删除Service.onTaskRemoved(),例如:

但是现在当我在 Android Oreo 上运行应用程序时,我无法以任何方式实现相同的行为。尝试了2种方法:

  1. 如果仍在使用Service,则在应用程序处于后台时不活动一段时间后,服务将被销毁,然后如果用户从最近删除的应用程序onTaskRemoved不会被调用。
  2. 如果通过 then 切换ServiceJobIntentService启动此服务,JobIntentServiceLauncher.enqueueWork则 OnAppRemovedFromRecentListener 几乎立即被销毁,并且在从最近onTaskRemoved删除应用程序时也不会调用

有谁知道如何检测从 Android Oreo 上的最新应用程序中删除我的应用程序,这将始终有效?

0 投票
0 回答
481 浏览

android - mkdirs 不适用于 Android Oreo

我正在尝试运行简单的代码来在外部存储图片目录上创建一个目录。在 8.1.0 上,mkdirs 不断返回 false 并且未创建目录。在 7.1.1 上它工作得很好。这是我的代码:

我声明了 WRITE_EXTERNAL_STORAGE 并确保在测试期间授予了权限,并且如上所述,它适用于 7.1.1,因此这看起来不像是权限问题。

我在这里做错了什么?

0 投票
0 回答
253 浏览

java - 从另一个进程 ID 访问 ContentProvider 时出现 java.lang.SecurityException

从另一个 PID 运行内容提供程序操作时,我在 Android 8 设备上得到以下信息:

Caused by: java.lang.SecurityException: Failed to find provider null for user 0; expected to find a valid ContentProvider for this authority

当我将调用Activity的进程设置为与主应用程序相同时,我没有收到此错误。有谁知道如何从另一个进程 ID (PID) 正确调用 contentprovider?

0 投票
0 回答
913 浏览

android - 如何在 Oreo 中获取已安装的应用程序大小?

我正在开发标准的“清洁大师”应用程序。

如果 api 级别低于 26,我的应用程序可以完美运行。

我需要在手机上显示应用程序总大小,以便用户决定是否卸载。

正如我所说,这段代码在 api 26 下完美运行。(添加了aidl ofc)

我知道这是可能的,因为 Clean master -高级清洁部分适用于 api 26。

我收到这个错误。我已经阅读了有关此的所有主题。

我有<uses-permission android:name="android.permission.GET_PACKAGE_SIZE" /> 权限。获得使用权限等。

注意:我不想获得 apk 大小(我已经有),只想要总应用程序大小。

0 投票
0 回答
87 浏览

android - Oreo - 自定义活动和本机守护程序之间的通信

我需要一些有关特定于 Android Oreo 的系统架构设计的帮助。

对于 Android Nougat,我通过套接字与本机守护程序(用 C 设计)进行了活动对话。活动和本机守护程序都是由我设计的。

从 Android Oreo 上的文档中,看起来两个进程之间的套接字通信现在已被弃用。我尝试在网上寻找替代品,但信息似乎有限。对此主题的任何帮助将不胜感激。