危险权限,获取应用权限列表

本文探讨了Android应用中如何获取声明在AndroidManifest.xml的权限,特别是危险权限。虽然READ_PHONE_STATE和CALL_PHONE在同一权限组,但仅申请READ_PHONE_STATE仍无法拨打电话,必须请求CALL_PHONE权限。列举了所有危险权限的详细列表,包括联系人、电话、日历、相机、传感器、位置、存储、麦克风和短信等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取应用所需权限(只能获取在AndroidManifest.xml文件中声明的权限,像手机设置-》权限管理-》应用-》权限列表这个里面的权限并不是都能获取,比如读取应用列表的权限就获取不到)

PackageInfo pkgInfo = packageManager.getPackageInfo(getPackageName(), PackageManager.GET_PERMISSIONS);
            String sharedPkgList[] = pkgInfo.requestedPermissions;
            StringBuilder sb = new StringBuilder();
            for(int i=0;i<sharedPkgList.length;i++) {
                String permName = sharedPkgList[i];

                PermissionInfo tmpPermInfo = packageManager.getPermissionInfo(permName, 0);
                sb.append(i + "-" + permName + "\n");
                sb.append(i + "-" + tmpPermInfo.loadLabel(packageManager).toString() + "\n");
                sb.append(i + "-" + tmpPermInfo.loadDescription(packageManager).toString() + "\n");
            }

 

虽说READ_PHONE_STATE和CALL_PHONE属于同一个权限组,只动态申请READ_PHONE_STATE权限还是不能打电话的,还是需要动态申请CALL_PHONE权限

if(ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED){
    ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.CALL_PHONE},101);
}else{
    Uri uriTel=Uri.parse("tel:10086");
    Intent intentTel=new Intent();
    intentTel.setAction(Intent.ACTION_CALL);
    intentTel.setData(uriTel);
    startActivity(intentTel);
}

 

危险权限了解一下:

group:android.permission-group.CONTACTS

permission:android.permission.WRITE_CONTACTS

permission:android.permission.GET_ACCOUNTS

permission:android.permission.READ_CONTACTS

group:android.permission-group.PHONE

permission:android.permission.READ_CALL_LOG

permission:android.permission.READ_PHONE_STATE

permission:android.permission.CALL_PHONE

permission:android.permission.WRITE_CALL_LOG

permission:android.permission.USE_SIP

permission:android.permission.PROCESS_OUTGOING_CALLS permission:com.android.voicemail.permission.ADD_VOICEMAIL

group:android.permission-group.CALENDAR

permission:android.permission.READ_CALENDAR

permission:android.permission.WRITE_CALENDAR

group:android.permission-group.CAMERA

permission:android.permission.CAMERA

group:android.permission-group.SENSORS

permission:android.permission.BODY_SENSORS

group:android.permission-group.LOCATION

permission:android.permission.ACCESS_FINE_LOCATION

permission:android.permission.ACCESS_COARSE_LOCATION

group:android.permission-group.STORAGE

permission:android.permission.READ_EXTERNAL_STORAGE

permission:android.permission.WRITE_EXTERNAL_STORAGE

group:android.permission-group.MICROPHONE

permission:android.permission.RECORD_AUDIO

group:android.permission-group.SMS

permission:android.permission.READ_SMS

permission:android.permission.RECEIVE_WAP_PUSH

permission:android.permission.RECEIVE_MMS

permission:android.permission.RECEIVE_SMS

permission:android.permission.SEND_SMS

permission:android.permission.READ_CELL_BROADCASTS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值