天哪,这篇文章终于说道如何自定义权限了,左盼右盼,其实这个自定义权限相当easy。为了方便叙述,我这边会用到两个app作为例子示范。

Permission App: used to define a new permission

这个作为定义权限的App,我称之为Permission App.

Client App: used to access the specified activity of Permission App

这个作为访问上述自定义权限的App,我称之为Client App

先看如何写Permission App

第一步

Permission App很简单,它的任务就是定一个Permission,使用< permission>标签即可,我们假设内容如下:

第二步

然后在定一个Activity,这个Activity很简单就是展示下一行字,如”Hello from Custiom Permission Activity!”这里就不详述。

第三步

最重要的地方:我们需要为这个Activity指明访问权限,权限即为我们刚申请的权限,这个需要同样需要在AndroidManifest.xml文件中标识,如下:

android:name="com.example.custompermission.MainActivity"

android:label="@string/app_name" android:permission="custom.permission.STARTACTIVITY">

这个Activity于是就被打上了必须使用” custom.permission.STARTACTIVITY”权限才能访问的印记。

接着写Client App

至于如何写Client App,那就so so so … easy了,只需两步:

第一步

在AndroidManifest.xml文件中首先申请权限,如下:

第二步

访问Permission App表明需要该权限的Activity,代码如下:

Intent in = new Intent();

in.setClassName("com.example.custompermission", "com.example.custompermission.MainActivity");

startActivity(in);

大功告成

我们可以测试下效果,首先安装Permission App,然后接着安装Client App,结果如下:

点击之后

另外我曾经在Android Permission权限机制引子提到过Protection Level问题,这边我同样测试下这个Protection Level,下面结果中Y表示可以正常访问,N则表示不可以访问。

需要注意的是,使用自定义Permission的activity如果设置了:

android:name="com.example.custompermission.MainActivity"

android:label="@string/app_name" android:permission="custom.permission.STARTACTIVITY">

那就不能从Launcher中启动该App,因为只有你的Launcher必须使用了uses-permission去请求获取custom.permission.STARTACTIVITY权限,事实上你的Launcher是不具备已经请求自定义权限的。

Launcher会报:Application is not installed on your phone. 的错误.

自定义权限 android,Android权限控制之自定义权限相关推荐

  1. php 权限管理对节点控制,我对权限控制系统的看法_php

    请大家给个思路! ---- 刁馋 # 我曾经做了一个权限控制系统,由于需要修改,而我没有找到有效的解决方法, # 请大家给出出主意,给个大体思路,谢谢!要求如下: # 1.每个父亲节点下边有多个孩子 ...

  2. android 加网络权限管理,Android添加用户组及自定义App权限的方法

    Android:4.4.4 一.应用场景 在Android设备上,现在我们外接了一个USB转串口的设备,设备节点是/dev/ttyUSB0: # ls -l /dev/ttyUSB0 crw-rw-- ...

  3. android插件做动态权限,Mui本地打包笔记(四)Android自定义插件的配置(以动态申请权限为例)...

    通过自定义插件方式实现Android平台的动态申请权限功能 在上一章中完成了在Mui中调用Android原生的动态权限请求功能(Android动态申请权限的问题).虽然说完成了功能,但是在使用上并不是 ...

  4. qt android 设备权限,QtScrcpy: Android实时投屏软件,此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限...

    QtScrcpy QtScrcpy可以通过USB(或通过TCP/IP)连接Android设备,并进行显示和控制.不需要root权限. 单个应用程序最多支持16个安卓设备同时连接. 同时支持GNU/Li ...

  5. android p 权限流程,Android native 权限控制流程

    关联文章: 前言: 在 Android Runtime Permission 详解 中详细的说明了permission 在Android 6.0 前后的区别,对于M 以后应用可以通过checkPerm ...

  6. 蓝牙权限管理android,基于蓝牙与Android设备的控制系统设计

    3 Android设备软件设计本文引用地址:http://www.eepw.com.cn/article/264461.htm Android2.2版本以上才能很好的支持蓝牙功能,Android上的应 ...

  7. Android pms权限管理,Android权限机制

    为什么有权限机制 我们知道 Android 应用程序是沙箱隔离的,每个应用都有一个只有自己具有读写权限的专用数据目录.但是如果应用要访问别人的组件或者一些设备上全局可访问的资源,这时候权限机制就能系统 ...

  8. 强烈推荐:Android史上最强大的自定义任务软件Tasker

    强烈推荐:Android史上最强大的自定义任务软件Tasker http://bbs.mumayi.com/thread-28387-1-1.html (出处: 木蚂蚁手机乐园) Android上的T ...

  9. Android WiFi热点完全研究(自定义创建、跳转系统界面设置、读取配置、切换,Android6.0适配)...

    前言: WiFi热点设置页面的安全性选项在Android 4.x上有"无"."WPA PSK"."WPA2 PSK"三个选项,在Androi ...

最新文章

  1. pytorch笔记 pytorch模型中的parameter与buffer
  2. Python基础知识(第九天)
  3. IDEA创建方法时快速添加注释
  4. oracle左右连接的另外表示方法
  5. CSDN编程挑战(交换字符)
  6. 传统存储做到极致也惊人!看宏杉科技发布的CloudSAN
  7. python3连接oracle 11G数据库
  8. 基本数据结构之Sort
  9. 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)
  10. 互联网+时代企业级应用新生态—— 2016年中国软件技术大会
  11. 吴锦华/明鑫: 用户态文件系统(FUSE)框架分析和实战
  12. php导出页面为pdf文件大小,PHP HTML 生成 PDF|php快速导出pdf文件
  13. pkl形式的数据集读取和可视化
  14. Clickhouse MergeTree系列(Replacing、Summing等)表引擎使用说明
  15. html四种选择器的特点,css四种选择器总结
  16. linux命令删除raid,甲秀之音-Linux环境下删除硬盘中残留的raid信息
  17. java equals方法重写_Java重写equals方法
  18. java飞机游戏开发_java飞机小游戏制作
  19. Quartz的一般配置方法
  20. comsol圆柱形永磁体_基于COMSOL Multiphysics的磁场仿真分析

热门文章

  1. leetcode 55. Jump Game | 55. 跳跃游戏(暴力递归->傻缓存->DP)
  2. MySQL 行转列的方法
  3. 程序员是青春饭吗 - CSDN分享会笔记
  4. 深入理解r2dbc-mysql
  5. win10防火墙删除的文件在哪里_Win10系统我们是否还需要安装360
  6. HandlerInterceptor拦截器使用总结
  7. 人,人生,人类,思考
  8. 【一起去大厂系列】什么是回表查询?怎么优化回表查询?
  9. (~解题报告~)L1-017 到底有多二 (15分)(16行代码AC)
  10. 数据库原理与应用(SQL Server)笔记 第七章 流程控制语句、系统内置函数