Android收起通知栏

时间:2022-01-03 19:34:46

点击notification时,如果它是发送广播的点击事件,通知栏就不会自动收起。我们需要通过代码手动的让通知栏收起。下面贴一下代码:


/**
*
* 收起通知栏
* @param context
*/
public static void collapseStatusBar(Context context) {
try {
Object statusBarManager = context.getSystemService("statusbar");
Method collapse;

if (Build.VERSION.SDK_INT <= 16) {
collapse = statusBarManager.getClass().getMethod("collapse");
} else {
collapse = statusBarManager.getClass().getMethod("collapsePanels");
}
collapse.invoke(statusBarManager);
} catch (Exception localException) {
localException.printStackTrace();
}

需要加上权限:

<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />

如果点击notification后希望notification消失可以使用以下代码:

//清除通知栏中的notification
NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.cancel(66);//取消通知。66表示想要清除的notification的id。这个是在显示notification时设置的,需要保持一致