问题标签 [android-bubbles]

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

android-11 - NotificationCompat.Builder 中的 setShortcutInfo 和 ShortcutManagerCompat 中的 pushDynamicShortcut 在 Api 30(Android 11)中不起作用

我正在使用 Android 11 中的 Bubbles,但某些功能不起作用

我不知道如何解决这个问题。

Android Studio 写道:

Unresolved reference: setShortcutInfo

我的 NotificationCompat.Builder:

还有我的 ShortcutInfoCompat.Builder:

ShortCutManagerCompat 与 pushdynamicshortcut 返回:

Unresolved reference: pushDynamicShortcut

我从这里复制/粘贴代码: Gitlab

谢谢。

0 投票
2 回答
157 浏览

android - 当应用程序不在前台时,如何删除通知而不删除其气泡?

在我的应用程序中,我正在发布聊天通知,每当用户阅读聊天时,我都想删除通知。但是,如果用户选择打开气泡,我想保留它,直到用户手动关闭它。

当用户在气泡本身或主要活动中打开相关聊天时,我可以轻松地做到这一点,方法是重新发布通知并.setSuppressNotification(true)调用其气泡元数据。效果正是我想要的;通知消失了,气泡仍然存在,并且气泡上的徽章被清除。

问题是,用户还可以在其他地方而不是在设备上阅读聊天。在这种情况下.setSuppressNotification()可能不起作用:

如果发布气泡的应用不在前台,则此标志无效。如果应用程序可见且在屏幕上,则该应用程序被视为前台,请注意前台服务不符合条件。

有没有办法在应用程序处于后台时删除通知而不删除其气泡?


PS 其他应用程序是做什么的?

  • Telegram 似乎保留了气泡,只有在您打开气泡本身时才会删除相关通知。即使您阅读主要活动中的聊天并关闭气泡,通知也会保留。我不认为这是可以接受的;
  • 另一方面,只要您在应用程序中打开相关聊天,Signal 就会消除气泡。这对于一对一聊天来说可能是合理的,因为气泡无论如何都会重新出现在新消息上,但对于群聊,我想保留气泡;
  • 人们(示例应用程序)将在删除通知时保留气泡。但是,作为不是真正的信使,它不必处理我的特定用例。
0 投票
0 回答
47 浏览

android - 启动/完成不同大小的活动时,Android会重置每个上下文的区域设置

我的设备语言是英语(语言环境是 en-US)。在我的应用中,用户可以通过resource.updateConfiguration(). 我知道这在 API 25 中已被弃用,但我想要的行为是用户可以在不重新启动的情况下以编程方式更改语言,所以我使用这种弃用的方法而不是context.createConfigurationContext(),并在更新配置后重新加载所有资源。

但是当我启动/完成一个与当前活动(MainActivity)具有不同窗口大小的活动(NewActivity)时,在清单中具有以下属性:

MainApplication 和 MainActivity 资源配置的语言环境被重置为 en-US 而不是我之前更新的内容,并且LocaleList.getDefault()也被重置。我可以看到上下文资源的配置对象与更新前相同,但它们的属性发生了变化:语言环境和 winConfig(保持应用绑定),没有收到任何 onConfigurationChange() 回调。

Android 11 中的气泡也是如此。当我启动/销毁气泡对话时,我的应用中的每个上下文的语言环境都会重置。

这是Android的正常行为吗?我没有找到任何关于此的文件。有什么方法可以知道上下文的语言环境何时发生变化?

0 投票
0 回答
60 浏览

android - 如何可靠地判断 Android 通知是否可以显示气泡?

在 Android 11 上,基本上有两层气泡设置:

  • 每个应用程序设置:

    • 所有对话都会冒泡
    • 选定的对话可以冒泡(默认)
    • 没有什么可以冒泡
  • 每次对话设置

    • 冒泡此对话
    • 不要冒泡这个对话
    • 默认(您无法直接设置此选项,因为该设置显示为切换;但是每个对话都以此选项开始,您可以通过转到通知设置 -> 气泡并按 × 来重置此选项)

它们以下列方式相互作用:

  • 如果所有对话都可以冒泡,请将此对话冒泡,除非将其设置为不冒泡(设置屏幕会显示:“所有对话都可以冒泡,除了:Foo”)
  • 如果所选对话可以冒泡,仅当此对话设置为冒泡时才会冒泡
  • 如果没有任何东西可以冒泡,请忽略每次对话的设置

检查这些设置的两种方法如下:

  • manager.areBubblesAllowed()对于“所有对话都可以冒泡”返回 true,否则返回 false
  • notificationChannel.canBubble()如果“冒泡此对话”打开,则返回 true,否则返回 false

在下表中表示出现气泡:

冒泡
这个对话
canBubble()= true
mAllowBubbles=1
不要冒泡
这个对话
canBubble()= false
mAllowBubbles=0
默认
canBubble()= false
mAllowBubbles=-1
所有对话
都可以冒泡
areBubblesAllowed()=true
* *
选定的对话
可以冒泡
areBubblesAllowed()=false
†</td>
没有什么可以冒泡
areBubblesAllowed()=false
†</td>

如果仔细观察,您会发现对于这两种方法的某些组合,您无法判断是否显示了气泡。有问题的案例用 * 和 † 标记。您可以通过查看(另请参见表头)来区分标有 * 的两种情况notificationChannel.mAllowBubbles,但此私有字段无法通过反射访问。

有没有办法解决这个问题并可靠地判断通知是否会冒泡?

0 投票
0 回答
94 浏览

android - Android 12 - Google Pixel 无法从 BubbleActivity 启动 MainActivity

你好 StackOverflow 上的朋友。在 Android 12 Beta Pixel 5 上运行时,我的应用程序出现问题。

当停留在 BubbleActivity 时,我调用了 BubbleActivity#startActivity(MainActivity.class) 但它没有按我的预期工作(最小化 BubbleActivity 并切换到应用程序)。

我附上了一些来自 BubbleActivity#startActivity 的日志

我在 Android 11 上试过,它可以工作。

那么,这里有人遇到同样的问题吗?