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

标签 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 );

有什么方法可以知道面板是否已经打开?

最佳答案

将以下内容添加到您的 Activity:

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

此函数的文档是 here .

关于Android:如何知道通知面板是否已经以编程方式打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18372849/

相关文章:

android - Android 调用电话后按键

java - Android - 如何从 URL/JSON 获取特定数据?

service - 如何使用vbscript检查服务状态?

Android CalledFromWrongThreadException

android - 如何在 Android 中刷新 ListView - onItemClick,显示带有编辑文本的警报

android - 如何从文件管理器中获取位图?

ios - 如何分配 -> 发送 -> 接收 -> 转换 -> 从扩展到应用程序解除分配 UnsafeRawPointer?

Android 状态栏通知加载 sd 图标

api - Instagram API 获取新关注者通知

jquery - 如何检查状态图像 javascript 加载