Android开发基础(三)

Android开发基础(三)
本篇将介绍Android权限管理。
Android开发

Android权限管理

Android权限管理主要是为了保护用户的隐私和设备的安全性;
在Android系统中,应用在请求权限时必须进行明确的申请,根据权限的保护级别,系统可能会自动授予权限,或者提示用户批准请求;
Android将权限分为四类,不同级别的权限对应不同的认证方式。

一、normal

只要申请了就可以使用(在AndroidManifest.xml中添加标签),安装时不需要用户确认。

// 访问粗略位置
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
// 允许应用查看网络状态,例如是否连接到Wi-Fi或移动数据
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
// 允许应用访问设备的通知策略
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
// 允许应用查看Wi-Fi网络的状态,但不包括连接到的具体Wi-Fi网络的信息
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
// 允许应用连接到已配对的蓝牙设备,以及发现附近的蓝牙设备
<uses-permission android:name="android.permission.BLUETOOTH" />
// 允许应用执行蓝牙相关的操作,例如打开蓝牙设置、扫描附近的蓝牙设备等
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
// 用于发送粘性广播的权限,粘性广播是一种特殊类型的广播,它允许应用在广播接收器被注册后继续接收广播,即使应用未在运行时
<uses-permission android:name="android.permission.BROADCAST_STICKY" />

二、dangerous

安装时需要用户的确认才可使用。

// 允许应用读取外部存储设备的文件,包括图片、音乐、文档等
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
// 允许应用写入外部存储设备的文件
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
// 允许应用使用相机拍照或录制视频
<uses-permission android:name="android.permission.CAMERA" /> 
// 允许应用录制音频
<uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- 或者使用 MICROPHONE -->
// 允许应用访问用户的地理位置信息
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 或者使用 LOCATION -->
// 允许应用访问设备的传感器数据,如加速度计、陀螺仪等
<uses-permission android:name="android.permission.SENSORS" /> 
// 访问联系人信息,读取联系人
<uses-permission android:name="android.permission.READ_CONTACTS"/>
// 访问联系人信息,写入联系人
<uses-permission android:name="android.permission.WRITE_CONTACTS"/> 
// 允许应用更改网络状态,例如打开或关闭移动数据连接
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />

三、signature

只有当申请权限的应用程序的数字签名与声明此权限的应用程序的数字签名相同时(如果是申请系统权限,则需要与系统签名相同),才能将权限授给它;
以系统内置的signature级别权限为例,Android系统应用的签名由平台密钥签发,默认情况下源码树里有4个不同的密钥文件:platform、shared、media和testkey。

// 允许应用读取手机状态信息,如IMEI、手机号码等
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
// 允许应用程序读取通话记录
<uses-permission android:name="android.permission.READ_CALL_LOG" /> 
// 允许应用写入通话记录
<uses-permission android:name="android.permission.WRITE_CALL_LOG" />
// 允许应用程序读取短信和彩信
<uses-permission android:name="android.permission.READ_SMS" /> 
// 允许应用程序编写和删除短信和彩信
<uses-permission android:name="android.permission.WRITE_SMS" /> 

四、signatureOrSystem

签名相同,或者申请权限的应用为系统应用(在system image中)。

Android开发中的权限经过多次改版,权限的级别也会有相应的调整,欢迎指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/617643.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试最新项目合集【商城、外卖、银行、金融等等.......】

​项目一&#xff1a;ShopNC商城 项目概况&#xff1a; ShopNC商城是一个电子商务B2C电商平台系统&#xff0c;功能强大&#xff0c;安全便捷。适合企业及个人快速构建个性化网上商城。 包含PCIOS客户端Adroid客户端微商城&#xff0c;系统PC后台是基于ThinkPHP MVC构架开发的…

NAND新一代接口Separate Command Address (SCA) 简介

通过NAND Flash总线传输的信号分为三种类型&#xff1a;命令&#xff08;Commands&#xff09;、地址&#xff08;Addresses&#xff09;和数据&#xff08;Data&#xff09;。这些信号利用DQ[7:0]时间分时复用技术&#xff0c;在不同的时间段分别进行传输。其中&#xff0c;数…

BikeDNA(五)参考数据的内在分析1

BikeDNA&#xff08;五&#xff09;参考数据的内在分析1 该笔记本分析用户提供的给定区域的参考自行车基础设施数据集的质量。 质量评估是“内在的”&#xff0c;即仅基于一个输入数据集&#xff0c;并且不使用数据集外部的信息。 对于将参考数据集与相应 OSM 数据进行比较的外…

redis — redis cluster集群模式下如何实现批量可重入锁?

一、redis cluster 集群版 在Redis 3.0版本以后,Redis发布了Redis Cluster。该集群主要支持搞并发和海量数据处理等优势,当 Redis 在集群模式下运行时,它处理数据存储的方式与作为单个实例运行时不同。这是因为它应该准备好跨多个节点分发数据,从而实现水平可扩展性。具体能…

Java内存结构

前文&#xff1a; 《Java8之类的加载》 《Java8之类加载机制class源码分析》 写在开头&#xff1a;本文为学习后的总结&#xff0c;可能有不到位的地方&#xff0c;错误的地方&#xff0c;欢迎各位指正。 JVM 在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数…

Ubuntu server配置ssh远程登录

使用如下命令进行安装 apt-get install ssh 安装好后启动 service ssh start 然后查看运行状态 然后用本机ping虚拟机 关闭本机和虚拟机防火墙 ufw disable 然后打开Xshell进行连接

14、MySQL高频面试题

1、内连接和外连接的区别 内连接和外连接都是数据库进行多表联查时使用的连接方式&#xff0c;区别在于二者获取的数据集不同 内连接指的是使用左表中的每一条数据分别去连接右表中的每一条数据&#xff0c;仅仅显示出匹配成功的那部分 外连接有分为左外连接和右外连接 左外…

重磅!OpenAI正式发布,自定义ChatGPT商店!

1月11日凌晨&#xff0c;OpenAI在官网正式发布了&#xff0c;自定义GPT商店&#xff0c;可以帮助用户找到目前最好用、流行的自定义ChatGPT助手。 在2024年第一季度&#xff0c;OpenAI将启动GPT 开发者收入计划。首先&#xff0c;美国地区的开发者将根据用户对其 GPT 的使用情…

day-07 统计出现过一次的公共字符串

思路 用哈希表统计words1和words2中各个字符串的出现次数&#xff0c;次数皆为1的字符串符合题意 解题方法 //用于存储words1中各个字符串的出现次数 HashMap<String,Integer> hashMap1new HashMap<>(); //用于存储words2中各个字符串的出现次数 HashMap<Stri…

小程序系列-5.WXML 模板语法

一、数据绑定 1、在 data 中定义页面的数据 动态绑定内容&#xff1a; 动态绑定属性&#xff1a; 2. Mustache 语法的格式 3. Mustache 语法的应用场景 4. 三元运算 5.算数运算 二、 事件绑定 1. 什么是事件&#xff1f; 2. 小程序中常用的事件 3. 事件对象的属性列表 4.…

Linux基础工具的使用(yum,vim,gcc,g++,gdb,make/makefile)【详解】

目录 linux软件包管理器-yum什么是软件包&#xff1f;查找软件包如何安装软件卸载软件 linux编辑器 - vimvim的基本概念vim模式之间的切换vim命令模式各命令汇总vim底行模式各命令汇总 Linux编译器 - gcc/ggcc/g的作用gcc/g选项预处理编译汇编链接静态库与动态库 Linux调试器 -…

详细分析Java中的@Transactional注解

目录 前言1. 基本知识2. 常用属性3. Demo4. 总结 前言 Transactional 是 Spring 框架中用于管理事务的注解。 该注解来源于Spring&#xff0c;对于Spring的基础知识可看我之前的文章&#xff1a; Spring框架从入门到学精&#xff08;全&#xff09; 该注解也可用在xxl-job框架…

自动化测试框架pytest系列之8个常用的装饰器函数

自动化测试框架pytest系列之基础概念介绍(一)-CSDN博客 自动化测试框架pytest系列之21个命令行参数介绍(二)-CSDN博客 自动化测试框架pytest系列之强大的fixture功能&#xff0c;为什么fixture强大&#xff1f;一文拆解它的功能参数。(三)-CSDN博客 接上文 3.5 pytest的8…

Vant4在Vue3.3中如何按需导入组件和样式

前言 最近我在Vue 3.3的项目中对Vant4做按需导入时&#xff0c;尽管按照Vant4的官方指南进行操作&#xff0c;但样式仍然无法正确加载。经过深入研究和多篇文章的比较&#xff0c;我终于找到了在Vue3中如何正确的按需导入Vant 4组件和样式的方法。由于Vue3.3和Vant4相对较新&am…

多无人机编队避障(人工势场法)

matlab2020正常运行&#xff0c;预设编队类型&#xff0c;目标位置&#xff0c;障碍物 多无人机编队避障&#xff08;人工势场法&#xff09;资源-CSDN文库

浅析链表结构

一、单向链表 C语言中数组是常用的一种数据类型&#xff0c;但可惜数组长度是固定大小的&#xff0c;不能动态扩展&#xff0c;使用起来有时不是很方便。然后就有了自定义的动态数组结构&#xff0c;动态数组就比较好用了&#xff0c;长度可以任意扩展&#xff0c;但还有一个问…

easyexcel 3.0.x 版本实现指定列 锁定以及指定列隐藏

1&#xff1a;效果示例 2&#xff1a;代码示例&#xff1a; UnLockCell.java package com.example.juc.zhujie;/*** Author * Date Created in 2023/12/19 10:09* DESCRIPTION:* Version V1.0*/import java.lang.annotation.*;/*** 用于标记锁定哪些列不需要锁定* author 12…

【LangChain学习之旅】—(7) 调用模型:使用OpenAI API还是微调开源Llama2/ChatGLM?

【LangChain学习之旅】—&#xff08;7&#xff09; 调用模型&#xff1a;使用OpenAI API还是微调开源Llama2/ChatGLM&#xff1f; 大语言模型发展史预训练 微调的模式用 HuggingFace 跑开源模型申请使用 Meta 的 Llama2 模型通过 HuggingFace 调用 LlamaLangChain 和 Hugging…

若依在表格中如何将字典的键值转为中文

文章目录 一、需求&#xff1a;二、问题解决步骤1、给需要转换的列绑定formatter属性2、获取字典项3、编写formatter属性绑定的方法 一、需求&#xff1a; 后端有时候返回的是字典的键值&#xff0c;在前端展示时需要转成中文值 后端返回的是dictValue&#xff0c;现在要转换…

【Git】本地仓库文件的创建、修改和删除

目录 一、基本信息设置 1、设置用户名2、设置用户名邮箱 二、Git仓库操作介绍 1、创建一个新的文件夹2、在文件内初始化git仓库&#xff08;创建git仓库&#xff09;3、向仓库中添加文件 1.创建一个文件2.将文件添加到暂存区3.将暂存区添加到仓库 4、修改仓库文件 1.修改文件2.…