上次的获取权限信息的Demo略显繁琐,优化了一下,使用系统接口PermissionInfo获取常见的权限描述,如果是对系统不可知的权限,我们在自定义。另外自定义的权限信息函数也从if else语句换成了swithc case语句,虽然还是一大堆,但是看起来结构更清晰一些:
package com.zms.getpermission; import android.app.ListActivity; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PermissionGroupInfo; import android.content.pm.PermissionInfo; import android.content.pm.ResolveInfo; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** * Created by AlexZhou on 2015/1/27. * 8:48 */ public class Main extends ListActivity { HashMap<String, String[]> hashMap = new HashMap<String, String[]>(); List<String> dataAppList = new ArrayList<String>(); List<String> systemAppList = new ArrayList<String>(); protected void onCreate(android.os.Bundle savedInstanceState) { super.onCreate(savedInstanceState); PackageManager pm = getPackageManager(); Intent query = new Intent(Intent.ACTION_MAIN); query.addCategory("android.intent.category.LAUNCHER"); List<ResolveInfo> resolves = pm.queryIntentActivities(query, PackageManager.GET_ACTIVITIES); dataAppList.add(""); // take up the position, refresh it after getting dataApp size for (int i = 0; i < resolves.size(); i++) { ResolveInfo resolveInfo = resolves.get(i); String packageName = resolveInfo.loadLabel(pm).toString(); String[] permission; try { // get permission list permission = pm.getPackageInfo(resolveInfo.activityInfo.packageName, PackageManager.GET_PERMISSIONS).requestedPermissions; // app is system app ? if (isSystemApp(resolveInfo)) { systemAppList.add(packageName); } else { dataAppList.add(packageName); } hashMap.put(packageName, permission); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } dataAppList.set(0, "===== Data Apps(" + dataAppList.size() + ") ====="); dataAppList.add(""); dataAppList.add("===== System Apps(" + systemAppList.size() + ") ====="); dataAppList.addAll(systemAppList); getListView().setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dataAppList)); getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { String[] permission = hashMap.get(dataAppList.get(position)); StringBuilder stringBuilder = new StringBuilder(); try { for (int i = 0; i < permission.length; i++) { stringBuilder.append(getPermissionDetailSys(permission[i]) + "\n"); } Intent intent = new Intent(Main.this, ShowPermission.class); intent.putExtra("strPermission", dataAppList.get(position) + " has " + permission.length + " Permission(s):\n\n" + stringBuilder); startActivity(intent); } catch (Exception e) { // ToDo:Handle Exception } } }); } private boolean isSystemApp(ResolveInfo resolveInfo) { if ((resolveInfo.activityInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) { return false; } else { return true; } } /** * use system func to get normal permission info * * @param permissionName * @return string */ public String getPermissionDetailSys(String permissionName) { String strPermissionInfo = ""; try { PackageManager pm = Main.this.getPackageManager(); // get permission info by name PermissionInfo permissionInfo = pm.getPermissionInfo(permissionName, 0); // get permission group PermissionGroupInfo permissionGroupInfo = pm.getPermissionGroupInfo( permissionInfo.group, 0); strPermissionInfo = "[" + permissionGroupInfo.loadLabel(pm).toString() + "] " + permissionInfo.loadLabel(pm).toString() + ":\n" + permissionInfo.loadDescription(pm).toString() + "\n"; } catch (PackageManager.NameNotFoundException e) { // use our func if permission info not matched return getPermissionDetail(permissionName) + "\n"; } return strPermissionInfo; } /** * if getPermissionDetailSys() is execute catch part, this func will run * * @param strPermission * @return description of permission, or permission name if not matched. */ public String getPermissionDetail(String strPermission) { switch (strPermission) { /***** A *****/ case "android.permission.ACCESS_ALL_DOWNLOADS": return getResources().getString(R.string.ACCESS_ALL_DOWNLOADS); case "android.permission.ACCESS_CACHE_FILESYSTEM": return getResources().getString(R.string.ACCESS_CACHE_FILESYSTEM); case "android.permission.ACCESS_CHECKIN_PROPERTIES": return getResources().getString(R.string.ACCESS_CHECKIN_PROPERTIES); case "android.permission.ACCESS_COARSE_LOCATION": return getResources().getString(R.string.ACCESS_COARSE_LOCATION); case "android.permission.ACCESS_COARSE_UPDATES": return getResources().getString(R.string.ACCESS_COARSE_UPDATES); case "android.permission.ACCESS_DOWNLOAD_MANAGER": return getResources().getString(R.string.ACCESS_DOWNLOAD_MANAGER); case "android.permission.ACCESS_DRM": return getResources().getString(R.string.ACCESS_DRM); case "android.permission.ACCESS_FINE_LOCATION": return getResources().getString(R.string.ACCESS_FINE_LOCATION); case "android.permission.ACCESS_GPS": return getResources().getString(R.string.ACCESS_GPS); case "android.permission.ACCESS_LOCATION": return getResources().getString(R.string.ACCESS_LOCATION); case "android.permission.ACCESS_LOCATION_EXTRA_COMMANDS": return getResources().getString(R.string.ACCESS_LOCATION_EXTRA_COMMANDS); case "android.permission.ACCESS_MOCK_LOCATION": return getResources().getString(R.string.ACCESS_MOCK_LOCATION); case "android.permission.ACCESS_NETWORK_STATE": return getResources().getString(R.string.ACCESS_NETWORK_STATE); case "android.permission.ACCESS_SURFACE_FLINGER": return getResources().getString(R.string.ACCESS_SURFACE_FLINGER); case "android.permission.ACCESS_SUPERUSER": return getResources().getString(R.string.ACCESS_SUPERUSER); case "android.permission.ACCESS_WIFI_STATE": return getResources().getString(R.string.ACCESS_WIFI_STATE); case "android.permission.ACCOUNT_MANAGER": return getResources().getString(R.string.ACCOUNT_MANAGER); case "com.android.settings.permission.ALLSHARE_CAST_SERVICE": return getResources().getString(R.string.ALLSHARE_CAST_SERVICE); case "android.permission.AUTHENTICATE_ACCOUNTS": return getResources().getString(R.string.AUTHENTICATE_ACCOUNTS); /***** B *****/ case "android.permission.BATTERY_STATS": return getResources().getString(R.string.BATTERY_STATS); case "com.android.vending.BILLING": return getResources().getString(R.string.BILLING); case "android.permission.BIND_APPWIDGET": return getResources().getString(R.string.BIND_APPWIGET); case "android.permission.BIND_DEVICE_ADMIN": return getResources().getString(R.string.BIND_DEVICE_ADMIN); case "android.permission.BIND_INPUT_METHOD": return getResources().getString(R.string.BIND_INPUT_METHOD); case "android.permission.BIND_WALLPAPER": return getResources().getString(R.string.BIND_WALLPAPER); case "android.permission.BLUETOOTH": return getResources().getString(R.string.BLUETOOTH); case "android.permission.BLUETOOTH_ADMIN": return getResources().getString(R.string.BULETOOTH_ADMIN); case "android.permission.BRICK ": return getResources().getString(R.string.BRICK); case "android.permission.BROADCAST_PACKAGE_REMOVED": return getResources().getString(R.string.BROADCAST_PACKAGE_REMOVED); case "android.permission.BROADCAST_SMS": return getResources().getString(R.string.BROADCAST_SMS); case "android.permission.BROADCAST_STICKY": return getResources().getString(R.string.BROADCAST_STICKY); /***** C *****/ case "android.permission.CALL_PHONE": return getResources().getString(R.string.CALL_PHONE); case "android.permission.CALL_PRIVILEGED": return getResources().getString(R.string.CALL_PRIVILEGED); case "android.permission.CAMERA": return getResources().getString(R.string.CAMERA); case "android.permission.CHANGE_COMPONENT_ENABLED_STATE": return getResources().getString(R.string.CHANGE_COMPONENT_ENABLED_STATE); case "android.permission.CHANGE_CONFIGURATION": case "Android.permission.CHANGE_CONFIGURATION": return getResources().getString(R.string.CHANGE_CONFIGURATION); case "android.permission.CHANGE_NETWORK_STATE": return getResources().getString(R.string.CHANGE_NETWORK_STATE); case "android.permission.CHANGE_WIFI_MULTICAST_STATE": return getResources().getString(R.string.CHANGE_WIFIMULTICAST_STATE); case "android.permission.CHANGE_WIFI_STATE": return getResources().getString(R.string.CHANGE_WIFI_STATE); case "com.android.vending.CHECK_LICENSE": return getResources().getString(R.string.CHECK_LICENSE); case "android.permission.CLEAR_APP_CACHE": return getResources().getString(R.string.CLEAR_APP_CACHE); case "android.permission.CLEAR_APP_USER_DATA": return getResources().getString(R.string.CLEAR_APP_USER_DATA); case "android.permission.CONTROL_LOCATION_UPDATES": return getResources().getString(R.string.CONTROL_LOCATION_UPDATES); case "com.android.launcher.permission.CREATE_SHORTCUT": return getResources().getString(R.string.CREATE_SHORTCUT); /***** D *****/ case "android.permission.DELETE_CACHE_FILES": return getResources().getString(R.string.DELETE_CACHE_FILES); case "android.permission.DELETE_PACKAGES": return getResources().getString(R.string.DLEETE_PACKAGES); case "android.permission.DEVICE_POWER": return getResources().getString(R.string.DEVICE_POWER); case "android.permission.DIAGNOSTIC": return getResources().getString(R.string.DIAGNOSTIC); case "android.permission.DISABLE_KEYGUARD": return getResources().getString(R.string.DISABLE_KEYGUARD); case "android.permission.DUMP": return getResources().getString(R.string.DUMP); case "android.permission.DOWNLOAD_WITHOUT_NOTIFICATION": return getResources().getString(R.string.DOWNLOAD_WITHOUT_NOTIFICATION); /***** E *****/ case "android.permission.EXPAND_STATUS_BAR": return getResources().getString(R.string.EXPAND_STATUS_BAR); /***** F *****/ case "android.permission.FACTORY_TEST": return getResources().getString(R.string.FACTORY_TEST); case "android.permission.FLASHLIGHT": return getResources().getString(R.string.FLSHLIGHT); case "android.permission.FORCE_BACK": return getResources().getString(R.string.FORCE_BACK); /***** G *****/ case "android.permission.GET_ACCOUNTS": return getResources().getString(R.string.GET_ACCOUNTS); case "android.permission.GET_PACKAGE_SIZE": return getResources().getString(R.string.GET_PACKAGE_SIZE); case "android.permission.GET_TASKS": return getResources().getString(R.string.GET_TASKS); case "android.permission.GLOBAL_SEARCH": return getResources().getString(R.string.GLBOAL_SEARCH); /***** H *****/ case "android.permission.HARDWARE_TEST ": return getResources().getString(R.string.HARDWARE_TEST); /***** I *****/ case "android.permission.INJECT_EVENTS": return getResources().getString(R.string.INJECT_EVENTS); case "android.permission.INSTALL_PERMISSION": return getResources().getString(R.string.INSTALL_PERMISSION); case "android.permission.INSTALL_LOCATION_PROVIDER": return getResources().getString(R.string.INSTALL_LOCATION_PROVIDER); case "android.permission.INSTALL_PACKAGES": return getResources().getString(R.string.INSTALL_PCAKAGES); case "com.android.launcher.permission.INSTALL_SHORTCUT": return getResources().getString(R.string.LAUNCHER_INSTALL_SHORTCUT); case "android.permission.INTERACT_ACROSS_USERS": return getResources().getString(R.string.INTERACT_ACROSS_USERS); case "android.permission.INTERACT_ACROSS_USERS_FULL": return getResources().getString(R.string.INTERACT_ACROSS_USERS_FULL); case "android.permission.INTERNAL_SYSTEM_WINDOW": return getResources().getString(R.string.INTERNAL_SYSTEM_WINDOW); case "android.permission.INTERNET": return getResources().getString(R.string.INTERNET); /***** K *****/ case "android.permission.KILL_BACKGROUND_PROCESSES": return getResources().getString(R.string.KILL_BACKGROUND_PROCESSES); /***** M *****/ case "android.permission.MANAGE_ACCOUNTS": return getResources().getString(R.string.MANAGE_ACCOUNTS); case "android.permission.MANAGE_APP_TOKENS": return getResources().getString(R.string.MANAGE_APP_TOKENS); case "android.permission.MANAGE_DOCUMENTS": return getResources().getString(R.string.MANAGE_DOCUMENTS); case "android.permission.MANAGE_NETWORK_POLICY": return getResources().getString(R.string.MANAGE_NETWORK_POLICY); case "android.permission.MASTER_CLEAR": return getResources().getString(R.string.MASTER_CLEAR); case "android.permission.MODIFY_AUDIO_SETTINGS": return getResources().getString(R.string.MODIFY_AUDIO_SETTINGS); case "android.permission.MODIFY_PHONE_STATE": return getResources().getString(R.string.MODIFY_PHONE_STATE); case "android.permission.MOUNT_FORMAT_FILESYSTEMS": return getResources().getString(R.string.MOUNT_FORMAT_FILESYSTEMS); case "android.permission.MOUNT_UNMOUNT_FILESYSTEMS": return getResources().getString(R.string.MOUNT_UNMOUNT_FILESYSTEMS); /***** N *****/ case "android.permission.NFC": return getResources().getString(R.string.NFC); /***** P *****/ case "android.permission.PERSISTENT_ACTIVITY": return getResources().getString(R.string.PERSISTENT_ACTIVITY); case "android.permission.PROCESS_OUTGOING_CALLS": return getResources().getString(R.string.PROCESS_OUTGOING_CALLS); /***** R *****/ case "android.permission.RAISED_THREAD_PRIORITY": return getResources().getString(R.string.RAISED_THREAD_PRIORITY); case "android.permission.READ_CALL_LOG": return getResources().getString(R.string.READ_CALL_LOG); case "android.permission.READ_CALENDAR": return getResources().getString(R.string.READ_CALENDAR); case "android.permission.READ_CONTACTS": return getResources().getString(R.string.READ_CONTACTS); case "android.permission.READ_FRAME_BUFFER": return getResources().getString(R.string.READ_FRAME_BUFFER); case "android.permission.READ_HISTORY_BOOKMARKS": return getResources().getString(R.string.READ_HISTORY_BOOKMARKS); case "com.android.browser.permission.READ_HISTORY_BOOKMARKS": return getResources().getString(R.string.READ_HISTORY_BOOKMARKS); case "android.permission.READ_INPUT_STATE": return getResources().getString(R.string.READ_INPUT_STATE); case "android.permission.READ_LOGS": return getResources().getString(R.string.READ_LOGS); case "android.permission.READ_OWNER_DATA": return getResources().getString(R.string.READ_OWNER_DATA); case "android.permission.READ_PHONE_STATE": return getResources().getString(R.string.READ_PHONE_STATE); case "android.permission.READ_PROFILE": return getResources().getString(R.string.READ_PROFILE); case "com.android.launcher.permission.READ_SETTINGS": case "com.android.launcher2.permission.READ_SETTINGS": case "com.android.launcher3.permission.READ_SETTINGS": return getResources().getString(R.string.LAUNCHER_READ_SETTINGS); case "android.permission.READ_SETTINGS": return getResources().getString(R.string.READ_SETTINGS); case "android.permission.READ_SMS": return getResources().getString(R.string.READ_SMS); case "android.permission.READ_SYNC_SETTINGS": return getResources().getString(R.string.READ_SYNC_SETTINGS); case "android.permission.READ_SYNC_STATS": return getResources().getString(R.string.READ_SYNC_STATS); case "android.permission.REBOOT": return getResources().getString(R.string.REBOOT); case "com.google.android.c2dm.permission.RECEIVE": return getResources().getString(R.string.C2DM_RECEIVE); case "android.permission.RECEIVE_BOOT_COMPLETED": return getResources().getString(R.string.RECEIVE_BOOT_COMPLETED); case "android.permission.RECEIVE_MMS": return getResources().getString(R.string.RECEIVE_MMS); case "android.permission.RECEIVE_USER_PRESENT": return getResources().getString(R.string.RECEIVE_USER_PRESENT); case "android.permission.RECEIVE_SMS": return getResources().getString(R.string.RECEIVE_SMS); case "android.permission.RECEIVE_WAP_PUSH": return getResources().getString(R.string.RECEIVE_WAP_PUSH); case "android.permission.RECORD_AUDIO": return getResources().getString(R.string.RECORD_AUDIO); case "android.permission.REORDER_TASKS": return getResources().getString(R.string.REORDER_TASKS); case "android.permission.RESTART_PACKAGES": return getResources().getString(R.string.RESTART_PACKAGES); case "android.permission.READ_EXTERNAL_STORAGE": return getResources().getString(R.string.READ_EXTERNAL_STORAGE); case "android.permission.READ_SECURE_SETTINGS": return getResources().getString(R.string.READ_SECURE_SETTINGS); case "android.permission.READ_SOCIAL_STREAM": return getResources().getString(R.string.READ_SOCIAL_STREAM); case "android.permission.RUN_INSTRUMENTATION": return getResources().getString(R.string.RUN_INSTRUMENTATION); /***** S *****/ case "android.permission.SEND_SMS": return getResources().getString(R.string.SEND_SMS); case "android.permission.SEND_SMS_NO_CONFIRMATION": return getResources().getString(R.string.SEND_SMS_NO_CONFIRMATION); case "android.permission.STOP_APP_SWITCHES": return getResources().getString(R.string.STOP_APP_SWITCHES); case "com.android.alarm.permission.SET_ALARM": return getResources().getString(R.string.SET_ALARM); case "android.permission.SET_ACTIVITY_WATCHER": return getResources().getString(R.string.SET_ACTIVITY_WATHCER); case "android.permission.SET_ALWAYS_FINISH": return getResources().getString(R.string.SET_ALWAYS_FINISH); case "android.permission.SET_ANIMATION_SCALE": return getResources().getString(R.string.SET_ANIMATION_SCALE); case "android.permission.SET_DEBUG_APP": return getResources().getString(R.string.SET_DEBUG_APP); case "android.permission.SET_ORIENTATION": return getResources().getString(R.string.SET_ORIENTATION); case "android.permission.SET_PROCESS_LIMIT": return getResources().getString(R.string.SET_PROCESS_LIMIT); case "android.permission.SET_TIME": return getResources().getString(R.string.SET_TIME); case "android.permission.SET_TIME_ZONE": return getResources().getString(R.string.SET_TIME_ZONE); case "android.permission.SET_WALLPAPER": return getResources().getString(R.string.SET_WALLPAPER); case "android.permission.SET_WALLPAPER_HINTS": return getResources().getString(R.string.SET_WALLPAPER_HINTS); case "android.permission.SET_PREFERRED_APPLICATIONS": return getResources().getString(R.string.SET_PREFERRED_APPLICATIONS); case "android.permission.SIGNAL_PERSISTENT_PROCESSES": return getResources().getString(R.string.SIGNAL_PERSISTENT_PROCESSES); case "android.permission.START_BACKGROUND_SERVICE": return getResources().getString(R.string.START_BACKGROUND_SERVICE); case "android.permission.STATUS_BAR": return getResources().getString(R.string.STATUS_BAR); case "android.permission.SUBSCRIBED_FEEDS_READ": return getResources().getString(R.string.SUBSCRIBED_FEEDS_READ); case "android.permission.SUBSCRIBED_FEEDS_WRITE": return getResources().getString(R.string.SUBSRIBED_FEEDS_WRITE); case "android.permission.SYSTEM_ALERT_WINDOW": return getResources().getString(R.string.SYSYTEM_ALERT_WINDOW); case "android.permission.SYSTEM_OVERLAY_WINDOW": return getResources().getString(R.string.SYSTEM_OVERLAY_WINDOW); /***** U *****/ case "android.permission.UPDATE_DEVICE_STATS": return getResources().getString(R.string.UPDATE_DEVICE_STATS); case "android.permission.USE_CREDENTIALS": return getResources().getString(R.string.USE_CREDENTIALS); case "com.android.launcher.permission.UNINSTALL_SHORTCUT": return getResources().getString(R.string.LAUNCHER_UNINSTALL_SHORTCUT); /***** V *****/ case "android.permission.VIBRATE": return getResources().getString(R.string.VIBRATE); /***** W *****/ case "com.android.launcher.permission.WRITE_SETTINGS": return getResources().getString(R.string.LAUNCHER_WRITE_SETTINGS); case "android.permission.WAKE_LOCK": return getResources().getString(R.string.WAKE_LOCK); case "android.permission.WAP_PUSH": return getResources().getString(R.string.WAP_PUSH); case "android.permission.WRITE_APN_SETTINGS": return getResources().getString(R.string.WRITE_APN_SETTINGS); case "android.permission.WRITE_CALENDAR": return getResources().getString(R.string.WRITE_CALENDAR); case "android.permission.WRITE_CALL_LOG": return getResources().getString(R.string.WRITE_CALL_LOG); case "android.permission.WRITE_CONTACTS": return getResources().getString(R.string.WRITE_CONTACTS); case "android.permission.WRITE_EXTERNAL_STORAGE": return getResources().getString(R.string.WRITE_EXTERNAL_STORAGE); case "android.permission.WRITE_GSERVICES": return getResources().getString(R.string.WRITE_GSERVICES); case "android.permission.WRITE_HISTORY_BOOKMARKS": case "com.android.browser.permission.WRITE_HISTORY_BOOKMARKS": return getResources().getString(R.string.WRITE_HISTORY_BOOKMARKS); case "android.permission.WRITE_INTERNAL_STORAGE": return getResources().getString(R.string.WRITE_INTERNAL_STORAGE); case "android.permission.WRITE_OWNER_DATA": return getResources().getString(R.string.WRITE_OWNER_DATA); case "android.permission.WRITE_PROFILE": return getResources().getString(R.string.WRITE_PROFILE); case "android.permission.WRITE_SECURE_SETTINGS": return getResources().getString(R.string.WRITE_SECURE_SETTINGS); case "android.permission.WRITE_SETTINGS": return getResources().getString(R.string.WRITE_SETTINGS); case "android.permission.WRITE_SMS": return getResources().getString(R.string.WRITE_SMS); case "android.permission.WRITE_SYNC_SETTINGS": return getResources().getString(R.string.WRITE_SYNC_SETTINGS); case "android.permission.WRITE_MEDIA_STORAGE": return getResources().getString(R.string.WRITE_MEDIA_STORAGE); /***** ToOrder *****/ case "android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS": return getResources().getString(R.string.SEND_DOWNLOAD_COMPLETED_INTENTS); case "android.permission.RECORD_VIDEO": return getResources().getString(R.string.RECORD_VIDEO); case "android.permission.UPDATE_APP_OPS_STATS": return getResources().getString(R.string.UPDATE_APP_OPS_STATS); case "android.permission.ACCESS_DEV_STORAGE": return getResources().getString(R.string.ACCESS_DEV_STORAGE); case "android.permission.MANAGE_DEVICE_ADMINS": return getResources().getString(R.string.MANAGE_DEVICE_ADMINS); case "android.permission.ACCESS_NOTIFICATIONS": return getResources().getString(R.string.ACCESS_NOTIFICATIONS); case "android.permission.ACCESS_WIMAX_STATE": return getResources().getString(R.string.ACCESS_WIMAX_STATE); case "android.permission.CHANGE_WIMAX_STATE": return getResources().getString(R.string.CHANGE_WIMAX_STATE); case "android.permission.FORCE_STOP_PACKAGES": return getResources().getString(R.string.FORCE_STOP_PACKAGES); case "android.permission.PACKAGE_USAGE_STATS": return getResources().getString(R.string.PACKAGE_USAGE_STATS); case "android.permission.MOVE_PACKAGE": return getResources().getString(R.string.MOVE_PACKAGE); case "android.permission.BACKUP": return getResources().getString(R.string.BACKUP); case "android.permission.MANAGE_USB": return getResources().getString(R.string.MANAGE_USB); case "android.permission.SET_POINTER_SPEED": return getResources().getString(R.string.SET_POINTER_SPEED); case "android.permission.SET_KEYBOARD_LAYOUT": return getResources().getString(R.string.SET_KEYBOARD_LAYOUT); case "android.permission.MANAGE_USERS": return getResources().getString(R.string.MANAGE_USERS); case "android.permission.CONFIGURE_WIFI_DISPLAY": return getResources().getString(R.string.CONFIGURE_WIFI_DISPLAY); /***** Other *****/ default: return strPermission; } } }
转载请注明出处:周木水的CSDN博客 http://blog.csdn.net/zhoumushui
我的GitHub:周木水的GitHub https://github.com/zhoumushui
Android获取安装应用所需权限(二)使用PermissionInfo
原文地址:http://blog.csdn.net/zhoumushui/article/details/43266195