摺疊與展開通知欄方法
阿新 • • 發佈:2019-01-04
/** * 摺疊通知欄 * * @param context */ public static void collapsingNotification(Context context) { Object service = context.getSystemService("statusbar"); if (null == service) return; try { Class<?> clazz = Class.forName("android.app.StatusBarManager"); int sdkVersion = android.os.Build.VERSION.SDK_INT; Method collapse = null; if (sdkVersion <= 16) { collapse = clazz.getDeclaredMethod("collapse"); } else { collapse = clazz.getDeclaredMethod("collapsePanels"); } collapse.setAccessible(true); collapse.invoke(service); } catch (Exception e) { // //e.printStackTrace(); } } /** * 展開通知欄 * @param context */ public static void expandNotification(Context context) { Object service = context.getSystemService("statusbar"); if (null == service) return; try { Class<?> clazz = Class.forName("android.app.StatusBarManager"); int sdkVersion = android.os.Build.VERSION.SDK_INT; Method expand = null; if (sdkVersion <= 16) { expand = clazz.getDeclaredMethod("expand"); } else { /* * Android SDK 16之後的版本展開通知欄有兩個介面可以處理 * expandNotificationsPanel() * expandSettingsPanel() */ //expand =clazz.getMethod("expandNotificationsPanel"); expand = clazz.getDeclaredMethod("expandSettingsPanel"); } expand.setAccessible(true); expand.invoke(service); } catch (Exception e) { // //e.printStackTrace(); } }