Android权限操作之uses-permission详解

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

我们在安装Android软件的时候,系统会提醒该软件切磋所急需的权杖,相对于任何系统,android的权力十分多。我们在开发软件的时候,也亟需注脚相应的权柄,比如希望软件能发短信,供给表明软件调用短信的权位,不然软件运营的时候就会报错。

Android的权位在AndroidManifest.xml文件里布署。AndroidManifest文件中有四个标签与permission有关,它们各自是
<permission>、 <permission-group> 、<permission-tree>
和 <uses-permission>。个中最常用的是
<uses-permission>,当大家必要得到有个别权限的时候就务须在我们的manifest文件中宣示<uses-permission>。

 

1
2
3
4
5
6
7
8
9
10
<?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>
就是宣称1个标签,该标签代表了一组permissions,而<permission-tree>是为一组permissions注解了2个namespace。前面多少个标签具体运用情势后续小说会有介绍。

<permission>定义方法如下:

 

1
2
3
4
5
6
7
<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这个是可选的,与&lt;permission-group&gt;配合使用。label,
name和icon用于描述权限。 <permission>的用法前边也会再详细分析。

<uses-permission>是大家用的最多的,官方文书档案定义形式如下:

 

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

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

 

1
2
<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
同意1个主次访问精良地点(如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
同意程序连接到已配对的蓝牙5.0设备(Allowsapplications to connect to paired
bluetooth devices)

android.permission.BLUETOOTH_ADMIN
允许程序意识和配对蓝牙5.0设备(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
允许1个程序广播常用intents(Allowsan application to broadcast sticky
intents)

android.permission.CALL_PHONE
同意二个主次初叶化1个电话拨号不需通过拨号用户界面要求用户确认(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
同意二个程序是还是不是改变1个零部件或其余的启用或剥夺(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
允许1个顺序免去用户设置(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
允许程序昂科威W诊断财富(Allows applications to HighlanderW 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
同意3个主次扩张缩小在状态栏,android开发网提醒应该是2个看似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开发网提示索爱 Dream不分包闪光灯(Allowsaccess to the
flashlight )

android.permission.FORCE_BACK
同意程序强行3个滞后操作是或不是在顶层activities(Allowsan application to
force a BACK operation on whatever is the top activity. )

android.permission.FOTA_UPDATE
一时半刻不驾驭那是做哪些使用的,android开发网分析大概是3个预留权限.

android.permission.GET_ACCOUNTS
做客三个帐户列表在Accounts瑟维斯中(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
允许2个顺序截获用户事件如按键、触摸、轨迹球等等到1个光阴流,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
同意3个主次监控将选用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
安顿3个先后用于调试(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
允许三个主次访问订阅PRA爱谱王Feed内容提供(Allows an applicationto allow access
the subscribed feeds ContentProvider. )

android.permission.SUBSCRIBED_FEEDS_WRITE
系统一时半刻保留改设置,android开发网认为今后版本会加盟该意义。

android.permission.SYSTEM_ALERT_WINDOW
同意贰个顺序打开窗口使用TYPE_SYSTEM_ALE奥迪Q3T,显示在任何全部程序的顶层(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 theGoogleservice map. )

android.permission.WRITE_OWNER_DATA
允许1个主次写入但不读取全数者数据(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程序设计具有帮助。

相关文章