Android 打开通知中心(StatusBar)

最近接到一个需求,需要在应用内打开通知中心(StatsuBar)。查了一下资料发现需要用到StatsuBarManagr来操作StatsuBar。但是在使用过程中发现,StatsuBarManagr是非公开的API,我们无法直接获取,所以只有借助反射来实现打开StatusBar。

废话不多说,直接上代码:

1、在AndroidManifes.xml文件里添加权限:

expandNotificationsPanel打开通知栏       expandSettingsPanel 打开设置栏

collapseNotificationsPanel 收起通知栏

 public static void openStatusBar(Context context) {
        try {
            Object sbsService = context.getSystemService("statusbar");
            Class statusBarManager = Class.forName("android.app.StatusBarManager");
            Method expandMethod;
            if (Build.VERSION.SDK_INT >= 17) {
                expandMethod = statusBarManager.getMethod("expandNotificationsPanel");
            } else {
                expandMethod = statusBarManager.getMethod("expand");
            }
            expandMethod.invoke(sbsService);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
    }

你可能感兴趣的:(android)