Android:如何知道通知面板是否已经以编程方式打开?

时间:2013-08-22 06:10:11

标签: android notifications status

我想知道是否有任何方法可以知道通知栏是否已打开。我有以下代码从程序中打开通知栏:

Object sbservice = getSystemService( "statusbar" );
Class<?> statusbarManager = Class.forName( "android.app.StatusBarManager" );
Method showsb;
if (Build.VERSION.SDK_INT >= 17) {
    showsb = statusbarManager.getMethod("expandNotificationsPanel");
}
else {
    showsb = statusbarManager.getMethod("expand");
}
showsb.invoke( sbservice );

有没有办法知道面板是否已经打开?

1 个答案:

答案 0 :(得分:2)

将以下内容添加到Activity

@Override public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    // if hasFocus is false, notification panel is open.
}

此功能的Doco是here