1.一種基于回調機制的安卓組權限管理方法,包括:
步驟S1:應用程序申請某項權限授權;
步驟S2:向用戶發(fā)出授權申請?zhí)崾荆?/p>
步驟S3:用戶選擇授權或拒絕;
其特征在于,安卓所有的權限被劃分為多個組,所述步驟S2包括:
步驟S2-1:判斷當前是否有未被處理的授權申請?zhí)崾荆以撌跈嗌暾執(zhí)崾局邪信c步驟S1中所申請的權限項屬于同一組的其它權限,若判斷結果為是,則進入步驟S2-2,若判斷結果為否,則執(zhí)行步驟S2-3;
步驟S2-2:則將步驟S1中所申請的權限項作為新增條目加入步驟S2-1中所述的授權申請?zhí)崾局校?/p>
步驟S2-3:發(fā)出包含步驟S1中所申請的權限項的授權申請?zhí)崾尽?/p>
2.根據權利要求1所述的基于回調機制的安卓組權限管理方法,其特征在于,還包括:
步驟S0:同時在SystemUI和AppOpsService里注冊回調接口IOnCallback,安卓設備構造狀態(tài)欄SystemUI時,實例化一個自定義的View對象GroupPermissionsCheckPanelView,該對象代表著組權限提示框;通過IOnCallback接口將權限管理服務AppOpsService和系統(tǒng)狀態(tài)欄連接起來,兩者之間通過Binder通信。
3.根據權利要求2所述的基于回調機制的安卓組權限管理方法,其特征在于,所述步驟S2還包括步驟S2-0:AppOpsService對申請者進行合法性檢查。
4.根據權利要求2所述的基于回調機制的安卓組權限管理方法,其特征在于,所述步驟S2-3包括:
步驟S2-3-1:AppOpsService服務調用askOperationLocked方法;
步驟S2-3-2:在askOperationLocked方法中調用IOnCallback接口中的onAddRequest方法;
步驟S2-3-3:通過binder通信調用GroupPermissionCallback中的onAddRequest方法;
步驟S2-3-4:發(fā)送消息MSG_GROUP_PERMISSION_CHECK_PANEL,在該消息的處理中構造一個GroupPermissionsCheckPanelView對象并顯示出來。
5.根據權利要求4所述的基于回調機制的安卓組權限管理方法,其特征在于,GroupPermissionsCheckPanelView對象中實現OnItemClickListener和OnTouchListener接口,以響應用戶的選擇操作。
6.根據權利要求1所述的基于回調機制的安卓組權限管理方法,其特征在于,安卓所有的權限劃歸為十個組,分別是:PRIVATE_INFO組,LOCATION_INFO組,SYSTEM_INFO組,COST組,ACCOUNT_MGR組,HARDWARE_MGR組,WIRELESS_MGR組,PHONE_MGR組,STORAGE_MGE組和NETWORK組。
7.根據權利要求6所述的基于回調機制的安卓組權限管理方法,其特征在于,PRIVATE_INFO組代表操作用戶私人數據的權限組,包括短信、聯(lián)系人、日歷和電子郵件;LOCATION_INFO組代表位置操作的權限組,包括GPS定位,WLAN定位和數據網絡定位;SYSTEM_INFO組代表操作系統(tǒng)應用程序接口。
8.一種基于回調機制的安卓組權限管理系統(tǒng),包括:
應用權限管理單元,用于響應應用程序的權限授權申請,對申請者進行合法性檢查,判斷當前是否有未被處理的授權申請?zhí)崾?,以及判斷該授權申請?zhí)崾局惺欠癜信c應用程序申請授權的權限項屬于同一組的其它權限項;
授權申請?zhí)崾締卧?,用于發(fā)出包含應用程序所申請授權的權限項的授權申請?zhí)崾尽?/p>
9.根據權利要求8所述的基于回調機制的安卓組權限管理系統(tǒng),其特征在于,所述應用權限管理單元包括權限庫,權限庫中分組存儲所有安卓權限,在權限庫中,安卓所有的權限劃歸為十個組,分別是:PRIVATE_INFO組,LOCATION_INFO組,SYSTEM_INFO組,COST組,ACCOUNT_MGR組,HARDWARE_MGR組,WIRELESS_MGR組,PHONE_MGR組,STORAGE_MGE組和NETWORK組,其中PRIVATE_INFO組代表操作用戶私人數據的權限組,包括短信、聯(lián)系人、日歷和電子郵件;LOCATION_INFO組代表位置操作的權限組,包括GPS定位,WLAN定位和數據網絡定位;SYSTEM_INFO組代表操作系統(tǒng)應用程序接口。
10.根據權利要求8所述的基于回調機制的安卓組權限管理系統(tǒng),其特征在于,所述應用權限管理單元包括AppOpsService服務,AppOpsService里注冊有回調接口IOnCallback;所述授權申請?zhí)崾締卧⊿ystemUI類,SystemUI類中注冊有回調接口IOnCallback,AppOpsService和SystemUI通過IOnCallback接口連接,兩者之間通過Binder通信;
SystemUI構造狀態(tài)欄時,實例化一個自定義的View對象GroupPermissionsCheckPanelView,該對象代表著組權限提示框,當應用程序申請權限授權時,AppOpsService對申請者進行合法性檢查,檢查通過后對本次申請權限歸類,最后會調用askOperationLocked方法,在askOperationLocked方法中調用IOnCallback接口中的onAddRequest方法,進而通過binder通信調用GroupPermissionCallback中的onAddRequest方法,發(fā)送消息MSG_GROUP_PERMISSION_CHECK_PANEL,在該消息的處理中構造一個GroupPermissionsCheckPanelView對象并顯示。