android中危险权限

本文详细介绍了Android系统的24个危险权限,包括它们的类别及用途,并解释了如何正确处理这些权限,确保应用程序的安全性和用户体验。

一类的危险权限

普通权限是指那些不会威胁到用户安全和隐私的权限,这部分权限系统会自动帮我们进行授权不需要手动操作。危险权限则表示那些可能会触及到用户安全隐私或者对设备安全造成影响的权限,如获取手机联系人信息等权限,申请者部分权限必须有用户收到点击授权才可以,否则程序无法使用相应的功能。

下面列出 Android 中所有的危险权限,一共是9组24个权限。

 

权限组名权限名称
CALENDAR(日历)READ_CALENDAR
WRITE_CALENDAR
CAMERA(相机)CAMERA
CONTACTS(联系人)READ_CONTACTS
WRITE_CONTACTS
GET_ACCOUNTS
LOCATION(位置)ACCESS_FINE_LOCATION
ACCESS_COARSE_LOCATION
MICROPHONE(麦克风)RECORD_AUDIO
PHONE(手机)READ_PHONE_STATE
CALL_PHONE
ERAD_CALL_LOG
WRITE_CALL_LOG
ADD_VOICEMAIL
USE_SIP
PROCESS_OUTGOING_CALLS
SENSORS(传感器)BODY_SENSORS
SMS(短信)SEND_SMS
RECEIVE_SMS
READ_SMS
RECEIVE_WAP_PUSH
RECEIVE_MMS
STORAGE(存储卡)READ_EXTERNAL_STORAGE
WRITE_EXTERNAL_STORAGE

 

这张表可以作为一个参照表,每当使用一个权限的时,可以先到这张表中来查看一下,如果在属于这张表中的权限,那么就需要进行运行时权限处理,如果不在这张表中,那么只需要在AndroidManifest.xml文件中添加一下权限声明就可以了。
另外需要注意,表格中每个危险权限都属于一个权限组,我们在进行运行时权限处理时使用的是权限名,但是用户一旦同意授权了,那么该权限所对应的权限组中所有其他的权限也会同时被授权。

以上就是对Android 危险权限内容的整理,如有疑问请留言或者到本站社区交流讨论,本站关于Android开发的文章还有很多,希望大家搜索查阅,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Android 应用中请求危险权限(Dangerous Permissions)涉及运行时权限管理,因为这类权限可能涉及用户隐私或敏感数据,例如存储、相机、位置等权限。以下是详细的步骤和方法: ### 请求危险权限的步骤 1. **检查权限是否已被授予** 在请求权限之前,需要先检查应用是否已经获得该权限。可以通过 `ContextCompat.checkSelfPermission()` 方法进行判断。如果返回值为 `PackageManager.PERMISSION_GRANTED`,则表示权限已授予。 2. **请求权限** 如果权限尚未授予,可以调用 `ActivityCompat.requestPermissions()` 方法向用户请求权限。该方法需要传入当前的 `Activity` 实例、权限数组以及一个请求码(`requestCode`)。 3. **处理用户授权结果** 当用户对权限请求做出响应后,系统会回调 `onRequestPermissionsResult()` 方法。在此方法中,需要根据请求码和用户授权结果进行相应的处理。 ### 示例代码 以下是一个完整的示例代码,演示如何请求存储权限危险权限): ```java import android.Manifest; import android.content.pm.PackageManager; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; public class PermissionActivity extends AppCompatActivity { private static final int REQUEST_STORAGE_PERMISSION = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_STORAGE_PERMISSION); } else { // 权限已经授予,执行相关操作 } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == REQUEST_STORAGE_PERMISSION) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // 用户授予了权限 } else { // 用户拒绝了权限 } } } } ``` ### 注意事项 - **权限组**:Android权限分为多个组,如果应用请求某个权限,而用户授予了该权限组中的其他权限,系统可能会自动授予该权限[^1]。 - **解释权限请求**:在某些情况下,可能需要向用户解释为什么需要该权限。可以使用 `ActivityCompat.shouldShowRequestPermissionRationale()` 方法判断是否需要显示解释信息[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值