各位大大,Android我想做了一个自己的安装apk,改造原生的,显示应用所具有的权限的时候代码为 5

AppSecurityPermissionsasp=newAppSecurityPermissions(this,mPkgInfo);securityList.addVi... AppSecurityPermissions asp = new AppSecurityPermissions(this, mPkgInfo);
securityList.addView(asp.getPermissionsView()) 可是有一些权限比如电话权限不想显示,我该咋处理谢谢
展开
 我来答
心中风情4
2013-08-22 · TA获得超过2247个赞
知道大有可为答主
回答量:1779
采纳率:66%
帮助的人:1082万
展开全部
这种情况下,就不能使用AppSecurityPermissions ,而需要用如下的方法(仅供参考):
private void getPermisson(Context context) {
try {
PackageManager pm = context.getPackageManager();
PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);
// 得到自己的包名
String pkgName = pi.packageName;

PackageInfo pkgInfo = pm.getPackageInfo(pkgName,
PackageManager.GET_PERMISSIONS);//通过包名,返回包信息
String sharedPkgList[] = pkgInfo.requestedPermissions;//得到权限列表

for (int i = 0; i < sharedPkgList.length; i++) {
String permName = sharedPkgList[i];

PermissionInfo tmpPermInfo = pm.getPermissionInfo(permName, 0);//通过permName得到该权限的详细信息
PermissionGroupInfo pgi = pm.getPermissionGroupInfo(
tmpPermInfo.group, 0);//权限分为不同的群组,通过权限名,我们得到该权限属于什么类型的权限。

tv.append(i + "-" + permName + "\n");
tv.append(i + "-" + pgi.loadLabel(pm).toString() + "\n");
tv.append(i + "-" + tmpPermInfo.loadLabel(pm).toString()+ "\n");
tv.append(i + "-" + tmpPermInfo.loadDescription(pm).toString()+ "\n");
tv.append(mDivider + "\n");

}
} catch (NameNotFoundException e) {
Log.e("##ddd", "Could'nt retrieve permissions for package");

}
}

这种情况下,你可以自由处理你所需要的信息。
参考~http://blog.csdn.net/bage1988320/article/details/6740292
追问
这个方法管用,请问通过什么属性能够读出权限的图标么,比如电话权限就有一个电话的icon
追答
PermissionInfo 继承自PackageItemInfo,PackageItemInfo有个函数叫loadIcon,因此可用下面的方法获得ICON(但不一定有效,因为系统不一定保持了icon信息):
Drawable drawable = tmpPermInfo.loadIcon(pm);

imageview.setDrawable(drawable);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式