Android笔记(十二)AndroidManiFest.xml
AndroidManiFest.xml清单文件是每个Android项目所必须的,它是整个Android应用的全局描述文件。AndroidManiFest.xml清单文件说明了该应用的名称、所使用的图标以及包含的组件等等。
AndroidManiFest.xml清单文件通常包含如下信息:
1. 应用程序的包名,该包名将会作为该应用的唯一标识
2. 应用所包含的组件,如Activity、Service、BroadcastReceiver和ContentProvider等
3. 应用程序兼容的最低版本
4. 应用程序使用系统所需的权限声明
5. 其他程序访问该程序所需的权限声明
下面是一份简单的AndroidManiFest.xml清单文件
<?xml version="1.0" encoding="utf-8"?>
<!-- 指定该Android应用的包名 该包名可用于唯一地表示该应用-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.lixyz.layoutdemo" > <!-- 指定Android应用标签、图标等信息 -->
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!-- 定义Android应用的一个组件:Activity,该Activity的类为MainActivity,并指定该Activity的标签 -->
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<!-- 指定该Activity是程序的入口 -->
<action android:name="android.intent.action.MAIN" />
<!-- 指定加载该应用时运行该Activity -->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
一个Android应用可能需要权限才能调用Android系统的功能,一个Android应用也可能被其他应用调用,因此它需要声明调用自身所需要的权限。
1. 声明运行该应用本身所需要的权限
通过为<manifest.../>元素添加<uses-permission.../>子元素即可为程序本身声明权限
例如在<manifest.../>元素里添加如下代码
<!-- 声明该应用本身需要打电话的权限 --> <uses-permission android:name="android.permission.CAL_PHONE">
2. 声明调用该应用所需的权限
通过为应用的各个组件元素,例如<activity.../>元素添加<uses-permission.../>子元素即可声明调用该程序所需的权限
例如在<activity.../>元素添加如下代码
<!-- 声明该应用本身需要发送短信的权限 --> <uses-permission android:name="android.permission.SEND_SMS">
通过上面的介绍可以看出<uses-permission>元素的用法倒不难,但到底有多少权限呢?实际上Android提供了大量权限,这些权限都位于ManiFest.permission类中,一般来说如下表所示:
|
ACCESS_CHECKIN_PROPERTIES |
允许在登入数据库的时候读写其中的属性表,并上传改变的值 |
|
ACCESS_COARSE_LOCATION |
允许应用访问范围(如WIFI)性的定位 |
|
ACCESS_FINE_LOCATION |
允许应用访问精确(如GPS)性的定位 |
|
ACCESS_LOCATION_EXTRA_COMMANDS |
允许应访问额外的提供定位的指令 |
|
ACCESS_MOCK_LOCATION |
允许应用创建用于测试的模拟定位提供者 |
|
ACCESS_NETWORK_STATE |
允许应用访问网络上的信息 |
|
ACCESS_SURFACE_FLINGER |
允许应用使用低版本视图的特征 |
|
ACCESS_WIFI_STATE |
允许应用访问关羽Wi-Fi网络的信息 |
|
ACCOUNT_MANAGER |
允许应用进入帐户认证 |
|
AUTHENTICATE_ACCOUNTS |
允许应用为ACCOUNT_MANAGER扮演一个帐户认证系统 |
|
BATTERY_STATS |
允许应用去统计电源信息 |
|
BIND_APPWIDGET |
允许应用告诉AppWidget哪个应用能够访问该AppWidget的数据 |
|
BIND_DEVICE_ADMIN |
必须通过关机接收者的请求来确保只有系统能够与之交互 |
|
BIND_INPUT_METHOD |
必须通过InputMethodService的请求来确保只有系统能够与之绑定 |
|
BIND_WALLPAPER |
必须通过WallpaperService的请求来确保只有系统能够与之绑定 |
|
BLUETOOTH |
允许应用去连接蓝牙设备 |
|
BLUETOOTH_ADMIN |
允许应用找到与之连接的蓝牙设备 |
|
BRICK |
被请求废止设备(非常危险) |
|
BROADCAST_PACKAGE_REMOVED |
允许应用发出一个程序包被移除的广播消息 |
|
BROADCAST_SMS |
允许应用发出一个收到短信的消息 |
|
BROADCAST_STICKY |
允许应用发出一个与intent相连的消息 |
|
BROADCAST_WAP_PUSH |
允许应用发出一个收到WAP PUSH的广播消息 |
|
CALL_PHONE |
允许应用启动一个用户确认电话被拨打而不通过拨打电话的用户界面的的拨打程序 |
|
CALL_PRIVILEGED |
允许应用启动一个用户确认电话被拨打而不通过拨打电话的用户界面的的任意号码的拨打,包括紧急号码. |
|
CAMERA |
能够启动照相机设备的请求 |
|
CHANGE_COMPONENT_ENABLED_STATE |
允许应用去改变一个应用是否是激活状态 |
|
CHANGE_CONFIGURATION |
允许应用修改当前的配置,如本地设置 |
|
CHANGE_NETWORK_STATE |
允许应用改变网络的连接状态 |
|
CHANGE_WIFI_MULTICAST_STATE |
允许应用进入Wi-Fi的组播方式 |
|
CHANGE_WIFI_STATE |
允许应用改变Wi-Fi的连接状态 |
|
CLEAR_APP_CACHE |
允许应用清除所有安装在设备上的应用的缓存 |
|
CLEAR_APP_USER_DATA |
允许应用清除使用者的信息资料 |
|
CONTROL_LOCATION_UPDATES |
允许从广播设备来更新或不更新本地的消息 |
|
DELETE_CACHE_FILES |
允许应用删除掉缓存文件 |
|
DELETE_PACKAGES |
允许应用删除掉程序包 |
|
DEVICE_POWER |
允许低权限的访问电源管理项 |
|
DIAGNOSTIC |
允许应用诊断程序资源 |
|
DISABLE_KEYGUARD |
允许应用禁用键盘锁 |
|
DUMP |
允许应用从系统服务中恢复转储的信息 |
|
EXPAND_STATUS_BAR |
允许应用扩大或缩小状态栏 |
|
FACTORY_TEST |
如制造商测试的应用一样用终极权限用户运行 |
|
FLASHLIGHT |
允许访问手电筒 |
|
FORCE_BACK |
允许应用强制的返回操作而不论是不是最终的activity |
|
GET_ACCOUNTS |
允许应用访问账目服务中的统计清单 |
|
GET_PACKAGE_SIZE |
允许应用查找出任何程序包使用的空间 |
|
GET_TASKS |
允许应用找到关于当前或最近运行的任务和在哪些acitivities里运行 |
|
GLOBAL_SEARCH |
这个权限可以被内容提供者用来允许使用全程搜索他们的数据 |
|
HARDWARE_TEST |
允许访问硬件及周边设备. |
|
INJECT_EVENTS |
允许应用注入用户事件(键盘、触摸)到事件中然后提供给任意的窗口 |
|
INSTALL_LOCATION_PROVIDER |
允许应用安装一个位置提供商到位置管理器中 |
|
INSTALL_PACKAGES |
允许应用安装程序包. |
|
INTERNAL_SYSTEM_WINDOW |
允许应用打开被部分系统用户接口使用的窗口 |
|
INTERNET |
允许应用打开网络套接口 |
|
KILL_BACKGROUND_PROCESSES |
允许应用去呼叫killBackgroundProcesses(String).方法 |
|
MANAGE_ACCOUNTS |
允许应用去管理帐户管理者中的重要清单 |
|
MANAGE_APP_TOKENS |
允许应用去管理(创建、销毁、顺序)在窗口管理者中的应用 |
|
MASTER_CLEAR |
|
|
MODIFY_AUDIO_SETTINGS |
允许应用修改全局音频设定 |
|
MODIFY_PHONE_STATE |
允许改变拨打电话的状态-电源等 |
|
MOUNT_FORMAT_FILESYSTEMS |
允许格式化可移除的存储仓库的文件系统 |
|
MOUNT_UNMOUNT_FILESYSTEMS |
允许装备或解除可移除的存储仓库的文件系统 |
|
PERSISTENT_ACTIVITY |
允许应用使它的activities更持久稳固 |
|
PROCESS_OUTGOING_CALLS |
允许应用监督、限定或终止呼出的电话 |
|
READ_CALENDAR |
允许应用读取用户的日历数据 |
|
READ_CONTACTS |
允许应用读取用户的联系人数据 |
|
READ_FRAME_BUFFER |
允许应用抓取屏幕和更多可获得的缓冲数据 |
|
READ_HISTORY_BOOKMARKS |
允许应用去读取(非写)用户浏览历史和书签 |
|
READ_INPUT_STATE |
允许应用去的当前键盘和控制的状态 |
|
READ_LOGS |
允许应用读取低级别的系统日志文件 |
|
READ_OWNER_DATA |
允许应用读取所有者的数据 |
|
READ_PHONE_STATE |
允许读取电话的状态 |
|
READ_SMS |
允许应用读取短信息. |
|
READ_SYNC_SETTINGS |
允许应用读取同步的设置 |
|
READ_SYNC_STATS |
允许应用读取同步的统计数据 |
|
REBOOT |
重新启动设备的请求 |
|
RECEIVE_BOOT_COMPLETED |
允许应用接收在系统完成启动后发出的ACTION_BOOT_COMPLETED广播信息 |
|
RECEIVE_MMS |
允许应用去监听多媒体信息并记录和对起进行处理 |
|
RECEIVE_SMS |
允许应用去监听短消息并记录和对起进行处理 |
|
RECEIVE_WAP_PUSH |
允许应用监听WAP push信息 |
|
RECORD_AUDIO |
允许应用记录音频信息 |
|
REORDER_TASKS |
允许应用改变任务的关系位置 |
|
RESTART_PACKAGES |
已废弃使用 |
|
SEND_SMS |
允许应用发送短消息. |
|
SET_ACTIVITY_WATCHER |
允许应用查看和控制activities是怎样在系统中运行的 |
|
SET_ALWAYS_FINISH |
允许应用去控制当activities被覆盖后是否是立即接触结束 |
|
SET_ANIMATION_SCALE |
改变动画的比例因子 |
|
SET_DEBUG_APP |
设置一个应用为调试模式 |
|
SET_ORIENTATION |
允许低级别的设置屏幕的方向 |
|
SET_PREFERRED_APPLICATIONS |
已废弃 |
|
SET_PROCESS_LIMIT |
允许应用设置可以运行的最大数的应用进程 |
|
SET_TIME |
允许应用设置系统时间 |
|
SET_TIME_ZONE |
允许应用设置系统时区时间 |
|
SET_WALLPAPER |
允许应用设置壁纸 |
|
SET_WALLPAPER_HINTS |
允许应用设置锁定的壁纸 |
|
SIGNAL_PERSISTENT_PROCESSES |
允许应用发出一个给所有稳定进程信号的请求 |
|
STATUS_BAR |
允许应用打开、关闭或使状态栏或图标失去作用 |
|
SUBSCRIBED_FEEDS_READ |
允许应用访问内容提供者的签署认证 |
|
SUBSCRIBED_FEEDS_WRITE |
|
|
SYSTEM_ALERT_WINDOW |
允许应用使用TYPE_SYSTEM_ALERT来打开窗口,并将窗口显示于其他应用的顶端 |
|
UPDATE_DEVICE_STATS |
允许应用更新设备资料信息 |
|
USE_CREDENTIALS |
允许应用从管理器得到授权请求 |
|
VIBRATE |
允许应用访问震动器 |
|
WAKE_LOCK |
允许使用电源锁定管理以使进程休眠或屏幕变暗 |
|
WRITE_APN_SETTINGS |
允许应用去写入接入点设置 |
|
WRITE_CALENDAR |
允许应用写(非读)用户的日历数据 |
|
WRITE_CONTACTS |
允许应用写(非读)用户的联系人数据 |
|
WRITE_EXTERNAL_STORAGE |
允许应用写(非读)用户的外部存储器 |
|
WRITE_GSERVICES |
允许应用修改Google服务地图 |
|
WRITE_HISTORY_BOOKMARKS |
允许应用写(非读)用户的浏览器历史和书签 |
|
WRITE_OWNER_DATA |
允许应用写(非读)用户的数据 |
|
WRITE_SECURE_SETTINGS |
允许应用写或读当前系统设置 |
|
WRITE_SETTINGS |
允许应用写或读系统设置 |
|
WRITE_SMS |
允许应用写短消息信息 |
|
WRITE_SYNC_SETTINGS |
允许应用写同步设置 |
转自《疯狂Android讲义》
Android笔记(十二)AndroidManiFest.xml的更多相关文章
- Android Studio(十二):打包多个发布渠道的apk文件
Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...
- 《C++游戏开发》笔记十二 战争迷雾:初步实现
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9475979 作者:七十一雾央 新浪微博:http:/ ...
- python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL
python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...
- Go语言学习笔记十二: 范围(Range)
Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...
- studio构建错误Element uses-permission#android.permission.ACCESS_NETWORK_STATE at AndroidManifest.xml:38:5-79 dupli
今天在项目构建的时候遇到了如下报错: Element uses-permission#android.permission.ACCESS_NETWORK_STATE at AndroidManifes ...
- DirectX11笔记(十二)--Direct3D渲染8--EFFECTS
原文:DirectX11笔记(十二)--Direct3D渲染8--EFFECTS 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010333737 ...
- Android笔记(二十) Activity中的跳转和值传递
我们知道,一个APP是由若干个Activity组成的,那么各个Acitivity中肯定需要进行跳转以及传递数值以保证App的运行,现总结一下多个Activity之间的跳转和值传递. 显式Intent跳 ...
- Android笔记(二十六) Android中的广播——BroadcastReceiver
为了方便进行系统级别的消息通知,Android有一套类似广播的消息机制,每个应用程序都可以对自己感兴趣的广播进行注册,这样该程序就只会接收自己所关心的广播内容,这些广播可能是来自于系统,也可能是来自于 ...
- Android笔记(二十五) ListView的缓存机制与BaseAdapter
之前接触了ListView和Adapter,Adapter将数据源和View连接起来,实际应用中,我们要显示的数据往往有很多,而屏幕只有那么大,系统只能屏幕所能显示的内容,当我们滑动屏幕,会将旧的内容 ...
- Android笔记(二十二) Android中的GridView
GridView和ListView一样,是Android中比较常见的布局控件,譬如我们的手机桌面其实就是一个GridView. 效果: 实现过程和ListView类似,也是通过Adapter将数据源展 ...
随机推荐
- ecshop数据表结构说明
深深地看看这个吧,会很有帮助的... ecs_account_log 用户帐号情况记录表,包括资金和积分等 log_id mediumint 自增ID号user_id mediumint 用户登录后保 ...
- TS - 问题解决力 - 下篇
本文是已读书籍的内容摘要,少部分有轻微改动,但不影响原文表达. <麦肯锡工作法 - 个人竞争力提升50%的7堂课> ISBN: 9787508644691 https://book.dou ...
- 【VS开发】IP地址格式转换(htonl、ntohl;inet_addr、inet_ntoa)
1.htonl ()和ntohl( ) u_long PASCAL FAR ntohl (u_long netlong); u_short PASCAL FAR ntohs (u_short nets ...
- 上传大文件到腾讯云cos遇到的一些问题
讲一个开发遇到的问题. 开发中遇到一个需求,需要在后台表单页面支持上传视频.因为项目中一直用的是腾讯云的COS做第三方存储平台,所以视频也要上传到cos中保存.首先想到的是使用腾讯提供的php的SDK ...
- [转]PHP程序员的技术成长规划
转自:http://blog.leanote.com/post/darker/PHP%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E6%8A%80%E6%9C%AF%E6% ...
- 关于NumPy的常用函数random.randint
np.random.randint(low, high=None, size=None, dtype='l') 该函数作用:用于产生离散均匀分布的整数 low:生成元素的最小值 high:生成元素的值 ...
- 函数的第一类对象,f格式化,迭代器以及递归
函数名的第一类对象及使用,f格式化以及迭代器 1.函数的第一类对象 第一类对象 --特殊点 1.可以当作值被赋值给变量 def func(): print(1) a = func a() 2.可以当作 ...
- AVR单片机教程——烧写hex文件
每一次build项目,编译器都会生成多个文件,其中有一个就是hex文件.之前在IDE中配置的external tools,就是把这个hex文件烧写到单片机中去的. 然而,有些时候你想运行别人的程序,但 ...
- mysql 子句、子查询、连接查询
一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count( ...
- 『Python基础』第20节:深浅copy
一. 赋值运算 l1 = [1, 2, 'conan', [11, 22]] l2 = l1 l1[0] = 111 print(l1) # [111, 2, 'conan', [11, 22]] p ...