当前位置: 首页 > article >正文

Android 中 权限分类及申请方式

在 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.fileimport 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.Rclass PermissionActivity: AppCompatActivity() {// 运行时权限private val requestPermissionLauncher = registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted ->if (isGranted) {// 权限被授予Toast.makeText(this, "Permission granted", Toast.</
http://www.lryc.cn/news/2378772.html

相关文章:

  • 编程错题集系列(一)
  • 【原创】基于视觉大模型gemma-3-4b实现短视频自动识别内容并生成解说文案
  • Spark(32)SparkSQL操作Mysql
  • 基于 Python 的界面程序复现:标准干涉槽型设计计算及仿真
  • c++成员函数返回类对象引用和直接返回类对象的区别
  • AGI大模型(20):混合检索之rank_bm25库来实现词法搜索
  • 数字化转型- 数字化转型路线和推进
  • 字体样式集合
  • IP68防水Type-C连接器实测:水下1米浸泡72小时的生存挑战
  • 【技术追踪】InverseSR:使用潜在扩散模型进行三维脑部 MRI 超分辨率重建(MICCAI-2023)
  • React学习(二)-变量
  • list重点接口及模拟实现
  • 【自然语言处理与大模型】大模型(LLM)基础知识④
  • 系统架构设计(九):分布式架构与微服务
  • Java 框架配置自动化:告别冗长的 XML 与 YAML 文件
  • vue使用Pinia实现不同页面共享token
  • 遨游科普:三防平板是什么?有什么功能?
  • spring MVC 至 springboot的发展流程,配置文件变化
  • 深入解析Spring Boot与JUnit 5的集成测试实践
  • AI全域智能监控系统重构商业清洁管理范式——从被动响应到主动预防的监控效能革命
  • 网络编程中的直接内存与零拷贝
  • 区块链基本理解
  • panda机械臂的正逆运动学分析与仿真
  • QT使用QXlsx读取excel表格中的图片
  • VulnHub | Breach - 1
  • CMake基础及操作笔记
  • 在Oracle到GreatSQL迁移中排序规则改变引发的乱码问题分析及解决
  • 开源物联网平台(OpenRemote)
  • JavaScript入门【3】面向对象
  • 软件安全检测报告:如何全面评估企业级办公软件安全性?