各位大大,Android我想做了一个自己的安装apk,改造原生的,显示应用所具有的权限的时候代码为 5
AppSecurityPermissionsasp=newAppSecurityPermissions(this,mPkgInfo);securityList.addVi...
AppSecurityPermissions asp = new AppSecurityPermissions(this, mPkgInfo);
securityList.addView(asp.getPermissionsView()) 可是有一些权限比如电话权限不想显示,我该咋处理谢谢 展开
securityList.addView(asp.getPermissionsView()) 可是有一些权限比如电话权限不想显示,我该咋处理谢谢 展开
1个回答
展开全部
这种情况下,就不能使用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
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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询