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开发中的权限经过多次改版,权限的级别也会有相应的调整,欢迎指正。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NAND Separate Command Address (SCA) 接口数据传输解读

在采用Separate Command Address (SCA) 接口的存储产品中&#xff0c;DQ input burst和DQ output burst又是什么样的策略呢&#xff1f; DQ Input Burst: 在读取操作期间&#xff0c;数据以一种快速并行的方式通过DQ总线传送到控制器。在SCA接口下&#xff0c;虽然命令和地址信…

预约上门按摩系统开发会涉及哪些关键技术

一套完善的预约上门按摩系统的开发是需要考虑很多方面&#xff0c;无论是从用户下单还是技师、订单、财务以及各个方面的管理&#xff0c;涉及的逻辑和技术非常多&#xff0c;今天就以最简单的方式把预约上门按摩系统的技术方面分享一下。 1.移动端应用程序开发技术&#xff1a…

腾讯云COS桶文件上传下载工具类

1&#xff0c;申请key和密钥 2&#xff0c;引入依赖 <dependency><groupId>com.qcloud</groupId><artifactId>cos_api</artifactId><version>5.6.24</version></dependency>3&#xff0c;工具类 package com.example.activi…

Docker基础命令

Docker常用命令 docker run docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -e设置环境变量&#xff1b;-e usernameyjy --name为容器指定一个名称&#xff1b;--nameyjy -p指定端口映射&#xff0c;格式为&#xff1a;主机(宿主)端口:容器端口 -p 80:8080 -t为容器重新分…

WARNING: IPv4 forwarding is disabled. Networking will not work.

今天用docker部署容器&#xff0c;发现一个问题&#xff0c;docker-compose up启动成功&#xff0c;但无法正常访问接口。 查找问题步骤&#xff1a; 1、直接在服务器运行jar包&#xff0c;发现可以正常启动&#xff0c;也能正常访问接口&#xff0c;排除jar包本身问题以及防…

用C#实现简单的线性回归

前言 最近注意到了NumSharp&#xff0c;想学习一下&#xff0c;最好的学习方式就是去实践&#xff0c;因此从github上找了一个用python实现的简单线性回归代码&#xff0c;然后基于NumSharp用C#进行了改写。 NumSharp简介 NumSharp&#xff08;NumPy for C#&#xff09;是一个在…

STM32F103RCT6开发板M3单片机教程07-TIMER1CH1输出 PWM做LED呼吸灯

概述 本教程使用是&#xff08;光明谷SUN_STM32mini开发板&#xff09; 免费开发板 在谷动谷力社区注册用户&#xff0c;打卡&#xff0c;发帖求助都可以获取积分&#xff0c;当然最主要是发原创应用文档奖励更多积分&#xff0e; (可用积分换取&#xff0c;真的不用钱&…

什么是 CAS

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一波电子书籍资料&#xff0c;包含《Effective Java中文版 第2版》《深入JAVA虚拟机》&#xff0c;《重构改善既有代码设计》&#xff0c;《MySQL高性能-第3版》&…

C语言快速排序——qsort函数

上面的是我们标准C语言库里面对qsort函数的介绍&#xff0c;我们先来从排序说起&#xff1a; 这就不得不提出编程中最最基础的排序算法---冒泡排序 对于一个任意的无序数列&#xff0c;我们如果想要把他排成顺序数列的话&#xff0c;我们就可以让每一项跟后面的一项去比较&…

基于汽车胎压检测及温度预警

课题简介 汽车胎压监测系统可分为两种&#xff1a;一种是间接式胎压监测系统&#xff0c;是通过轮胎的转速差来判断轮胎是否异常&#xff1b;另一种是直接式胎压监测系统&#xff0c;通过在轮胎里面加装四个胎压监测传感器&#xff0c;在汽车静止或者行驶过程中对轮胎气压和温…

轻量化的yolov8部署到安卓Android手机端

一、pytorch环境配置和yolov8源码安装 首先在电脑上需要配置好pytorch环境&#xff0c;和yolov8源码的下载 然后针对yolov8做自己的轻量化改进 二、下载Android Studio和ncnn-android-yolov8 1. Android Studio官网链接&#xff1a; 下载 Android Studio 和应用工具 - And…

语义补全任务2023年论文总结

一、3D Semantic Scene Completion: a Survey 语义场景补全SSC旨在联合估计出一个场景完整的几何和语义信息&#xff0c;假设只需要部分稀疏输入数据。 1、数据集 2、场景表示 Point Cloud&#xff0c;点云是一种方便的、记忆高效的表示方法&#xff0c;它将三维连续世界中的…

图灵机:计算机科学的奠基之作

图灵机的概念由英国数学家阿兰图灵在1936年提出&#xff0c;这个时期正是计算机科学的黎明时分。那个时候&#xff0c;人们还在使用机械计算器进行计算&#xff0c;而且这些计算器的功能都非常有限。 图灵提出这个概念的初衷&#xff0c;是为了解决所谓的“判定问题”&#xf…

关于react-native-reanimated 3.6.1在react native debugger报错问题

ExceptionsManager.js:158 Error: [Reanimated] UpdatePropsManager is not available on non-native platform. 在node_module下找到找到相关文件&#xff0c;注释掉相关代码 然后打补丁放在自己的项目下&#xff0c;关于打补丁在博客主页&#xff0c;自行查看讲解

番外篇-如何开发智能合约入门

今天咱们聊聊如何开发智能合约&#xff0c;非常入门的分享~ 1. 如何开发智能合约 1.1. 基本流程 & 主流工具 1.1.1. 编写合约代码 Solidity仍然是一骑绝尘&#xff08;EVM&#xff09;Vyper是不太活跃语言&#xff0c;python语法&#xff08;EVM&#xff09;Rust不能应…

【pwn】cmcc_simplerop --rop链的构造

程序保护情况检查 32位程序&#xff0c;堆栈不可执行 主函数&#xff1a; 左边又是一堆函数&#xff0c;file看一下 发现是静态链接&#xff0c;那ret2libc不用考虑了&#xff0c;接着看一下有没有int 80 那可以考虑利用rop链调用execve函数&#xff0c;用系统调用的函数参数是…

想做鸿蒙开发应该学会哪些知识?

鸿蒙开发学习是一项探索性的工作&#xff0c;旨在开发一个全场景分布式操作系统&#xff0c;覆盖所有设备&#xff0c;让消费者能够更方便、更直观地使用各种设备。 鸿蒙系统定位为面向未来、面向全场景&#xff08;移动办公、运动健康、社交通信、媒体娱乐等&#xff09;的分…

Mysql时间差8小时解决方案

目录 1. MySQL 本身的问题1-1. 验证MySQL时间1-2. 修改Mysql时区配置文件修改Mysql时区SQL修改Mysql时区 2.JDBC 连接的问题3. 返回 JSON 时间不对 在开发中&#xff0c;有可能会遇到这种情况&#xff1a; 插入数据库中的时间时正常。但是将时间传到前端页面上显示时&#xff…

Docker安装Elesticsearch7详细步骤

​ 1、创建安装目录 mkdir -p /usr/local/docker/es-docker 2、配置虚拟内存 如果不配置&#xff0c;后面启动es会报错。 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 配置如下 vi /etc/sysctl.conf vm.max_map_coun…

光伏行业常用到的专业名词有哪些?都是什么意思?

光伏行业作为新能源领域的重要组成部分&#xff0c;涉及许多专业名词。本文将介绍一些常用的专业名词及其含义。 光伏电池&#xff1a;光伏电池是光伏发电系统的核心部件&#xff0c;能够将太阳能转换成直流电能。它是通过光生电效应工作的。 光伏组件&#xff1a;光伏组件是…