1. 程式人生 > >Android判斷手機中的應用是否具有某些許可權(例如小米手機中是否具有懸浮窗許可權)

Android判斷手機中的應用是否具有某些許可權(例如小米手機中是否具有懸浮窗許可權)


op 的值是 0 ~ 47,其中0代表粗略定位許可權,1代表精確定位許可權,24代表懸浮窗許可權。(具體可以看看android原始碼在android.app下就有個AppOpsManager類)

uid 當前應用用到的uid ,可通過 Binder.getCallingUid()獲得。
packageName 應用程式的包名,通過getPackageName獲得。

通過上面的知識,寫一函式 用來判斷 程式是否具有某些許可權的函式
    private static int checkOp(Context context, int op){
        final int version = Build.VERSION.SDK_INT;
        if (version >= 19){
            Object object = context.getSystemService("appops");
            Class c = object.getClass();
            try {          
                Class[] cArg = new Class[3];
                cArg[0] = int.class;
                cArg[1] = int.class;
                cArg[2] = String.class;
                Method lMethod = c.getDeclaredMethod("checkOp", cArg);
                return (Integer) lMethod.invoke(object, op, Binder.getCallingUid(), context.getPackageName());
            } catch(NoSuchMethodException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            }        
        }
        return -1;
    }

呼叫上面的函式,返回 0 就代表有許可權,1代表沒有許可權,-1函數出錯啦

相關推薦

Android判斷手機應用是否具有某些許可權例如小米手機是否具有懸浮許可權

op 的值是 0 ~ 47,其中0代表粗略定位許可權,1代表精確定位許可權,24代表懸浮窗許可權。(具體可以看看android原始碼在android.app下就有個AppOpsManager類) uid 當前應用用到的uid ,可通過 Binder.getCallin

Android懸浮適配全機型,包含8.0,小米魅族華為懸浮許可權適配demo看這一篇就夠了

相容8.0,小米,魅族,華為等難適配機型都可完美適配。 懸浮窗插入介面 在實現懸浮窗之前,我們需要知道通過什麼介面,能夠將一個控制元件放入到螢幕中去。 Android的介面繪製,都是通過WindowMananger的服務來實現的。那麼,既然要實現一個能夠在自身

Android 7.0 移除設定某些輔助功能、流量使用情況、位置資訊(MTK)

--- a/packages/apps/Settings/src/com/android/settings/SettingsActivity.java +++ b/packages/apps/Settings/src/com/android/settings/SettingsActivity.jav

不用root也可以修改智慧手機應用文字大小,順便也可以修改手機解析度

第一步:在要修改的手機上安裝測評軟體看手機引數裡面的顯示引數裡面的螢幕密度(dpi)和解析度,記錄下來並備份(用於還原時需要的引數)。第二步:在網路上獲取並安裝jdk。第三步:從網路上獲得Android-Sdk(我的獲取方式是下載Android Studio,安裝開啟Andr

Android原始碼解析之應用程式資源管理器Asset Manager的建立過程分析

轉載自:https://blog.csdn.net/luoshengyang/article/details/8791064 我們分析了Android應用程式資源的編譯和打包過程,最終得到的應用程式資源就與應用程式程式碼一起打包在一個APK檔案中。Android應用程式在執行的過程中,是通過一個

android 應用內通知,仿通知欄通知效果,通知Toast,懸浮

    開發應用,有時候需要在應用內通知提示,如果涉及內部通知提示過多,就需要考慮展示問題,而且還有需要考慮,內部通知提示,不能影響使用者的操作行為,以及切換介面的時候(Activity切換)通知提示還得存在一定時間後消失或者不消失,結合這些問題,自己嘗試去搞搞

推薦手機H5應用快速開發 UI庫Framework7、SUI(淘寶)、MUI、WeUI(微信)、GMU(百度、Frozen UIQQ

推薦手機H5應用快速開發 UI庫 Framework7(阿里巴巴)、SUI(淘寶)、MUI( dcloud-HBuilder)、WeUI(微信)、Frozen UI(騰訊手機QQ)、GMU(百度)、Amaze UI(雲適配) 等… Framework

Android 6.0 許可權使用 以及小米手機許可權的適配

Android Runtime Permission 1,執行時許可權說明: Android執行時許可權,是Android6.0新加的功能點。當我們想要把我們的app適配到6.0 以及以上的時候,我們需要對執行時許可權做些操作,否則很容易會造成程式崩潰

Android assets資料夾之位置放置和作用 AS 和eclipse

Android 的assets資料夾的放置位置,Eclipse建立專案時就生成了的,Android Studio則不太一樣,AS可以包含幾種方式, 1:可以在build.gradle檔案下配置,加如下程式碼  " sourceSets { main { assets.srcDirs = ['src/ass

二叉樹——判斷兩棵二叉樹是否相等先序和序遍歷序列建立二叉樹

需求: 利用先序遍歷序列和中序遍歷序列來建立兩棵二叉樹,並判斷是否相等 需要先將建立二叉樹 建立的方法是將該二叉樹的先序的序列和中序的序列分別儲存到Pre陣列和Mid陣列中,它們的儲存順序如下: 判斷兩棵樹是否相等 採用遞迴的方法,用先序,中序

javaweb重定向和請求轉發response.sendRedirect()和request.getRequestDispatcher(rul).forward(request,response))的區別

客戶端 不起作用 這也 方法 cnblogs rect() 獲取url rec alt 先來兩張圖,方便理解: 可以看出,重定向時,是服務器向遊覽器重新發送了一個response命令,讓遊覽器再次向url2發送請求,以獲取url2的資源 而請求轉發時,類似於是服務器自己

免費的dns服務器更換dns服務器有時可以解決某些網站如愛奇藝訪問不了的問題

dns服務器 快的 item 電話 google text 直接 自己的 -m 首先百度提供的dns就是非常好用的dns,小編就把百度的dns作為首選180.76.76.76。 其次是阿裏提供的dns223.5.5.5,響應速度非常的快,而且沒有廣告劫持。

返回一個二維整數陣列最大子陣列的和小組成員:侯誠超,滕達

小組成員:侯誠超,滕達   設計思想 1.設計視窗:使用了textbox,button,Label視窗控制元件 2.程式編輯:(1).先編寫txt匯入程式,確保txt檔案能匯入到文字框中              

免費的dns伺服器更換dns伺服器有時可以解決某些網站如愛奇藝訪問不了的問題

首先百度提供的dns就是非常好用的dns,小編就把百度的dns作為首選180.76.76.76。   其次是阿里提供的dns223.5.5.5,響應速度非常的快,而且沒有廣告劫持。  

《OpenCV3程式設計入門》——4.2 OpenCV常用資料結構和函式Point、Scalar、Size、Rect、cvtColor

目錄 1、點的表示:Point類 2、顏色的表示:Scalar類 3、尺寸的表示:Size類 4、矩形的表示:Rect類 5、顏色空間轉換:cvtColor()函式 1、點的表示:Point類 Point類資料結構表示了二維座標系下的點,即由影象座標x和y指定的2D點

機器學習演算法一覽,應用建議與解決思路 實用!!!劃重點!!!

1.引言 提起筆來寫這篇部落格,突然有點愧疚和尷尬。愧疚的是,工作雜事多,加之懶癌嚴重,導致這個系列一直沒有更新,向關注該系列的同學們道個歉。尷尬的是,按理說,機器學習介紹與演算法一覽應該放在最前面寫,詳細的應用建議應該在講完機器學習常用演算法之後寫,突然莫名奇妙在中間

反轉字元的母音字母c語言leetcode簡單篇三百四十五題

編寫一個函式,以字串作為輸入,反轉該字串中的母音字母。 示例 1: 輸入: “hello” 輸出: “holle” 示例 2: 輸入: “leetcode” 輸出: “leotcede” 使用雙指標遍歷一遍即可 bool checkchar

深度學習實戰1--手機端跑YOLO目標檢測網路從DarkNet到Caffe再到NCNN完整打通

深度學習實戰(1)--手機端跑YOLO目標檢測網路(從DarkNet到Caffe再到NCNN完整打通)   這篇算是關鍵技術貼,YOLO是什麼、DarkNet是什麼、Caffe是什麼、NCNN又是什麼…等等這一系列科普這裡就完全不說了,牽扯實在太多,通過其他帖子有一定的積累後,看這

Android M及以上版本系統 懸浮許可權 的解決方案

Android M及以上版本系統 懸浮窗許可權 的解決方案   Android的視窗體系中,WindowManager佔有非常重要的地位,平時我們使用懸浮窗會遇到一些許可權的問題。 當 Android工程在targetSdkVersion 23 編譯,Android6.0及其以上版