国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android如何獲取系統通知的開啟狀態詳解

2019-10-22 18:30:28
字體:
來源:轉載
供稿:網友

前言

大家應該都有所體會,平常在android/117172.html">android應用中,有時候會用到系統通知是否開啟的狀態,以便進行下一步操作,所以,獲取到狀態是很有必要的,之前一直苦于找不到合適的方法來解決,因為畢竟涉及到系統,不好辦,今日看到大神支招,試了一下,很好用,話不多少了,來一起看看詳細的介紹吧。

有圖有真相,首先到設置里邊關閉該應用的通知開關:

android開啟通知欄,android,系統狀態欄,系統通知

然后在應用中,點擊按鈕,獲取狀態:

android開啟通知欄,android,系統狀態欄,系統通知

這時候,回到設置里,打開通知按鈕:

android開啟通知欄,android,系統狀態欄,系統通知

再次點擊應用中的測試按鈕,可以看到,通知已經可用了:

android開啟通知欄,android,系統狀態欄,系統通知

代碼量很少,但是很精辟,就一個工具類,用到了java反射原理:

public class NotificationsUtils { private static final String CHECK_OP_NO_THROW = "checkOpNoThrow"; private static final String OP_POST_NOTIFICATION = "OP_POST_NOTIFICATION"; public static boolean isNotificationEnabled(Context context) {  AppOpsManager mAppOps = (AppOpsManager)  context.getSystemService(Context.APP_OPS_SERVICE);  ApplicationInfo appInfo = context.getApplicationInfo();  String pkg = context.getApplicationContext().getPackageName();  int uid = appInfo.uid;  Class appOpsClass = null; /* Context.APP_OPS_MANAGER */  try {   appOpsClass = Class.forName(AppOpsManager.class.getName());   Method checkOpNoThrowMethod = appOpsClass.getMethod(CHECK_OP_NO_THROW, Integer.TYPE, Integer.TYPE, String.class);   Field opPostNotificationValue = appOpsClass.getDeclaredField(OP_POST_NOTIFICATION);   int value = (int)opPostNotificationValue.get(Integer.class);   return ((int)checkOpNoThrowMethod.invoke(mAppOps,value, uid, pkg) == AppOpsManager.MODE_ALLOWED);  }  catch (ClassNotFoundException e) {   e.printStackTrace();  } catch (NoSuchMethodException e) {   e.printStackTrace();  } catch (NoSuchFieldException e) {   e.printStackTrace();  } catch (InvocationTargetException e) {   e.printStackTrace();  } catch (IllegalAccessException e) {   e.printStackTrace();  }  return false; }}

總結

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金堂县| 定日县| 宁津县| 勃利县| 漠河县| 淳化县| 芜湖县| 闸北区| 普格县| 多伦县| 伊春市| 藁城市| 灵寿县| 澄城县| 白玉县| 鄂州市| 凌源市| 马关县| 连城县| 金昌市| 思茅市| 六安市| 洛隆县| 彰武县| 耒阳市| 西青区| 闸北区| 宣化县| 富阳市| 法库县| 常山县| 北辰区| 精河县| 平安县| 孝义市| 阆中市| 房产| 宝兴县| 拜泉县| 马尔康县| 佛山市|