程序管理--全部--应用详情:查看权限信息。
我的项目要求把里面的“手机”字样,给替换掉,在Settings的string文件里面并没有找到 关于 手机权限的信息的描述,于是查看流程。
应用详情 展示页面:com.android.settings.applications.InstalledAppDetails.
布局文件 R.layout.installed_app_details,关键部分如下:
<!-- 权限信息列表-->
<LinearLayout
android:id="@+id/security_settings_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"/>
InstalledAppDetails 代码处理:
// Security permissions section
LinearLayout permsView = (LinearLayout) mRootView.findViewById(R.id.permissions_section);
//系统widget,传入要解析权限的 pkgName
AppSecurityPermissions asp = new AppSecurityPermissions(getActivity(), packageName);
if (asp.getPermissionCount() > 0) {
permsView.setVisibility(View.VISIBLE);
// Make the security sections header visible
//权限信息列表容器
LinearLayout securityList = (LinearLayout) permsView.findViewById(
R.id.security_settings_list);
securityList.removeAllViews();
//加载 权限信息view
securityList.addView(asp.getPermissionsView());
直接使用系统的控件,获得指定 app的权限信息列表,加载到一个空的父容器。
AppSecurityPermissions 的处理过程,有兴趣的可以看看,暂时放放,后面有时间分析下。