问题标签 [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.
android - 在 android 8 上使用 android 数据绑定时应用程序崩溃
该代码适用于 pre-oreo 设备,但 Crashlytics 称它在 android 8 设备上崩溃
堆栈跟踪
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“int android.view.ViewGroup.getChildCount()”
android - Android Oreo 不为通知播放自定义声音
我正在尝试为 API > 26 的通知添加自定义声音。下面是代码
这里的问题是它播放设备的默认钢琴声音,而不是播放资产中的哔哔声。我不允许使用铃声管理器,但根据常识统计,通知声音应该是指定的而不是默认的。
它适用于 API <= 26
android - Android 8.1 连接到调用 connectGatt 的 BLE 外围设备。回调总是说断开连接。从不连接
我是 Android 编程新手,正在尝试编写一个与 BLE 外围设备一起使用的应用程序。我有一个我编写的 iOS 应用程序,它做同样的事情,我的 iOS 应用程序已经按照我想要的方式运行。
我编写了一个扫描外围设备列表的活动。到目前为止,这似乎工作正常。
然后我选择一个外围设备并将 BluetoothDevice 对象传递给一个“设备详细信息”活动,该活动应该连接到外围设备,然后用它做一些事情。
在我的设备详细信息活动中,我获取了对连接按钮的引用,然后添加了一个点击侦听器。点击监听器创建一个 MyBluetoothGattCallback 实例,然后将其用作调用 connectGatt() 的参数。这个调用确实返回了看起来像一个有效的 BluetoothGatt 对象。调用了 MyBluetoothGattCallback,但只调用了一次,状态为 133,状态为 0。这似乎是 BluetoothProfile.STATE_DISCONNECTED。回调不再被调用。每次我按下连接按钮时都会发生这种情况。
我已经确保只有一个扫描操作发生,并且它从应用程序的主要活动中停止。因此,此时没有进行扫描。
我的问题是我应该做些什么不同的事情才能使连接正常工作?
这是我的 BluetoothGattCallback 子类:
android - 电池电量不足时,Android Oreo 中未收到 FCM 通知
我目前正在 FCM 消息接收事件上启动我的视频通话应用程序。它工作正常。但是在奥利奥中,当电池电量很低时,我没有收到任何 FCM 通知。但即使在那种情况下,Whatsapp 也能正常工作
我正在发送以下 JSON:
android - 在 Oreo 中打开“请勿打扰”偏好设置
我在从我的应用程序中打开系统DND 首选项时遇到问题,以便用户可以创建或编辑自动时间规则。
现在的情况
我们的应用程序已经有一个类似的功能,它会在特定时间段(例如晚上 10 点至早上 8 点之间)禁用应用程序通知 LED、声音和振动,并在整个应用程序范围内应用。从 Android Oreo 开始,由于通知通道,我们的功能不再起作用。据我了解,唯一的解决方案是在系统首选项中创建自动时间规则,然后将其应用于系统范围。
我想做的事?
只是为了将奥利奥用户从我的应用程序重定向到系统首选项,即。请勿打扰首选项以添加或编辑时间规则。
问题
没有具体Intent
打开“请勿打扰”偏好设置。我能找到的最接近的是Settings.ACTION_ZEN_MODE_PRIORITY_SETTINGS
它引导我到这个 Preference screen。我还找到了我完全需要的操作,但正如您所看到的,它被注释隐藏了。
这是否意味着无法打开此首选项屏幕,我应该使用另一种方法?
android - 在 JobIntentService 中运行 FileObserver
我的应用程序FileObserver
在服务内部运行(该服务在创建临时文件后 10 分钟运行,它会观察该文件 60 秒,以便在不使用时将其删除)。
由于 Android 8 的限制,我无法从后台启动服务。AFAIK 的替代品是:
- 运行前台服务(但我不想显示通知图标)
- 使用
JobService
(但仅从 API 21 开始可用) - 利用
JobIntentService
JobIntentService
在后台线程上运行onHandleWork
,返回后,工作将被视为完成。所以,问题是:
我怎样才能等到FileObserver
完成?可以使用类似的东西while(!fileObserverFinished) Thread.sleep(100);
吗?有没有更好的办法?
java - 如何以编程方式检测检查或识别应用程序正在 Android Go 8.1 版设备上运行
我想禁用一些功能并减少 Android Go 设备上的内存消耗。我想要一个适用于所有 Android 设备的 APK。
如何检测我的应用程序是否在 Android Go 8.1 设备上运行?检查 8.1 版本是否足够,或者 8.1 版本是否也会分发到普通的 Android 设备?
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
:
java - 用于监控电话通话状态的 BroadcastReceiver 在 Android O API 27 中无法正常工作
我有一个广播接收器类,它可以识别电话呼叫状态,(拨出,传入,,CALL_STATE_OFFHOOK
)CALL_STATE_IDLE
它适用于 android N 和较低版本,但对于 Android O,接收器无法识别呼叫是否已结束,没有CALL_STATE_IDLE
状态, 但能正确识别传出、传入和CALL_STATE_OFFHOOK
状态
清单.xml
我还发现,如果有来电,它会正确识别CALL_STATE_IDLE
状态何时触发
我错过了什么?