gpt4 book ai didi

java - 主屏幕小部件 BroadcastReceiver 可以监听手机事件吗?

转载 作者:太空宇宙 更新时间:2023-11-04 09:02:42 25 4
gpt4 key购买 nike

当“请勿打扰”发生更改时,我正在尝试更新我的主屏幕小部件。因为WidgetProvider本身就是一个BroadcastReceiver,所以我认为这会很简单。但当我打开或关闭 Dnd 时,我没有看到任何 Toast。是不是意味着WidgetProvider只能发送广播而不能接收广播?

这是我的代码:

    @Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);

String action = intent.getAction();

assert action != null;
if (action.equals(NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED)) {
System.out.println("Success!");
}
}

最佳答案

您没有显示您如何注册该广播。如果它在 list 中,则您尝试接收的广播未在 the implicit broadcast exceptions "whitelist" 上列出。 ,因此您可能无法在 Android 8.0+ 上收到它。在 Android 8.0+ 上,您能够接收该广播的唯一方法是您有一个始终运行的前台服务,而这是有成本的。

另外:

  • 我不熟悉该特定广播,因此我不确定它是否是在 DND 更改时发送的(尽管这看起来确实合理)

  • 您没有显示Toast;相反,您正在向 stdout 打印一条消息,该消息应该重定向到 Android 上的 Logcat

关于java - 主屏幕小部件 BroadcastReceiver 可以监听手机事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60590601/

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