Android 打开通知中心(StatusBar)

简介: Android 打开通知中心(StatusBar)

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


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

1、在AndroidManifes.xml文件里添加权限:
 
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>


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开发
Android获取设备状态栏status bar高度的正确姿势
Android获取设备状态栏高度的正确姿势 正确代码方式: int height = 0; int resourceId = getApplicationContext().
5684 0
|
Android开发 网络虚拟化
Android 13.0 StatusBar顶部图标加载流程
Android 13.0 StatusBar顶部图标加载流程
|
Java Android开发
Android 10.0 StatusBar—下拉菜单快捷方式
Android 10.0 StatusBar—下拉菜单快捷方式
|
存储 Android开发 容器
Android10.0 StatusBar之状态栏
Android10.0 StatusBar之状态栏
Android10.0 StatusBar之状态栏
|
Java Android开发 索引