Settings 程序管理--权限信息加载

程序管理--全部--应用详情:查看权限信息。

 我的项目要求把里面的“手机”字样,给替换掉,在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 的处理过程,有兴趣的可以看看,暂时放放,后面有时间分析下。

你可能感兴趣的:(Settings 程序管理--权限信息加载)