问题标签 [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 投票
1 回答
6247 浏览

android - 在 android 8 上使用 android 数据绑定时应用程序崩溃

该代码适用于 pre-oreo 设备,但 Crashlytics 称它在 android 8 设备上崩溃

堆栈跟踪

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“int android.view.ViewGroup.getChildCount()”

0 投票
1 回答
9041 浏览

android - Android Oreo 不为通知播放自定义声音

我正在尝试为 API > 26 的通知添加自定义声音。下面是代码

这里的问题是它播放设备的默认钢琴声音,而不是播放资产中的哔哔声。我不允许使用铃声管理器,但根据常识统计,通知声音应该是指定的而不是默认的。

它适用于 API <= 26

0 投票
1 回答
1489 浏览

android - 奥利奥(8.1)上的吐司重叠问题

我对吐司有疑问。对于 API 26 及以下版本,toast 可以正确显示(下一个 toast 正在等待上一个消失),但在 Android 8.1 (API 27) 上,它们相互覆盖。我有这样设置的通知通道:

这为我修复了 8.0 上的敬酒,但在 8.1 上它们仍然重叠 喜欢这张照片

有没有办法解决这个问题,而不是记住上次使用的吐司并手动取消它?

编辑:

此线程的解决方法不起作用

吐司仍然重叠

编辑 2:我在 Android 问题跟踪器上为这个错误创建了故事: 链接

0 投票
1 回答
647 浏览

android - Android 8.1 连接到调用 connectGatt 的 BLE 外围设备。回调总是说断开连接。从不连接

我是 Android 编程新手,正在尝试编写一个与 BLE 外围设备一起使用的应用程序。我有一个我编写的 iOS 应用程序,它做同样的事情,我的 iOS 应用程序已经按照我想要的方式运行。

我编写了一个扫描外围设备列表的活动。到目前为止,这似乎工作正常。

然后我选择一个外围设备并将 BluetoothDevice 对象传递给一个“设备详细信息”活动,该活动应该连接到外围设备,然后用它做一些事情。

在我的设备详细信息活动中,我获取了对连接按钮的引用,然后添加了一个点击侦听器。点击监听器创建一个 MyBluetoothGattCallback 实例,然后将其用作调用 connectGatt() 的参数。这个调用确实返回了看起来像一个有效的 BluetoothGatt 对象。调用了 MyBluetoothGattCallback,但只调用了一次,状态为 133,状态为 0。这似乎是 BluetoothProfile.STATE_DISCONNECTED。回调不再被调用。每次我按下连接按钮时都会发生这种情况。

我已经确保只有一个扫描操作发生,并且它从应用程序的主要活动中停止。因此,此时没有进行扫描。

我的问题是我应该做些什么不同的事情才能使连接正常工作?

这是我的 BluetoothGattCallback 子类:

0 投票
1 回答
945 浏览

android - 电池电量不足时,Android Oreo 中未收到 FCM 通知

我目前正在 FCM 消息接收事件上启动我的视频通话应用程序。它工作正常。但是在奥利奥中,当电池电量很低时,我没有收到任何 FCM 通知。但即使在那种情况下,Whatsapp 也能正常工作

我正在发送以下 JSON:

0 投票
2 回答
402 浏览

android - 在 Oreo 中打开“请勿打扰”偏好设置

我在从我的应用程序中打开系统DND 首选项时遇到问题,以便用户可以创建或编辑自动时间规则

现在的情况

我们的应用程序已经有一个类似的功能,它会在特定时间段(例如晚上 10 点至早上 8 点之间)禁用应用程序通知 LED、声音和振动,并在整个应用程序范围内应用。从 Android Oreo 开始,由于通知通道,我们的功能不再起作用。据我了解,唯一的解决方案是在系统首选项中创建自动时间规则,然后将其应用于系统范围。

我想做的事?

只是为了将奥利奥用户从我的应用程序重定向到系统首选项,即。请勿打扰首选项以添加或编辑时间规则。

问题

没有具体Intent打开“请勿打扰”偏好设置。我能找到的最接近的是Settings.ACTION_ZEN_MODE_PRIORITY_SETTINGS它引导我到这个 Preference screen。我还找到了我完全需要的操作,但正如您所看到的,它被注释隐藏了。

这是否意味着无法打开此首选项屏幕,我应该使用另一种方法?

0 投票
0 回答
152 浏览

android - 在 JobIntentService 中运行 FileObserver

我的应用程序FileObserver在服务内部运行(该服务在创建临时文件后 10 分钟运行,它会观察该文件 60 秒,以便在不使用时将其删除)。

由于 Android 8 的限制,我无法从后台启动服务。AFAIK 的替代品是:

  1. 运行前台服务(但我不想显示通知图标)
  2. 使用JobService(但仅从 API 21 开始可用)
  3. 利用JobIntentService

JobIntentService在后台线程上运行onHandleWork,返回后,工作将被视为完成。所以,问题是:

我怎样才能等到FileObserver完成?可以使用类似的东西while(!fileObserverFinished) Thread.sleep(100);吗?有没有更好的办法?

0 投票
4 回答
2066 浏览

java - 如何以编程方式检测检查或识别应用程序正在 Android Go 8.1 版设备上运行

我想禁用一些功能并减少 Android Go 设备上的内存消耗。我想要一个适用于所有 Android 设备的 APK。

如何检测我的应用程序是否在 Android Go 8.1 设备上运行?检查 8.1 版本是否足够,或者 8.1 版本是否也会分发到普通的 Android 设备?

0 投票
1 回答
747 浏览

android - 更新到 Android 8.0 或 8.1 后,Cordova 应用 ANR 仅适用于 Galaxy 设备的触摸事件

我的 Cordova 应用程序在 Galaxy 设备上运行良好大约两年了。出于某种原因,我们的 Galaxy 用户更新到 Android 8.0 或更高版本后,应用程序会在收到触摸事件后随机冻结。这只发生在将应用程序从后台带到前台时。我创建了一个调试报告,可以看到应用程序控制台没有显示任何错误。有人对如何修复此 ANR 或如何调试它有任何想法吗?

Play 商店的 ANR 和崩溃部分的错误说明如下:

输入调度超时(等待发送非键事件,因为触摸窗口尚未完成对 500.0 多毫秒前传递给它的某些输入事件的处理。等待队列长度:4。等待队列头年龄:21951.5 毫秒。)

这是错误报告中的 dumpsys 活动 lastanr:

这是围绕它正在等待的触摸事件的日志中的一个块。它挂起的触摸事件发生在5-03 14:09:23.836

0 投票
0 回答
329 浏览

java - 用于监控电话通话状态的 BroadcastReceiver 在 Android O API 27 中无法正常工作

我有一个广播接收器类,它可以识别电话呼叫状态,(拨出,传入,,CALL_STATE_OFFHOOKCALL_STATE_IDLE它适用于 android N 和较低版本,但对于 Android O,接收器无法识别呼叫是否已结束,没有CALL_STATE_IDLE状态, 但能正确识别传出、传入和CALL_STATE_OFFHOOK状态

清单.xml

我还发现,如果有来电,它会正确识别CALL_STATE_IDLE 状态何时触发

我错过了什么?