gpt4 book ai didi

Android:OTG 存储通知与 radio c 冲突

转载 作者:行者123 更新时间:2023-11-30 02:40:50 27 4
gpt4 key购买 nike

我正在开发一项正在进行的服务,该服务监听与 radio 的 USB 接口(interface)连接。当找到这样的连接时,此服务会更新其通知以反射(reflect)所述连接;当连接丢失时(例如通过拔出事件或 radio 被关闭),此服务将更新其通知以反射(reflect)所述断开连接。该服务还会在检测到更改时写入数据库,以便其他应用程序可以利用该信息。

此服务可在未配置为 OTG 存储的 USB 端口上正常工作。但是,当使用启用了 OTG 存储的 USB 端口时,我遇到了一些问题,即服务通知没有正确更新,即使数据库被正确写入也是如此。我相信这是因为我正在连接的 radio 也用作 OTG 存储设备,因此一旦与所述 radio 建立连接,就会发生 OTG 存储通知,我可能会丢失我的通知上下文。此外,如果在 OTG 存储能够正确安装之前断开与 radio 的连接,服务通知和数据库会正确更新。

例如,如果我当前连接到 radio 并且 OTG 存储已安装,如果我断开所述 radio ,OTG 存储将卸载但我的服务通知不会反射(reflect)该更改,即使我可以在数据库中看到它更改正确发生。

我在 Android 4.0.4 上运行这个,所以我认为这个问题仅仅是因为我的代码被弃用了:

import android.app.Notification;
import android.app.Notification.Builder;
import android.app.NotificationManager;
import android.app.PendingIntent;

Notification notification = new Notification(icon, contentTitle, time);
notification.setLatestEventInfo(this, contentTitle, contentText,
contentIntent);

notification.flags = Notification.FLAG_FOREGROUND_SERVICE
| Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT;

notificationManager.notify(NOTIFICATION_ID, notification);

但我在更新到 Notification.Builder 时仍然遇到问题:

Notification.Builder notiBuilder = 
new Notification.Builder(this);

notiBuilder.setSmallIcon(icon);
notiBuilder.setContentTitle(contentTitle);
notiBuilder.setContentText(contentText);
notiBuilder.setContentIntent(contentIntent);
notiBuilder.setPriority(2);

notificationManager.notify(NOTIFICATION_ID, notiBuilder.getNotification());

所以我对问题可能是什么感到有点困惑。

如果您有任何想法或建议,或者我应该包含任何代码以提供更多帮助,请告诉我。

最佳答案

更新:问题不是实际通知的问题,而是 OTG 存储和我的服务监听相同拔出事件之间的竞争条件。为了解决这个问题,我让我的服务监听 OTG 存储状态的变化。这似乎已经解决了这个问题,尽管公认的是一种解决方法而不是任何方法。

关于Android:OTG 存储通知与 radio c 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25769847/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com