在状态栏通知标签上方添加按钮

6
我正在开发一款Android应用程序,大部分时间将作为服务运行。用户可以通过状态栏控制它,包括停止服务的能力。
尽管我能够创建自定义视图并在通知区域上放置按钮[见图1],但我希望能够将其放置在“Android”/服务提供商名称之上。就像音乐播放器应用程序所做的那样[见图2]。这样,即使用户清除了他们的通知,只要服务正在运行,我的应用程序的控制面板仍然处于活动状态。
请问最好的方法是什么?

Figures 1 and 2

原始图片链接


我已经想出了一种方法来通过notification.flags = notification.flags | notification.FLAG_ONGOING_EVENT添加一个ONGOING_EVENT标志。但是我仍然想知道,MediaPlayer应用程序是如何在没有持续标志的情况下解决这个问题的? - ilyakam
你说的是 Android 的默认音乐播放器吗? - Shardul
图2中的音乐播放器是我正在使用的ROM附带的;所以没错。看起来模拟器上默认的MP3播放器也在使用FLAG_ONGOING_EVENT(见:http://i.imgur.com/mGJnN.png)。 我现在可能会继续使用它... - ilyakam
你使用的ROM可能已经对通知区域进行了一些补丁,我认为在原生ROM上没有root权限的情况下不太可能进行太多自定义。 - Rob
1个回答

1

你的ROM已经隐藏了Ongoing标头;音乐播放器和硬件控制插件都使用ONGOING_EVENT标志来保持它们的位置(如果我理解有误,请有经验的开发者纠正我)。将你的应用程序加载到已经打了补丁的手机上,可以确认这一点 - 文档 特别指出例如音乐播放器(以及在后台仍然运行的其他时间)是应该使用此标志的时间。

你可能还想了解同一页面推荐使用FLAG_NO_CLEAR标志 - 如果你只希望在用户点击“清除通知”时不被清除(这对于持续运行的应用程序是推荐的)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接