Android权限操作之uses-permission详解_Android

本文实例讲述了Android权限操作之uses-permission。分享给大家供大家参考,具体如下:

我们在安装Android软件的时候,系统会提示该软件所需要的权限,相对于其他系统,android的权限非常多。我们在开发软件的时候,也需要声明相应的权限,比如希望软件能发短信,需要声明软件调用短信的权限,否则软件运行的时候就会报错。

Android的权限在AndroidManifest.xml文件里配置。AndroidManifest文件中有四个标签与permission有关,它们分别是 <permission>、 <permission-group> 、<permission-tree> 和 <uses-permission>。其中最常用的是 <uses-permission>,当我们需要获取某个权限的时候就必须在我们的manifest文件中声明<uses-permission>。

<?xml version="1.0" encoding="utf-8"?>
<manifest>
  <application>
  </application>
  <uses-permission />
  <permission />
  <permission-tree />
  <permission-group />
  ...
</manifest>

<permission>和 <uses-permission>的作用相似,两者之间的不同之处,<uses-permission>是android预定义的权限,<permission>是自己定义的权限。 <permission>用的相对较少,<permission-group>   <permission-tree>这两个标签就更少见了,简单说<permission-group> 就是声明一个标签,该标签代表了一组permissions,而<permission-tree>是为一组permissions声明了一个namespace。后面三个标签具体使用方法后续文章会有介绍。

<permission>定义方法如下:

<permission android:description="string resource"
      android:icon="drawable resource"
      android:label="string resource"
      android:name="string"
      android:permissionGroup="string"
      android:protectionLevel=["normal" | "dangerous" |
                   "signature" | "signatureOrSystem"] />

上面代码来自官方文档:http://developer.android.com/guide/topics/manifest/permission-element.html。propectionLevel这个属性是必须声明,告诉系统通知用户的应用要求许可,或允许谁认为获得许可的情况下。permissionGroup这个是可选的,与<permission-group>配合使用。label, name和icon用于描述权限。 <permission>的用法后面也会再详细分析。

<uses-permission>是我们用的最多的,官方文档定义方式如下:

<uses-permission android:name="string" />

例如,短信和电话权限的定义:

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

下面是收集到的 <uses-permission>的资料,方便用的时候查找:

android.permission.ACCESS_CHECKIN_PROPERTIES
允许读写访问”properties”表在checkin数据库中,改值可以修改上传( Allowsread/write access to the “properties” table in the checkin database, to changevalues that get uploaded)

android.permission.ACCESS_COARSE_LOCATION
允许一个程序访问CellID或WiFi热点来获取粗略的位置(Allowsan application to access coarse (e.g., Cell-ID, WiFi) location)

android.permission.ACCESS_FINE_LOCATION
允许一个程序访问精良位置(如GPS) (Allows an application to accessfine (e.g., GPS) location)

android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
允许应用程序访问额外的位置提供命令(Allowsan application to access extra location provider commands)

android.permission.ACCESS_MOCK_LOCATION
允许程序创建模拟位置提供用于测试(Allowsan application to create mock location providers for testing)

android.permission.ACCESS_NETWORK_STATE
允许程序访问有关GSM网络信息(Allows applications to accessinformation about networks)

android.permission.ACCESS_SURFACE_FLINGER
允许程序使用SurfaceFlinger底层特性(Allows an application to useSurfaceFlinger's low level features)

android.permission.ACCESS_WIFI_STATE
允许程序访问Wi-Fi网络状态信息(Allows applications to accessinformation about Wi-Fi networks)

android.permission.ADD_SYSTEM_SERVICE
允许程序发布系统级服务(Allowsan application to publish system-level services).

android.permission.BATTERY_STATS
允许程序更新手机电池统计信息(Allowsan application to update the collected battery statistics)

android.permission.BLUETOOTH
允许程序连接到已配对的蓝牙设备(Allowsapplications to connect to paired bluetooth devices)

android.permission.BLUETOOTH_ADMIN
允许程序发现和配对蓝牙设备(Allowsapplications to discover and pair bluetooth devices)

android.permission.BRICK
请求能够禁用设备(非常危险)(Required to be able to disable thedevice (very *erous!).)

android.permission.BROADCAST_PACKAGE_REMOVED
允许程序广播一个提示消息在一个应用程序包已经移除后(Allowsan application to broadcast a notification that an application
package has been removed)

android.permission.BROADCAST_STICKY
允许一个程序广播常用intents(Allowsan application to broadcast sticky intents)

android.permission.CALL_PHONE
允许一个程序初始化一个电话拨号不需通过拨号用户界面需要用户确认(Allowsan application to initiate a phone call without going through the Dialer userinterface for the user to confirm the call being placed.)

android.permission.CALL_PRIVILEGED
允许一个程序拨打任何号码,包含紧急号码无需通过拨号用户界面需要用户确认(Allowsan application to call any phone number, including emergency numbers, withoutgoing through the Dialer user interface for the user to confirm the call beingplaced)

android.permission.CAMERA
请求访问使用照相设备(Requiredto be able to access the camera device. )

android.permission.CHANGE_COMPONENT_ENABLED_STATE
允许一个程序是否改变一个组件或其他的启用或禁用(Allowsan application to change whether an application component (other than its own)is enabled or not. )

android.permission.CHANGE_CONFIGURATION
允许一个程序修改当前设置,如本地化(Allowsan application to modify the current configuration, such as locale. )

android.permission.CHANGE_NETWORK_STATE
允许程序改变网络连接状态(Allowsapplications to change network connectivity state)

android.permission.CHANGE_WIFI_STATE
允许程序改变Wi-Fi连接状态(Allows applications to change Wi-Ficonnectivity state)

android.permission.CLEAR_APP_CACHE
允许一个程序清楚缓存从所有安装的程序在设备中(Allowsan application to clear the caches of all installed applications on the device.)

android.permission.CLEAR_APP_USER_DATA
允许一个程序清除用户设置(Allowsan application to clear user data)

android.permission.CONTROL_LOCATION_UPDATES
允许启用禁止位置更新提示从无线模块(Allowsenabling/disabling location update notifications from the radio. )

android.permission.DELETE_CACHE_FILES
允许程序删除缓存文件(Allowsan application to delete cache files)

android.permission.DELETE_PACKAGES
允许一个程序删除包(Allowsan application to delete packages)

android.permission.DEVICE_POWER
允许访问底层电源管理(Allowslow-level access to power management)

android.permission.DIAGNOSTIC
允许程序RW诊断资源(Allows applications to RW to diagnosticresources. )

android.permission.DISABLE_KEYGUARD
允许程序禁用键盘锁(Allowsapplications to disable the keyguard )

android.permission.DUMP
允许程序返回状态抓取信息从系统服务(Allowsan application to retrieve state dump information from system services.)

android.permission.EXPAND_STATUS_BAR
允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序(Allows an application to expand orcollapse the status bar. )

android.permission.FACTORY_TEST
作为一个工厂测试程序,运行在root用户(Run as a manufacturer test application,running as the root user. )

android.permission.FLASHLIGHT
访问闪光灯,android开发网提示HTC Dream不包含闪光灯(Allowsaccess to the flashlight )

android.permission.FORCE_BACK
允许程序强行一个后退操作是否在顶层activities(Allowsan application to force a BACK operation on whatever is the top activity. )

android.permission.FOTA_UPDATE
暂时不了解这是做什么使用的,android开发网分析可能是一个预留权限.

android.permission.GET_ACCOUNTS
访问一个帐户列表在AccountsService中(Allows access to thelist of accounts in the Accounts Service)

android.permission.GET_PACKAGE_SIZE
允许一个程序获取任何package占用空间容量(Allows an application to find out thespace used by any package. )

android.permission.GET_TASKS
允许一个程序获取信息有关当前或最近运行的任务,一个缩略的任务状态,是否活动等等(Allowsan application to get information about the currently or recently runningtasks: a thumbnail representation of the tasks, what activities are running init, etc.)

android.permission.HARDWARE_TEST
允许访问硬件(Allowsaccess to hardware peripherals. )

android.permission.INJECT_EVENTS
允许一个程序截获用户事件如按键、触摸、轨迹球等等到一个时间流,android开发网提醒算是hook技术吧(Allowsan application to inject user events (keys, touch, trackball) into the eventstream and deliver them to ANY window.)

android.permission.INSTALL_PACKAGES
允许一个程序安装packages(Allowsan application to install packages. )

android.permission.INTERNAL_SYSTEM_WINDOW
允许打开窗口使用系统用户界面(Allowsan application to open windows that are for use by parts of the system userinterface. )

android.permission.INTERNET
允许程序打开网络套接字(Allowsapplications to open network sockets)

android.permission.MANAGE_APP_TOKENS
允许程序管理(创建、催后、 z- order默认向z轴推移)程序引用在窗口管理器中(Allowsan application to manage (create, destroy, Z-order) application tokens in thewindow manager. )

android.permission.MASTER_CLEAR
目前还没有明确的解释,android开发网分析可能是清除一切数据,类似硬格机

android.permission.MODIFY_AUDIO_SETTINGS
允许程序修改全局音频设置(Allowsan application to modify global audio settings)

android.permission.MODIFY_PHONE_STATE
允许修改话机状态,如电源,人机接口等(Allowsmodification of the telephony state – power on, mmi, etc. )

android.permission.MOUNT_UNMOUNT_FILESYSTEMS
允许挂载和反挂载文件系统可移动存储(Allowsmounting and unmounting file systems for removable storage. )

android.permission.PERSISTENT_ACTIVITY
允许一个程序设置他的activities显示(Allow an application to make itsactivities persistent. )

android.permission.PROCESS_OUTGOING_CALLS
允许程序监视、修改有关播出电话(Allowsan application to monitor, modify, or abort outgoing calls)

android.permission.READ_CALENDAR
允许程序读取用户日历数据(Allowsan application to read the user's calendar data.)

android.permission.READ_CONTACTS
允许程序读取用户联系人数据(Allowsan application to read the user's contacts data.)

android.permission.READ_FRAME_BUFFER
允许程序屏幕波或和更多常规的访问帧缓冲数据(Allowsan application to take screen shots and more generally get access to the framebuffer data)

android.permission.READ_INPUT_STATE
允许程序返回当前按键状态(Allowsan application to retrieve the current state of keys and switches. )

android.permission.READ_LOGS
允许程序读取底层系统日志文件(Allowsan application to read the low-level system log files. )

android.permission.READ_OWNER_DATA
允许程序读取所有者数据(Allowsan application to read the owner's data)

android.permission.READ_SMS
允许程序读取短信息(Allowsan application to read SMS messages.)

android.permission.READ_SYNC_SETTINGS
允许程序读取同步设置(Allowsapplications to read the sync settings)

android.permission.READ_SYNC_STATS
允许程序读取同步状态(Allowsapplications to read the sync stats)

android.permission.REBOOT
请求能够重新启动设备(Requiredto be able to reboot the device. )

android.permission.RECEIVE_BOOT_COMPLETED
允许一个程序接收到ACTION_BOOT_COMPLETED广播在系统完成启动(Allowsan application to receive the ACTION_BOOT_COMPLETED that is broadcast after thesystem finishes booting. )

android.permission.RECEIVE_MMS
允许一个程序监控将收到MMS彩信,记录或处理(Allowsan application to monitor incoming MMS messages, to record or performprocessing on them. )

android.permission.RECEIVE_SMS
允许程序监控一个将收到短信息,记录或处理(Allowsan application to monitor incoming SMS messages, to record or performprocessing on them.)

android.permission.RECEIVE_WAP_PUSH
允许程序监控将收到WAPPUSH信息(Allows an applicationto monitor incoming WAP push messages. )

android.permission.RECORD_AUDIO
允许程序录制音频(Allowsan application to record audio)

android.permission.REORDER_TASKS
允许程序改变Z轴排列任务(Allows an application to change theZ-order of tasks)

android.permission.RESTART_PACKAGES
允许程序重新启动其他程序(Allowsan application to restart other applications)

android.permission.SEND_SMS
允许程序发送SMS短信(Allows an application to send SMSmessages)

android.permission.SET_ACTIVITY_WATCHER
允许程序监控或控制activities已经启动全局系统中(Allows an application to watch andcontrol how activities are started globally in the system.)

android.permission.SET_ALWAYS_FINISH
允许程序控制是否活动间接完成在处于后台时(Allowsan application to control whether activities are immediately finished when putin the background.)

android.permission.SET_ANIMATION_SCALE
修改全局信息比例(Modifythe global animation scaling factor.)

android.permission.SET_DEBUG_APP
配置一个程序用于调试(Configurean application for debugging.)

android.permission.SET_ORIENTATION
允许底层访问设置屏幕方向和实际旋转(Allowslow-level access to setting the orientation (actually rotation) of the screen.)

android.permission.SET_PREFERRED_APPLICATIONS
允许一个程序修改列表参数PackageManager.addPackageToPreferred()和PackageManager.removePackageFromPreferred()方法(Allowsan application to modify the list of preferred applications with thePackageManager.addPackageToPreferred() andPackageManager.removePackageFromPreferred() methods.)

android.permission.SET_PROCESS_FOREGROUND
允许程序当前运行程序强行到前台(Allowsan application to force any currently running process to be in the foreground.)

android.permission.SET_PROCESS_LIMIT
允许设置最大的运行进程数量(Allowsan application to set the maximum number of (not needed) application processesthat can be running. )

android.permission.SET_TIME_ZONE
允许程序设置时间区域(Allowsapplications to set the system time zone)

android.permission.SET_WALLPAPER
允许程序设置壁纸(Allowsapplications to set the wallpaper )

android.permission.SET_WALLPAPER_HINTS
允许程序设置壁纸hits(Allowsapplications to set the wallpaper hints)

android.permission.SIGNAL_PERSISTENT_PROCESSES
允许程序请求发送信号到所有显示的进程中(Allowan application to request that a signal be sent to all persistent processes)

android.permission.STATUS_BAR
允许程序打开、关闭或禁用状态栏及图标Allowsan application to open, close, or disable the status bar and its icons.

android.permission.SUBSCRIBED_FEEDS_READ
允许一个程序访问订阅RSSFeed内容提供(Allows an applicationto allow access the subscribed feeds ContentProvider. )

android.permission.SUBSCRIBED_FEEDS_WRITE
系统暂时保留改设置,android开发网认为未来版本会加入该功能。

android.permission.SYSTEM_ALERT_WINDOW
允许一个程序打开窗口使用TYPE_SYSTEM_ALERT,显示在其他所有程序的顶层(Allowsan application to open windows using the type TYPE_SYSTEM_ALERT, shown on topof all other applications. )

android.permission.VIBRATE
允许访问振动设备(Allowsaccess to the vibrator)

android.permission.WAKE_LOCK
允许使用PowerManager的 WakeLocks保持进程在休眠时从屏幕消失(Allows using PowerManager WakeLocks to keep
processor from sleeping or screen fromdimming)

android.permission.WRITE_APN_SETTINGS
允许程序写入API设置(Allows applications to write the apnsettings)

android.permission.WRITE_CALENDAR
允许一个程序写入但不读取用户日历数据(Allowsan application to write (but not read) the user's calendar data. )

android.permission.WRITE_CONTACTS
允许程序写入但不读取用户联系人数据(Allowsan application to write (but not read) the user's contacts data. )

android.permission.WRITE_GSERVICES
允许程序修改Google服务地图(Allows an application to modify theGoogle service map. )

android.permission.WRITE_OWNER_DATA
允许一个程序写入但不读取所有者数据(Allowsan application to write (but not read) the owner's data.)

android.permission.WRITE_SETTINGS
允许程序读取或写入系统设置(Allowsan application to read or write the system settings. )

android.permission.WRITE_SMS
允许程序写短信(Allowsan application to write SMS messages)

android.permission.WRITE_SYNC_SETTINGS
允许程序写入同步设置(Allowsapplications to write the sync settings)

PS:关于AndroidManifest.xml文件相关属性功能可参考本站在线工具:

Android Manifest功能与权限描述大全:
http://tools.jb51.net/table/AndroidManifest

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, uses-permission
权限操作
uses permission、uses permission 位置、uses permission报错、uses permission 无效、uses permission 重复,以便于您获取更多的相关知识。

时间: 2024-10-03 03:08:54

Android权限操作之uses-permission详解_Android的相关文章

Android Bluetooth蓝牙技术使用流程详解_Android

在上篇文章给大家介绍了Android Bluetooth蓝牙技术初体验相关内容,感兴趣的朋友可以点击了解详情. 一:蓝牙设备之间的通信主要包括了四个步骤 设置蓝牙设备 寻找局域网内可能或者匹配的设备 连接设备 设备之间的数据传输 二:具体编程实现 1. 启动蓝牙功能 首先通过调用静态方法getDefaultAdapter()获取蓝牙适配器BluetoothAdapter,如果返回为空,则无法继续执行了.例如: BluetoothAdapter mBluetoothAdapter = Blueto

Android实现屏幕锁定源码详解_Android

最近有朋友问屏幕锁定的问题,自己也在学习,网上找了下也没太详细的例子,看的资料书上也没有有关屏幕锁定程序的介绍,下个小决心,自己照着官方文档学习下,现在做好了,废话不多说,先发下截图,看下效果,需要注意的地方会加注释,有问题的朋友可以直接留言,我们共同学习交流,共同提高进步!直接看效果图: 一:未设置密码时进入系统设置的效果图如下:   二:设置密码方式预览: 三:密码解密效果图 四:九宫格解密时的效果图 下面来简单的看下源码吧,此处讲下,这个小DEMO也是临时学习下的,有讲的不明白的地方请朋友

Android消息处理机制Looper和Handler详解_Android

Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理. Handler:处理者,负责Message的发送及处理.使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等. MessageQueue:消息队列,用来存放Handler发送过来的消息,并按照FIFO规则执行.当然,存放Message并非实际意义的保存,而是将Message以链表的方

Android开发之TabActivity用法实例详解_Android

本文实例讲述了Android开发之TabActivity用法.分享给大家供大家参考,具体如下: 一.简介 TabActivity继承自Activity,目的是让同一界面容纳更多的内容.TabActivity实现标签页的功能,通过导航栏对各个页面进行管理. 二.XML布局文件 注意: 1.TabActivity的布局文件要求以TabHost作为XML布局文件的根. 2.通常我们采用线性布局,所以<TabHost> 的子元素是 <LinearLayout>. 3.<TabWidg

Android编程之json解析实例详解_Android

本文实例分析了Android编程之json解析的方法.分享给大家供大家参考,具体如下: JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.

android之SeekBar控件用法详解_Android

MainActivity.java package com.example.mars_2400_seekbar; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.app.Activity; import android.os.Bundle; import a

android之RatingBar控件用法详解_Android

MainActivity.java package com.example.mars_2500_ratingbar; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.app.Activity; import android.os.Bundle; import

Android activity堆栈及管理实例详解_Android

本示例演示如何通过设置Intent对象的标记,来改变当前任务堆栈中既存的Activity的顺序. 1. Intent对象的Activity启动标记说明: FLAG_ACTIVITY_BROUGHT_TO_FRONT 应用程序代码中通常不设置这个标记,而是由系统给单任务启动模式的Activity的设置. FLAG_ACTIVITY_CLEAR_TASK 如果给Intent对象添加了这个标记,那么在Activity被启动之前,会导致跟这个Activity关联的任何既存的任务都被清除.也就是说新的Ac

Android开发教程之电源管理详解_Android

本文实例讲述了Android电源管理.分享给大家供大家参考,具体如下: 一. 相关概念 1. 出于节电的需要,一般应用在用户一段时间无操作的情况下屏幕变暗,然后进入休眠状态 2. 用户只能在"设置->声音和显示"中设置所有应用默认的屏幕亮度和进行待机的时间 3. 电源管理的实现分内核应用两部分,通过下面介绍的接口,我们可以设置应用程序的电源管理,以控制与其休眠相关的状态(是否需要进入休眠,调整cpu频率,键盘灯的开关,屏幕的亮暗等) 二. 设置电源管理常用的几种状态 PARTIA

Android开发之Notification通知用法详解_Android

本文实例讲述了Android开发之Notification通知用法.分享给大家供大家参考,具体如下: 根据activity的生命周期,在activity不显示时,会执行onStop函数(比如按下home键),所以你在onStop函数(按退出键除外)里面把notification放在通知栏里,再此显示时,把notification从通知栏里去掉.或者,只要程序在运行就一直显示通知栏图标. 下面对Notification类中的一些常量,字段,方法简单介绍一下: 常量: DEFAULT_ALL 使用所