可以动态更改状态栏(通知图标)的图标吗?

发布于 2024-10-13 01:55:56 字数 207 浏览 8 评论 0原文

我有一个android APP,有很多活动。

在我的应用程序的登录活动中,我在状态栏中启动一个通知图标,它会固定在那里,直到我的应用程序停止。好的,它有效。

但现在我还需要一件事,我需要通过我的应用程序的服务以编程方式动态更改图标。我该怎么做?

如何访问我的应用程序的通知图标,然后更改图标?

我希望通过代码示例来说明如何实现这一目标。

I have an android APP, with a lot of activities.

In the login activiti of my app, i start a notification icon in the status bar, and it is fixed there until my app stops. Ok, it works.

But now i need one more thing, i need to changue the icon dynamically, programatically, with a service of my app. How can i do it?

How can i access to the notification icon of my app and then change the icon?

I would appreciate code examples to illustrate how to achieve this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

人心善变 2024-10-20 01:55:56

只需使用新的 Notification 再次调用 NotificationManager 上的 notify() 即可,但唯一 ID 与您在第一个通知中使用的唯一 ID 相同。它将替换现有通知的图标(或者如果用户清除了第一个通知,则显示新的通知)。

Just call notify() again on NotificationManager with a new Notification but the same unique ID as you used for the first one. It will replace your icon of the existing Notification (or display the new Notification if the user cleared the first one).

黑凤梨 2024-10-20 01:55:56

您可以在通知上使用 iconLevel:
http://developer.android.com/guide/topics/ui /notifiers/notifications.html#More

在 res/drawable/myicon.xml 中创建不同级别的 xml 文件(不同的图标)
http://developer.android.com/reference/android/graphics/drawable /LevelListDrawable.html

<level-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:maxLevel="0" android:drawable="@drawable/ic_wifi_signal_1" />
  <item android:maxLevel="1" android:drawable="@drawable/ic_wifi_signal_2" />
  <item android:maxLevel="2" android:drawable="@drawable/ic_wifi_signal_3" />
</level-list>

并设置或(更新)级别:

Notification mNotification = new Notification(icon, tickerText, when);
mNotification.iconLevel = 1;
mNoticationManager.notify(NOTIFICATION_ID, mNotification);

You could use the iconLevel on the Notification:
http://developer.android.com/guide/topics/ui/notifiers/notifications.html#More

Create a xml file in res/drawable/myicon.xml with different level (different icon)
http://developer.android.com/reference/android/graphics/drawable/LevelListDrawable.html

<level-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:maxLevel="0" android:drawable="@drawable/ic_wifi_signal_1" />
  <item android:maxLevel="1" android:drawable="@drawable/ic_wifi_signal_2" />
  <item android:maxLevel="2" android:drawable="@drawable/ic_wifi_signal_3" />
</level-list>

and set or (update) the level with:

Notification mNotification = new Notification(icon, tickerText, when);
mNotification.iconLevel = 1;
mNoticationManager.notify(NOTIFICATION_ID, mNotification);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文