AndroidManifest中定义的权限分为普通权限,危险权限和特殊权限。

  • 普通权限指的是不会威胁到用户的安全和隐私的权限,只需要在AndroidManifest中声明一下就能直接使用。
  • 危险权限指的是可能会触及用户隐私或者对设备安全性造成影响的权限,如获取设备联系人信息,定位设备的地理位置等。这部分权限需要通过代码进行申请弹出许可对话框,当用户手动统一之后才会获得授权。
  • 特殊权限比较少见,Google认为这类权限比危险权限还要敏感,因此需要让用户到专门的设置页面去手动对某一个应用程序授权。

常用的特殊权限:

  1. 悬浮窗权限 SYSTEM_ALERT_WINDOW

AndroidManifest.xml中加入下面的代码

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

跳转到指定的页面

    val intent = Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION)
startActivity(intent)

使用下面的Api判断权限是否已经授予

  Settings.canDrawOverlays(context)

2. 修改设置权限 WRITE_SETTINGS

AndroidManifest.xml中加入下面的代码

    <uses-permission android:name="android.permission.WRITE_SETTINGS" />

跳转到指定的页面

  val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS)
startActivity(intent)

使用下面的Api判断权限是否已经授予

   Settings.System.canWrite(context)

3. 管理外部储存 MANAGE_EXTERNAL_STORAGE

AndroidManifest.xml中加入下面的代码

  <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />

跳转到指定的页面

  val intent = Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)
startActivity(intent)

使用下面的Api判断权限是否已经授予

  Environment.isExternalStorageManager()

Android中的特殊权限的更多相关文章

  1. android中获取root权限的方法以及原理(转)

    一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识. 二. Root 的介绍 1. Root 的目的 可以让我们拥有 ...

  2. Android中的文件权限操作

    默认本工程创建的文件本工程对其有读写权限. 我们可以通过context.openFileOutput("文件名", 模式): 我们可以创建私有, 共有, 只读, 只写文件, 默认的 ...

  3. android 中使用自定义权限在广播中的利用

    1.在一个进程中发送一个有自定义权限的广播,另外一个进程中拥有广播接受者接受到该广播 <?xml version="1.0" encoding="utf-8&quo ...

  4. android 中使用自定义权限

    1.如果在一个进程中启动另外一个进程的activity <?xml version="1.0" encoding="utf-8"?> <man ...

  5. 快速解决Android中的selinux权限问题【转】

    本文转载自:http://blog.csdn.net/mike8825/article/details/49428417 版权声明:本文为博主原创文章,未经博主允许不得转载. 关于selinux的详细 ...

  6. Android中的ACCESS_MOCK_LOCATION权限使用Demo

    转载地址:http://mobiarch.wordpress.com/2012/07/17/testing-with-mock-location-data-in-android/ The DDMS t ...

  7. Android 中运行时权限获取联系人信息 Demo

    代码比较简单... AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <m ...

  8. Android中如何做到自定义的广播只能有指定的app接收

    今天没吊事,又去面试了,具体哪家公司就不说了,因为我在之前的blog中注明了那些家公司的名字,结果人家给我私信说我泄露他们的题目,好吧,我错了...其实当我们已经在工作的时候,我们可以在空闲的时间去面 ...

  9. Android中应用程序如何获得系统签名权限

    有些库的使用条件比较苛刻,要求同一签名的程序才可以获得访问权.此时即便是在AndroidManifest.xml中添加了相应的permission,依旧会得到没有xx访问权限的问题.比如android ...

  10. Android基础知识之Manifest文件中的用户权限元素

    原文:http://android.eoe.cn/topic/android_sdk 分任务原文链接一:http://developer.android.com/guide/topics/manife ...

随机推荐

  1. oracle job的使用

    select job, next_date, next_sec, failures, broken from user_jobs; create or replace sequence END_RES ...

  2. java中带回调函数的字符串替换,类似js中的replace(rgExp,function)

    https://blog.csdn.net/weixin_33834075/article/details/91599852 import java.util.regex.Matcher; impor ...

  3. python中的KeyError报错

    from util import str_util #业务逻辑:兼容不同的结构体:resCode转化数据 #检查字典中是否存在键 if 'resCode' not in resultJson if ' ...

  4. macos下编译glfw

    环境准备 # macos 环境配置,需要预装xcode和cmake brew install cmake # 下载源码 git clone https://github.com/glfw/glfw.g ...

  5. win10 蓝屏代码 IRQL NOT LESS OR EQUAL 问题排查(ing)

    环境:Win10故障症状: 不定期蓝屏,重启 蓝屏代码: IRQL NOT LESS OR EQUAL 官方建议 尝试方法1:更新win10最新的补丁 [无效] 尝试方法2:重新安装显卡驱动(当前系统 ...

  6. CSS中的选择( ::selection和user-select)

      CSS中的选择( ::selection和user-select) 在网络上,我们出于不同原因选择内容,也许我们想复制文本并在某处引用它.对于移动端来说,选择内容比较难,我不喜欢在移动端选择内容. ...

  7. SQL Server性能优化

    源代码文件 1,什么是性能问题? 现有资源没有达到最大吞吐量的前提下,系统不能满足合理的预期表现,则可以定义为有性能问题.性能指标包括:响应时间,吞吐量,可扩展性. 2,初探优化 2.1优化论 一般遇 ...

  8. k8s各个服务和执行流程介绍

    Master节点部署的都是kubernetes的核心模块 APIServer 提供资源操作的唯一入口,并且提供认证/授权/kubernets的访问控制可以通过kubectl和自己开发的客户端,通过ht ...

  9. viewpager加fragment可滑动加radio跟随滑动

    public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener, V ...

  10. mybatis核心配置文件—mappers标签设置映射文件

    <!-- 加载映射文件 --> <mappers> <!--<mapper resource="mappers/UserMapper.xml"& ...