Android 中 权限分类及申请方式

发布于:2025-05-17 ⋅ 阅读:(13) ⋅ 点赞:(0)

在 Android 中,权限被分为几个不同的类别,每个类别有不同的申请和管理方式。

一、 普通权限(Normal Permissions)

普通权限通常不会对用户隐私或设备安全造成太大风险。这些权限在应用安装时自动授予,无需用户在运行时手动授权。

  • android.permission.INTERNET
  • android.permission.ACCESS_NETWORK_STATE
  • android.permission.ACCESS_WIFI_STATE

普通权限需要时只要在 AndroidManifest.xml 文件中声明即可:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    ......
</manifest>     

二、 危险权限(Dangerous Permissions)

危险权限可能会对用户隐私或设备安全造成风险。这些权限需要用户在运行时手动授权。从 Android 6.0(API 级别 23)开始,应用需要在运行时请求这些权限。

  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.CAMERA
  • android.permission.RECORD_AUDIO
  • android.permission.ACCESS_FINE_LOCATION

危险权限需要在运行时手动申请权限

package com.example.helloworld.file

import android.Manifest
import android.os.Bundle
import android.widget.Button
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import com.example.helloworld.R

class PermissionActivity: AppCompatActivity() {
   

    // 运行时权限
    private val requestPermissionLauncher = registerForActivityResult(
        ActivityResultContracts.RequestPermission()
    ) {
    isGranted ->
        if (isGranted) {
   
            // 权限被授予
            Toast.makeText(this, "Permission granted", Toast.</

网站公告

今日签到

点亮在社区的每一天
去签到