我正在开发具有支持通知系统的应用程序 2.3.3及以上版本的操作系统版本。在Android OS少于3我们有 设置内容意图的选项。整个通知区域是 单击即可。
但是对于使用Remote-view的OS 3.0及更高版本,我们有3种不同 按钮以执行相应的操作。通过打开通知 抽屉我们可以点击任何按钮来执行操作。
默认情况下,按钮单击后,通知抽屉不会运行 up(或Hide)。有没有办法隐藏通知抽屉 编程盟友。请帮帮我。
答案 0 :(得分:0)
您使用的是
NotificationManager mNM = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
mNM.cancelAll();
答案 1 :(得分:0)
我使用以下代码修复了该问题。 但不建议使用此功能。 这可以通过反射来实现。 将来这可能会被弃用。
void collapseStatusBar(Context context){ //访问系统状态栏。这可能不是公开的 //将来弃用 对象服务= context.getSystemService(“statusbar”);
Class<?> statusbarManager = null;
try {
statusbarManager = Class.forName("android.app.StatusBarManager");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.getMessage();
}
// Till 4.1 (JB), StatusBarManager collapse method did the job but from
// 4.2 it's been
// changed to collpasePanels, so perform the job accordingly
if (Build.VERSION.SDK_INT <= 16) {
Method collapseMethod = null;
try {
collapseMethod = statusbarManager.getMethod("collapse");
} catch (NoSuchMethodException e) {
e.getMessage();
}
collapseMethod.setAccessible(true);
try {
collapseMethod.invoke(service);
} catch (IllegalArgumentException e) {
e.getMessage();
} catch (IllegalAccessException e) {
e.getMessage();
} catch (InvocationTargetException e) {
e.getMessage();
}
} else {
Method collapsePanelsMethod = null;
try {
collapsePanelsMethod = statusbarManager
.getMethod("collapsePanels");
} catch (NoSuchMethodException e1) {
e1.getMessage();
}
collapsePanelsMethod.setAccessible(true);
try {
collapsePanelsMethod.invoke(service);
} catch (IllegalArgumentException e) {
e.getMessage();
} catch (IllegalAccessException e) {
e.getMessage();
} catch (InvocationTargetException e) {
e.getMessage();
}
}
}