Android开发基础(三)

news2024/10/1 12:12:41

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.coloradmin.cn/o/1378431.html

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

相关文章

C语言——(printf和scanf介绍)

一.printf 1.基本用法 printf&#xff08;&#xff09;的作用是将参数文本输出的屏幕。如下&#xff1b; 2.占位符 printf&#xff08;&#xff09;可以在输出文本中指定占位符 &#xff0c;“占位符”&#xff0c;也就是这个位置可以用其他值代入。 如&#xff1a; …

Spring Cloud + Vue前后端分离-第12章 通用权限设计

源代码在GitHub - 629y/course: Spring Cloud Vue前后端分离-在线课程 Spring Cloud Vue前后端分离-第12章 通用权限设计 这一章我们不依赖第三方框架&#xff0c;我会从权限相关表的设计&#xff0c;到权限的配置&#xff0c;到权限的拦截&#xff0c;带大家一步一步的做出…

C语言基础语法跟练 day3

31、不使用累计乘法的基础上&#xff0c;通过移位运算&#xff08;<<&#xff09;实现2的n次方的计算。 #include <stdio.h> int main() {int i 0;scanf("%d",&i);printf("%d",1<<i);return 0; } 32、问题&#xff1a;一年约有 3.…

使用postman做接口测试(一)

如何执行HTTP接口测试。包括如下三步&#xff1a; 构造一条符合要求的HTTP请求消息&#xff1b;发给我&#xff0c;我给你回响应&#xff1b;你读取HTTP响应&#xff0c;检查响应内容是否正确。 今天我们就讲&#xff0c;如何使用postman发送符合要求的HTTP请求。 how-如何安…

完整的模型验证套路

读取图片 from PIL import Imageimg_path "../Yennefer_of_Vengerberg.jpg" image Image.open(img_path) print(image)转换成灰度图&#xff08;可选&#xff09; image image.convert(L) image.show()转换成RGB格式 image image.convert(RGB)因为png格式是四…

逆向分析爬取网页动态

本例子以爬取人民邮电出版社网页新书的信息为例 由于页面是动态的&#xff0c;信息会不停地更新&#xff0c;所以不同时间的爬取结果会不同。

Redis重点总结补充

Redis重点总结 1.redis分布式锁 2.redission实现分布式锁 注意&#xff1a;加锁、设置过期时间等操作都是基于lua脚本完成. redisson分布式锁&#xff0c;实现可重入&#xff08;前提是同一个线程下 3.redis主从集群 实现主从复制 ( Master-slave Replication)的工作原理 : …

Linux中关于echo命令详解

echo的作用 echo用于输出字符或字符串或者回显。 echo的参数说明 -n不换行输出内容-e解析转义字符-E不使用解析转义字符 使用 "-e" 参数拓展参数 \b删除前一个字符\c最后不加上换行号\f换页\n换行并将光标移动到行首\r光标移动到行首切不换行,如果\r后面还有字符,…

51-10 多模态论文串讲—ALBEF 论文精读

今天我们就来过一下多模态的串讲&#xff0c;其实之前&#xff0c;我们也讲了很多工作了&#xff0c;比如说CLIP&#xff0c;还有ViLT&#xff0c;以及CLIP的那么多后续工作。多模态学习在最近几年真的是异常的火爆&#xff0c;那除了普通的这种多模态学习&#xff0c;比如说视…

分块矩阵的定义、计算

目录 一、定义 二、分块矩阵的加减乘法 三、考点 一、定义 分块&#xff0c;顾名思义&#xff0c;将整个矩阵分成几部分&#xff0c;如下图所示 二、分块矩阵的加减乘法 三、考点 分块矩阵的考点不多&#xff0c;一般来说&#xff0c;有一种&#xff1a; 求分块矩阵的转置…

基于 IDEA 创建 Maven 的 Java SE 工程和 Java Web 工程

一、概念简介 Maven 工程相对之前的项目&#xff0c;多出一组 gavp 属性&#xff0c;gav 需要我们在创建项目的时候指定&#xff0c;p 有默认值&#xff0c;我们先行了解下这组属性的含义。 Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、Packaging 等四个属性的缩写&am…

MFC为对话框资源添加类

VC6新建一个对话框类型的工程; 建立之后资源中默认有2个对话框,一个是主对话框,About这个是默认建立的关于版权信息的; 然后主对话框有对应的.h和.cpp文件;可以在其中进行编程; 默认建立的有一个 关于 对话框; 在资源中新插入一个对话框,IDD_DIALOG1是对话框ID; 新加…

数据库悲观锁 select for update的详解

一 作用 1.1 结论 在mysql中&#xff0c;select ... for update 仅适用于InnoDB&#xff0c;且必须在事务块中才能生效。Innodb引擎默认是行锁。 Select .... from where .... for update 如果在where的查询条件字段使用了【主键|索引】&#xff0c;则此命令上行锁。否…

典型场景解析|PolarDB分布式版如何支撑SaaS多租户?

SaaS多租户背景 很多平台类应用或系统&#xff08;如电商CRM平台、仓库订单平台等等&#xff09;&#xff0c;它们的服务模型是围绕用户维度&#xff08;这里的用户维度可以是一个卖家或品牌&#xff0c;可以是一个仓库等&#xff09;展开的。因此&#xff0c;这类型的平台业务…

Pandas十大练习题,掌握常用方法

文章目录 Pandas分析练习题1. 获取并了解数据2. 数据过滤与排序3. 数据分组4. Apply函数5. 合并数据6. 数据统计7. 数据可视化8. 创建数据框9. 时间序列10. 删除数据 代码均在Jupter Notebook上完成 Pandas分析练习题 数据集可从此获取&#xff1a; 链接: https://pan.baidu.co…

开源知识库工具推荐:低成本搭建知识库

在信息爆炸的时代&#xff0c;企业和个体对知识的存储和管理需求日益增强。开源知识库工具因其开源、免费、高效的特性&#xff0c;成为了众多组织和个人的首选。如果你正在寻找一款优秀的开源知识库工具&#xff0c;本文将为你推荐三款性能优异的产品&#xff0c;感兴趣就往下…

2024云服务器租用推荐,全网TOP10等你选!

云服务器哪家便宜&#xff1f;2024最新整理你要的都在这&#xff01;头部云厂商阿里云、腾讯云、华为云、京东云、UCloud等都在降价&#xff0c;阿腾云atengyun.com分享2024年云服务器租用价格给你惊喜&#xff01; 便宜云服务器阿里云腾讯云华为云 2024年便宜云服务器汇总&…

centos 7.6 忘记root密码 怎么重置root密码

centos 7.6 忘记root密码 怎么重置root密码 1、 问题描述2、解决方法 1、 问题描述 centos 7.6 忘记root密码&#xff0c;登录不了root用户 2、解决方法 启动系统进入grub界面&#xff0c;按e进入编辑模式&#xff0c;找到含有quiet的这行。在这行最后 添加 rw init/bin/ba…

深入理解 Flink(八)Flink Task 部署初始化和启动详解

JobMaster 部署 Task 核心入口&#xff1a; JobMaster.onStart();部署 Task 链条&#xff1a;JobMaster --> DefaultScheduler --> SchedulingStrategy --> ExecutionVertex --> Execution --> RPC请求 --> TaskExecutor TaskExecutor 处理 JobMaster 的 …

Linux系统——DNS解析详解

目录 一、DNS域名解析 1.DNS的作用 2.域名的组成 2.1域名层级结构关系特点 2.2域名空间构成 2.3域名的四种不同类型 2.3.1延伸 2.3.2总结 3.DNS域名解析过程 3.1递归查询 3.2迭代查询 3.3一次DNS解析的过程 4.DNS系统类型 4.1缓存域名服务器 4.2主域名服务器 4…