android AndroidManifest.xml文件解析


一、关于AndroidManifest.xml

AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, Intent Receivers,还能指定permissionsinstrumentation(安全控制和测试)

二、AndroidManifest.xml结构

<?xmlversion="1.0"encoding="utf-8"?>

<manifest>

    <application>

       <activity>

           <intent-filter>

               <action/>

               <category/>

           </intent-filter>

      </activity>

       <activity-alias>

           <intent-filter></intent-filter>

           <meta-data/>

      </activity-alias>

       <service>

           <intent-filter></intent-filter>

           <meta-data/>

       </service>

       <receiver>

           <intent-filter></intent-filter>

           <meta-data/>

       </receiver>

       <provider>

           <grant-uri-permission/>

           <meta-data/>

       </provider>

       <uses-library/>

    </application>

    <uses-permission/>

    <permission/>

    <permission-tree/>

    <permission-group/>

    <instrumentation/>

    <uses-sdk/>

    <uses-configuration/> 

    <uses-feature/> 

    <supports-screens/>

</manifest>

三、各个节点的详细介绍

 上面就是整个am(androidManifest).xml的结构,下面以外向内开始阐述~~

1、第一层(<Manifest>):(属性)

<manifest  xmlns:android="http://schemas.android.com/apk/res/android"

          package="com.woody.test"

          android:sharedUserId="string"

          android:sharedUserLabel="string resource"

          android:versionCode="integer"

          android:versionName="string"

          android:installLocation=["auto" | "internalOnly" | "preferExternal"] >

</manifest>

Axmlns:android

定义android命名空间,一般为http://schemas.android.com/apk/res/android,这样使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据。

Bpackage

指定本应用内java主程序包的包名,它也是一个应用进程的默认名称

CsharedUserId

表明数据权限,因为默认情况下,Android给每个APK分配一个唯一的UserID,所以是默认禁止不同APK访问共享数据的。若要共享数据,第一可以采用Share Preference方法,第二种就可以采用sharedUserId了,将不同APKsharedUserId都设为一样,则这些APK之间就可以互相共享数据了。

详见:http://wallage.blog.163.com/blog/static/17389624201011010539408/

DsharedUserLabel

一个共享的用户名,它只有在设置了sharedUserId属性的前提下才会有意义

EversionCode

是给设备程序识别版本(升级)用的必须是一个interger值代表app更新过多少次,比如第一版一般为1,之后若要更新版本就设置为23等等。。。

FversionName

这个名称是给用户看的,你可以将你的APP版本号设置为1.1版,后续更新版本设置为1.22.0版本等等。。。

GinstallLocation

安装参数,是Android2.2中的一个新特性,installLocation有三个值可以选择:internalOnlyautopreferExternal

选择preferExternal,系统会优先考虑将APK安装到SD卡上(当然最终用户可以选择为内部ROM存储上,如果SD存储已满,也会安装到内部存储上)

选择auto,系统将会根据存储空间自己去适应

选择internalOnly是指必须安装到内部才能运行

(注:需要进行后台类监控的APP最好安装在内部,而一些较大的游戏APP最好安装在SD卡上。现默认为安装在内部,如果把APP安装在SD卡上,首先得设置你的level8,并且要配置android:installLocation这个参数的属性为preferExternal)

2、第二层(<Application>):属性

一个AndroidManifest.xml中必须含有一个Application标签,这个标签声明了每一个应用程序的组件及其属性(icon,label,permission)

<application  android:allowClearUserData=["true" | "false"]

             android:allowTaskReparenting=["true" | "false"]

             android:backupAgent="string"

             android:debuggable=["true" | "false"]

             android:description="string resource"

             android:enabled=["true" | "false"]

             android:hasCode=["true" | "false"]

             android:icon="drawable resource"

             android:killAfterRestore=["true" | "false"]

             android:label="string resource"

             android:manageSpaceActivity="string"

             android:name="string"

             android:permission="string"

             android:persistent=["true" | "false"]

             android:process="string"

             android:restoreAnyVersion=["true" | "false"]

             android:taskAffinity="string"

             android:theme="resource or theme" >

</application>

Aandroid:allowClearUserData('true' or 'false')

用户是否能选择自行清除数据,默认为true,程序管理器包含一个选择允许用户清除数据。当为true时,用户可自己清理用户数据,反之亦然

Bandroid:allowTaskReparenting('true' or 'false')

是否允许activity更换从属的任务,比如从短信息任务切换到浏览器任务

用来标记Activity能否从启动的Task移动到有着affinityTask(当这个Task进入到前台时)——“true”,表示能移动,“false”,表示它必须呆在启动时呆在的那个Task里。

如果这个特性没有被设定,设定到<application>元素上的allowTaskReparenting特性的值会应用到Activity上。默认值为“false”。

一般来说,当Activity启动后,它就与启动它的Task关联,并且在那里耗尽它的整个生命周期。当当前的Task不再显示时,你可以使用这个特性来强制Activity移动到有着affinityTask中。典型用法是:把一个应用程序的Activity移到另一个应用程序的主Task中。

例如,如果email中包含一个web页的链接,点击它就会启动一个Activity来显示这个页面。这个Activity是由Browser应用程序定义的,但是,现在它作为email Task的一部分。如果它重新宿主到Browser Task里,当Browser下一次进入到前台时,它就能被看见,并且,当email Task再次进入前台时,就看不到它了。

Actvityaffinity是由taskAffinity特性定义的。Taskaffinity是通过读取根Activityaffinity 决定。因此,根据定义,根Activity总是位于相同affinityTask里。由于启动模式为“singleTask”和 “singleInstance”的Activity只能位于Task的底部,因此,重新宿主只能限于“standard”和“singleTop”模式。

Candroid:backupAgent

这也是Android2.2中的一个新特性,设置该APP的备份,属性值应该是一个完整的类名,如com.project.TestCase,此属性并没有默认值,并且类名必须得指定(就是个备份工具,将数据备份到云端的操作)

Dandroid:debuggable

这个从字面上就可以看出是什么作用的,当设置为true时,表明该APP在手机上可以被调试。默认为false,false的情况下调试该APP,就会报以下错误:

Device XXX requires that applications explicitely declare themselves as debuggable in their manifest.

 Application XXX does not have the attribute 'debuggable' set to TRUE in its manifest and cannot be debugged.

Eandroid:description/android:label

此两个属性都是为许可提供的,均为字符串资源,当用户去看许可列表(android:label)或者某个许可的详细信息 (android:description)时,这些字符串资源就可以显示给用户。label应当尽量简短,之需要告知用户该许可是在保护什么功能就行。而description可以用于具体描述获取该许可的程序可以做哪些事情,实际上让用户可以知道如果他们同意程序获取该权限的话,该程序可以做什么。我们通常用两句话来描述许可,第一句描述该许可,第二句警告用户如果批准该权限会可能有什么不好的事情发生

Fandroid:enabled

Android系统是否能够实例化该应用程序的组件,如果为true,每个组件的enabled属性决定那个组件是否可以被 enabled。如果为false,它覆盖组件指定的值;所有组件都是disabled

Gandroid:hasCode('true' or 'false')

表示此APP是否包含任何的代码,默认为true,若为false,则系统在运行组件时,不会去尝试加载任何的APP代码

一个应用程序自身不会含有任何的代码,除非内置组件类,比如Activity类,此类使用了AliasActivity类,当然这是个罕见的现象

(Android2.3可以用标准C来开发应用程序,可在androidManifest.xml中将此属性设置为false,因为这个APP本身已经不含有任何的JAVA代码了)

Handroid:icon

这个很简单,就是声明整个APP的图标,图片一般都放在drawable文件夹下

Iandroid:killAfterRestore

Jandroid:manageSpaceActivity

Kandroid:name

为应用程序所实现的Application子类的全名。当应用程序进程开始时,该类在所有应用程序组件之前被实例化。

若该类(比方androidMain)是在声明的package下,则可以直接声明android:name="androidMain",但此类是在package下面的子包的话,就必须声明为全路径或android:name="package名称.子包名成.androidMain"

Landroid:permission

设置许可名,这个属性若在<application>上定义的话,是一个给应用程序的所有组件设置许可的便捷方式,当然它是被各组件设置的许可名所覆盖的

Mandroid:presistent

该应用程序是否应该在任何时候都保持运行状态,默认为false。因为应用程序通常不应该设置本标识,持续模式仅仅应该设置给某些系统应用程序才是有意义的。

Nandroid:process

应用程序运行的进程名,它的默认值为<manifest>元素里设置的包名,当然每个组件都可以通过设置该属性来覆盖默认值。如果你想两个应用程序共用一个进程的话,你可以设置他们的android:process相同,但前提条件是他们共享一个用户ID及被赋予了相同证书的时候

Oandroid:restoreAnyVersion

同样也是android2.2的一个新特性,用来表明应用是否准备尝试恢复所有的备份,甚至该备份是比当前设备上更要新的版本,默认是false

Pandroid:taskAffinity

拥有相同的affinityActivity理论上属于相同的Task,应用程序默认的affinity的名字是<manifest>元素中设定的package

Qandroid:theme

是一个资源的风格,它定义了一个默认的主题风格给所有的activity,当然也可以在自己的theme里面去设置它,有点类似style

Randroid:exported

是否允许activity被其它程序调用

3、第三层(<Activity>):属性

<activity android:allowTaskReparenting=["true" | "false"]

          android:alwaysRetainTaskState=["true" | "false"]

          android:clearTaskOnLaunch=["true" | "false"]

          android:configChanges=["mcc", "mnc", "locale",

                                 "touchscreen","keyboard", "keyboardHidden",

                                 "navigation", "orientation", "screenLayout",

                                 "fontScale", "uiMode"]

          android:enabled=["true" | "false"]

          android:excludeFromRecents=["true" | "false"]

          android:exported=["true" | "false"]

          android:finishOnTaskLaunch=["true" | "false"]

          android:icon="drawable resource"

          android:label="string resource"

          android:launchMode=["multiple" | "singleTop" |

                              "singleTask" | "singleInstance"]

          android:multiprocess=["true" | "false"]

          android:name="string"

          android:noHistory=["true" | "false"] 

          android:permission="string"

          android:process="string"

          android:screenOrientation=["unspecified" | "user" | "behind" |

                                     "landscape" | "portrait" |

                                     "sensor" | "nosensor"]

          android:stateNotNeeded=["true" | "false"]

          android:taskAffinity="string"

          android:theme="resource or theme"

          android:windowSoftInputMode=["stateUnspecified",

                                       "stateUnchanged", "stateHidden",

                                       "stateAlwaysHidden", "stateVisible",

                                     "stateAlwaysVisible", "adjustUnspecified",

                                       "adjustResize", "adjustPan"] >  

</activity>

(注:有些在application中重复的就不多阐述了)

1android:alwaysRetainTaskState

 是否保留状态不变, 比如切换回home, 再从新打开,activity处于最后的状态。比如一个浏览器拥有很多状态(当打开了多个TAB的时候),用户并不希望丢失这些状态时,此时可将此属性设置为true

2android:clearTaskOnLaunch

比如 是 activity, Q 是被触发的 activity, 然后返回Home, 重新启动 P,是否显示 Q

3android:configChanges

当配置list发生修改时, 是否调用 onConfigurationChanged() 方法  比如 "locale|navigation|orientation".

这个我用过,主要用来看手机方向改变的. android手机在旋转后,layout会重新布局如何做到呢?

正常情况下如果手机旋转了.当前Activity后杀掉,然后根据方向重新加载这个Activity. 就会从onCreate开始重新加载.

如果你设置了 这个选项当手机旋转后,当前Activity之后调用onConfigurationChanged() 方法而不跑onCreate方法等.

4android:excludeFromRecents

是否可被显示在最近打开的activity列表里,默认是false

5android:finishOnTaskLaunch

当用户重新启动这个任务的时候,是否关闭已打开的activity,默认是false

如果这个属性和allowTaskReparenting都是true,这个属性就是王牌。Activity的亲和力将被忽略。该Activity已经被摧毁并非re-parented

6android:launchMode(Activity加载模式)

在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个 Activity实例,而不是产生大量重复的Activity。这需要为Activity配置特定的加载模式,而不是使用默认的加载模式

Activity有四种加载模式:

standardsingleTopsingleTasksingleInstance(其中前两个是一组、后两个是一组),默认为standard

standard:就是intent将发送给新的实例,所以每次跳转都会生成新的activity

singleTop:也是发送新的实例,但不同standard的一点是,在请求的Activity正好位于栈顶时(配置成singleTopActivity),不会构造新的实例

singleTask:和后面的singleInstance都只创建一个实例,当intent到来,需要创建设置为singleTaskActivity的时候,系统会检查栈里面是否已经有该Activity的实例。如果有直接将intent发送给它。

singleInstance

首先说明一下task这个概念,Task可以认为是一个栈,可放入多个Activity。比如启动一个应用,那么Android就创建了一个 Task,然后启动这个应用的入口Activity,那在它的界面上调用其他的Activity也只是在这个task里面。那如果在多个task中共享一个Activity的话怎么办呢。举个例来说,如果开启一个导游服务类的应用程序,里面有个Activity是开启GOOGLE地图的,当按下home键退回到主菜单又启动GOOGLE地图的应用时,显示的就是刚才的地图,实际上是同一个Activity,实际上这就引入了singleInstance。 singleInstance模式就是将该Activity单独放入一个栈中,这样这个栈中只有这一个Activity,不同应用的intent都由这个 Activity接收和展示,这样就做到了共享。当然前提是这些应用都没有被销毁,所以刚才是按下的HOME键,如果按下了返回键,则无效

7android:multiprocess

是否允许多进程,默认是false

具体可看该篇文章:http://www.bangchui.org/simple/?t3181.html

8android:noHistory

当用户从Activity上离开并且它在屏幕上不再可见时,Activity是否从Activity stack中清除并结束。默认是falseActivity不会留下历史痕迹

9android:screenOrientation

activity显示的模式

默认为unspecified:由系统自动判断显示方向

landscape横屏模式,宽度比高度大

portrait竖屏模式高度比宽度大

user模式,用户当前首选的方向

behind模式:和该Activity下面的那个Activity的方向一致(Activity堆栈中的)

sensor模式:有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换

nosensor模式:忽略物理感应器,这样就不会随着用户旋转设备而更改了

10android:stateNotNeeded

activity被销毁或者成功重启时是否保存状态

11android:windowSoftInputMode

activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。

这个属性能影响两件事情:

A】当有焦点产生时,软键盘是隐藏还是显示

B】是否减少活动主窗口大小以便腾出空间放软键盘

各值的含义:

AstateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置

BstateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示

CstateHidden:用户选择activity时,软键盘总是被隐藏

DstateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的

EstateVisible:软键盘通常是可见的

FstateAlwaysVisible:用户选择activity时,软键盘总是显示的状态

GadjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示

HadjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间

IadjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

4、第四层(<intent-filter>)

结构图:

<intent-filter  android:icon="drawable resource"

               android:label="string resource"

               android:priority="integer" >

      <action />

      <category />

      <data />

</intent-filter>

intent-filter属性

android:priority(解释:有序广播主要是按照声明的优先级别,如A的级别高于B,那么,广播先传给A,再传给B。优先级别就是用设置priority属性来确定,范围是从-10001000,数越大优先级别越高)

Intent filter内会设定的资料包括action,datacategory三种。也就是说filter只会与intent里的这三种资料作对比动作

action属性

action很简单,只有android:name这个属性。

常见的android:name值为android.intent.action.MAIN,表明此activity是作为应用程序的入口。有关android:name具体有哪些值,可参照这个网址:

http://hi.baidu.com/linghtway/blog/item/83713cc1c2d053170ff477a7.html

category属性

category也只有android:name属性。

常见的android:name值为android.intent.category.LAUNCHER(决定应用程序是否显示在程序列表里)

有关android:name具体有哪些值,可参照这个网址:

http://chroya.javaeye.com/blog/685871

data属性

<data  android:host="string"

      android:mimeType="string"

      android:path="string"

      android:pathPattern="string"

      android:pathPrefix="string"

      android:port="string"

      android:scheme="string"/>

1】每个<data>元素指定一个URI和数据类型(MIME类型)。它有四个属性schemehostportpath对应于URI的每个部分:

scheme://host:port/path

scheme的值一般为"http"host为包名,port为端口号,path为具体地址。如:http://com.test.project:200/folder/etc

其中hostport合起来构成URI的凭据(authority),如果host没有指定,则port也会被忽略

要让authority有意义,scheme也必须要指定。要让path有意义,scheme+authority也必须要指定

2mimeType(指定数据类型),若mimeType'Image',则会从content Provider的指定地址中获取image类型的数据。还有'video'啥的,若设置为video/mp4,则表示在指定地址中获取mp4格式的video文件

3】而pathPatternPathPrefix主要是为了格式化path所使用的

5、第四层<meta-data>

<meta-data android:name="string"

           android:resource="resource specification"

           android:value="string"/>

这是该元素的基本结构.可以包含在<activity> <activity-alias> <service> <receiver>四个元素中。

android:name(解释:元数据项的名字,为了保证这个名字是唯一的,采用java风格的命名规范,如com.woody.project.fried)

android:resource(解释:资源的一个引用,指定给这个项的值是该资源的id。该id可以通过方法Bundle.getInt()来从meta-data中找到。)

android:value(解释:指定给这一项的值。

可以作为值来指定的数据类型并且组件用来找回那些值的Bundle方法:[getString],[getInt],[getFloat],[getString],[getBoolean])

6、第三层<activity-alias>属性

<activity-alias android:enabled=["true" | "false"]

                android:exported=["true" | "false"]

                android:icon="drawable resource"

                android:label="string resource"

                android:name="string"

                android:permission="string"

                android:targetActivity="string">

<intent-filter/>

<meta-data/>

</activity-alias>

<activity-alias>是为activity创建快捷方式的,如下实例:

<activity android:name=".shortcut">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

            </intent-filter>

</activity>

 <activity-alias android:name=".CreateShortcuts" 

android:targetActivity=".shortcut" android:label="@string/shortcut">

    <intent-filter>

             <action android:name="android.intent.action.CREATE_SHORTCUT" />

             <category android:name="android.intent.category.DEFAULT" />

     </intent-filter>

 </activity-alias>

其中android.targetActivity是指向对应快捷方式的activity,如上述的shortcut(Activity)

android:label是指快捷方式的名称,而快捷方式的图标默认是给定的application图标

7、第三层<service>

1serviceactivity同级,与activity不同的是,它不能自己启动的,运行在后台的程序,如果我们退出应用时,Service进程并没有结束,它仍然在后台运行。比如听音乐,网络下载数据等,都是由service运行的

2service生命周期:Service只继承了onCreate(),onStart(),onDestroy()三个方法,第一次启动 Service时,先后调用了onCreate(),onStart()这两个方法,当停止Service时,则执行onDestroy()方法,如果 Service已经启动了,当我们再次启动Service时,不会在执行onCreate()方法,而是直接执行onStart()方法

3serviceactivity间的通信

Service后端的数据最终还是要呈现在前端Activity之上的,因为启动Service时,系统会重新开启一个新的进程,这就涉及到不同进程间通信的问题了(AIDL)Activityservice间的通信主要用IBinder负责。具体可参照:http://zhangyan1158.blog.51cto.com/2487362/491358

4

<service android:enabled=["true" | "false"]

         android:exported[="true" | "false"]

         android:icon="drawable resource"

         android:label="string resource"

         android:name="string"

         android:permission="string"

         android:process="string">

</service>

service标签内的属性之前已有描述,在此不重复了~

8、第三层<receiver>

receiver的属性与service一样,这里就不显示了

BroadcastReceiver:用于发送广播,broadcast是在应用程序之间传输信息的一种机制,而BroadcastReceiver是对发送出来的 Broadcast进行过滤接受并响应的一类组件,具体参照http://kevin2562.javaeye.com/blog/686787

9、第三层<provider>属性

<provider android:authorities="list"

          android:enabled=["true" | "false"]

          android:exported=["true" | "false"]

          android:grantUriPermissions=["true" | "false"]

          android:icon="drawable resource"

          android:initOrder="integer"

          android:label="string resource"

          android:multiprocess=["true" | "false"]

          android:name="string"

          android:permission="string"

          android:process="string"

          android:readPermission="string"

          android:syncable=["true" | "false"]

          android:writePermission="string">

           <grant-uri-permission/>

           <meta-data/>

</provider>

contentProvider(数据存储)

1android:authorities

标识这个ContentProvider,调用者可以根据这个标识来找到它

2android:grantUriPermission

对某个URI授予的权限

3android:initOrder

10、第三层<uses-library>

用户库,可自定义。所有android的包都可以引用

11、第一层<supports-screens>

<supports-screens  android:smallScreens=["true" | "false"]

                  android:normalScreens=["true" | "false"]

                  android:largeScreens=["true" | "false"]

                  android:anyDensity=["true" | "false"] />

这是在android1.6以后的新特性,支持多屏幕机制

各属性含义:这四个属性,是否支持大屏,是否支持中屏,是否支持小屏,是否支持多种不同密度

12、第二层<uses-configuration /><uses-feature>性能都差不多

<uses-configuration  android:reqFiveWayNav=["true" | "false"]

                    android:reqHardKeyboard=["true" | "false"]

                    android:reqKeyboardType=["undefined" | "nokeys" | "qwerty" |   "twelvekey"]

                    android:reqNavigation=["undefined" | "nonav" | "dpad" |  "trackball" | "wheel"]

                    android:reqTouchScreen=["undefined" | "notouch" | "stylus" | "finger"] />

<uses-feature android:glEsVersion="integer"

              android:name="string"

              android:required=["true" | "false"] />

这两者都是在描述应用所需要的硬件和软件特性,以便防止应用在没有这些特性的设备上安装。

13、第二层<uses-sdk />

<uses-sdk android:minSdkVersion="integer"

          android:targetSdkVersion="integer"

          android:maxSdkVersion="integer"/>

描述应用所需的api level,就是版本,目前是android 2.2 = 8android2.1 = 7android1.6 = 4android1.5=3

在此属性中可以指定支持的最小版本,目标版本以及最大版本

14、第二层<instrumentation />

<instrumentation android:functionalTest=["true" | "false"]

                 android:handleProfiling=["true" | "false"]

                 android:icon="drawable resource"

                 android:label="string resource"

                 android:name="string"

                 android:targetPackage="string"/>

 定义一些用于探测和分析应用性能等等相关的类,可以监控程序。在各个应用程序的组件之前instrumentation类被实例化

android:functionalTest(解释:instrumentation类是否能运行一个功能测试,默认为false)

15<permission><uses-permission><permission-tree /><permission-group />区别~

最常用的当属<uses-permission>,当我们需要获取某个权限的时候就必须在我们的manifest文件中声明,此<uses-permission><application>同级,具体权限列表请看此处

通常情况下我们不需要为自己的应用程序声明某个权限,除非你提供了供其他应用程序调用的代码或者数据。这个时候你才需要使用<permission> 这个标签。很显然这个标签可以让我们声明自己的权限。比如:

<permission android:name="com.teleca.project.MY_SECURITY" . . . />

那么在activity中就可以声明该自定义权限了,如:

<application . . .>

        <activity android:name="XXX" . . . >

                  android:permission="com.teleca.project.MY_SECURITY"> </activity>

 </application>

当然自己声明的permission也不能随意的使用,还是需要使用<uses-permission>来声明你需要该权限

<permission-group> 就是声明一个标签,该标签代表了一组permissions,而<permission-tree>是为一组permissions声明了一个namespace

四、Android Intent Action

String  ADD_SHORTCUT_ACTION  动作:在系统中添加一个快捷方式。 "android.intent.action.ADD_SHORTCUT"

String  ALL_APPS_ACTION  动作:列举所有可用的应用。

输入:无。  "android.intent.action.ALL_APPS"

String  ALTERNATIVE_CATEGORY  类别:说明 activity 是用户正在浏览的数据的一个可选操作。  "android.intent.category.ALTERNATIVE"

String  ANSWER_ACTION  动作:处理拨入的电话。  "android.intent.action.ANSWER"

String  BATTERY_CHANGED_ACTION  广播:充电状态,或者电池的电量发生变化。  "android.intent.action.BATTERY_CHANGED"

String  BOOT_COMPLETED_ACTION  广播:在系统启动后,这个动作被广播一次(只有一次)。  "android.intent.action.BOOT_COMPLETED"

String  BROWSABLE_CATEGORY  类别:能够被浏览器安全使用的 activities 必须支持这个类别。  "android.intent.category.BROWSABLE"

String  BUG_REPORT_ACTION  动作:显示 activity 报告错误。  "android.intent.action.BUG_REPORT"

String  CALL_ACTION  动作:拨打电话,被呼叫的联系人在数据中指定。  "android.intent.action.CALL"

String  CALL_FORWARDING_STATE_CHANGED_ACTION  广播:语音电话的呼叫转移状态已经改变。  "android.intent.action.CFF"

String  CLEAR_CREDENTIALS_ACTION  动作:清除登陆凭证 (credential)。  "android.intent.action.CLEAR_CREDENTIALS"

String  CONFIGURATION_CHANGED_ACTION  广播:设备的配置信息已经改变,参见 Resources.Configuration.  "android.intent.action.CONFIGURATION_CHANGED"

Creator  CREATOR  无  无

String  DATA_ACTIVITY_STATE_CHANGED_ACTION  广播:电话的数据活动(data activity)状态(即收发数据的状态)已经改变。  "android.intent.action.DATA_ACTIVITY"

String  DATA_CONNECTION_STATE_CHANGED_ACTION  广播:电话的数据连接状态已经改变。  "android.intent.action.DATA_STATE"

String  DATE_CHANGED_ACTION  广播:日期被改变。  "android.intent.action.DATE_CHANGED"

String  DEFAULT_ACTION  动作:和 VIEW_ACTION 相同,是在数据上执行的标准动作。  "android.intent.action.VIEW"

String  DEFAULT_CATEGORY  类别:如果 activity 是对数据执行缺省动作(点击, center press)的一个选项,需要设置这个类别。

  "android.intent.category.DEFAULT"

String  DELETE_ACTION  动作:从容器中删除给定的数据。  "android.intent.action.DELETE"

String  DEVELOPMENT_PREFERENCE_CATEGORY  类别:说明 activity 是一个设置面板 (development preference panel).

  "android.intent.category.DEVELOPMENT_PREFERENCE"

String  DIAL_ACTION  动作:拨打数据中指定的电话号码。  "android.intent.action.DIAL"

String  EDIT_ACTION  动作:为指定的数据显示可编辑界面。

  "android.intent.action.EDIT"

String  EMBED_CATEGORY  类别:能够在上级(父)activity 中运行。  "android.intent.category.EMBED"

String  EMERGENCY_DIAL_ACTION  动作:拨打紧急电话号码。  "android.intent.action.EMERGENCY_DIAL"

int  FORWARD_RESULT_LAUNCH  启动标记:如果这个标记被设置,而且被一个已经存在的 activity 用来启动新的 activity,已有 activity 的回复目标 (reply target) 会被转移给新的 activity。  16 0x00000010

String  FOTA_CANCEL_ACTION  广播:取消所有被挂起的 (pending) 更新下载。  "android.server.checkin.FOTA_CANCEL"

String  FOTA_INSTALL_ACTION  广播:更新已经被确认,马上就要开始安装。  "android.server.checkin.FOTA_INSTALL"

String  FOTA_READY_ACTION  广播:更新已经被下载,可以开始安装。  "android.server.checkin.FOTA_READY"

String  FOTA_RESTART_ACTION  广播:恢复已经停止的更新下载。  "android.server.checkin.FOTA_RESTART"

String  FOTA_UPDATE_ACTION  广播:通过 OTA 下载并安装操作系统更新。  "android.server.checkin.FOTA_UPDATE"

String  FRAMEWORK_INSTRUMENTATION_TEST_CATEGORY  类别:To be used as code under test for framework instrumentation tests.  "android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST"

String  GADGET_CATEGORY  类别:这个 activity 可以被嵌入宿主 activity (activity that is hosting gadgets)。  "android.intent.category.GADGET"

String  GET_CONTENT_ACTION  动作:让用户选择数据并返回。  "android.intent.action.GET_CONTENT"

String  HOME_CATEGORY  类别:主屏幕 (activity),设备启动后显示的第一个 activity。  "android.intent.category.HOME"

String  INSERT_ACTION  动作:在容器中插入一个空项 (item)。  "android.intent.action.INSERT"

String  INTENT_EXTRA  附加数据:和 PICK_ACTIVITY_ACTION 一起使用时,说明用户选择的用来显示的 activity;和 ADD_SHORTCUT_ACTION 一起使用的时候,描述要添加的快捷方式。  "android.intent.extra.INTENT"

String  LABEL_EXTRA  附加数据:大写字母开头的字符标签,和 ADD_SHORTCUT_ACTION 一起使用。  "android.intent.extra.LABEL"

String  LAUNCHER_CATEGORY  类别:Activity 应该被显示在顶级的 launcher 中。  "android.intent.category.LAUNCHER"

String  LOGIN_ACTION  动作:获取登录凭证。

  "android.intent.action.LOGIN"

String  MAIN_ACTION  动作:作为主入口点启动,不需要数据。 

"android.intent.action.MAIN"

String  MEDIABUTTON_ACTION  广播:用户按下了“Media Button”。  "android.intent.action.MEDIABUTTON"

String  MEDIA_BAD_REMOVAL_ACTION  广播:扩展介质(扩展卡)已经从 SD 卡插槽拔出,但是挂载点 (mount point) 还没解除 (unmount)。  "android.intent.action.MEDIA_BAD_REMOVAL"

String  MEDIA_EJECT_ACTION  广播:用户想要移除扩展介质(拔掉扩展卡)。  "android.intent.action.MEDIA_EJECT"

String  MEDIA_MOUNTED_ACTION  广播:扩展介质被插入,而且已经被挂载。  "android.intent.action.MEDIA_MOUNTED"

String  MEDIA_REMOVED_ACTION  广播:扩展介质被移除。  "android.intent.action.MEDIA_REMOVED"

String  MEDIA_SCANNER_FINISHED_ACTION  广播:已经扫描完介质的一个目录。  "android.intent.action.MEDIA_SCANNER_FINISHED"

String  MEDIA_SCANNER_STARTED_ACTION  广播:开始扫描介质的一个目录。  "android.intent.action.MEDIA_SCANNER_STARTED"

String  MEDIA_SHARED_ACTION  广播:扩展介质的挂载被解除 (unmount),因为它已经作为 USB 大容量存储被共享。  "android.intent.action.MEDIA_SHARED"

String  MEDIA_UNMOUNTED_ACTION  广播:扩展介质存在,但是还没有被挂载 (mount)。  "android.intent.action.MEDIA_UNMOUNTED"

String  MESSAGE_WAITING_STATE_CHANGED_ACTION  广播:电话的消息等待(语音邮件)状态已经改变。  "android.intent.action.MWI"

int  MULTIPLE_TASK_LAUNCH  启动标记:和 NEW_TASK_LAUNCH 联合使用,禁止将已有的任务改变为前景任务 (foreground)。  8 0x00000008

String  NETWORK_TICKLE_RECEIVED_ACTION  广播:设备收到了新的网络 "tickle" 通知。  "android.intent.action.NETWORK_TICKLE_RECEIVED"

int  NEW_TASK_LAUNCH  启动标记:设置以后,activity 将成为历史堆栈中的第一个新任务(栈顶)。  4 0x00000004

int  NO_HISTORY_LAUNCH  启动标记:设置以后,新的 activity 不会被保存在历史堆栈中。  1 0x00000001

String  PACKAGE_ADDED_ACTION  广播:设备上新安装了一个应用程序包。  "android.intent.action.PACKAGE_ADDED"

String  PACKAGE_REMOVED_ACTION  广播:设备上删除了一个应用程序包。  "android.intent.action.PACKAGE_REMOVED"

String  PHONE_STATE_CHANGED_ACTION  广播:电话状态已经改变。  "android.intent.action.PHONE_STATE"

String  PICK_ACTION  动作:从数据中选择一个项目 (item),将被选中的项目返回。  "android.intent.action.PICK"

String  PICK_ACTIVITY_ACTION  动作:选择一个 activity,返回被选择的 activity 的类(名)。  "android.intent.action.PICK_ACTIVITY"

String  PREFERENCE_CATEGORY  类别:activity是一个设置面板 (preference panel)。  "android.intent.category.PREFERENCE"

String  PROVIDER_CHANGED_ACTION  广播:更新将要(真正)被安装。  "android.intent.action.PROVIDER_CHANGED"

String  PROVISIONING_CHECK_ACTION  广播:要求 polling of provisioning service 下载最新的设置。  "android.intent.action.PROVISIONING_CHECK"

String  RUN_ACTION  动作:运行数据(指定的应用),无论它(应用)是什么。  "android.intent.action.RUN"

String  SAMPLE_CODE_CATEGORY  类别:To be used as an sample code example (not part of the normal user experience). 

"android.intent.category.SAMPLE_CODE"

String  SCREEN_OFF_ACTION  广播:屏幕被关闭。

  "android.intent.action.SCREEN_OFF"

String  SCREEN_ON_ACTION  广播:屏幕已经被打开。

  "android.intent.action.SCREEN_ON"

String  SELECTED_ALTERNATIVE_CATEGORY  类别:对于被用户选中的数据,activity 是它的一个可选操作。

  "android.intent.category.SELECTED_ALTERNATIVE"

String  SENDTO_ACTION  动作:向 data 指定的接收者发送一个消息。  "android.intent.action.SENDTO"

String  SERVICE_STATE_CHANGED_ACTION  广播:电话服务的状态已经改变。  "android.intent.action.SERVICE_STATE"

String  SETTINGS_ACTION  动作:显示系统设置。输入:无。

  "android.intent.action.SETTINGS"

String  SIGNAL_STRENGTH_CHANGED_ACTION  广播:电话的信号强度已经改变。  "android.intent.action.SIG_STR"

int  SINGLE_TOP_LAUNCH  启动标记:设置以后,如果 activity 已经启动,而且位于历史堆栈的顶端,将不再启动(不重新启动) activity。  2 0x00000002

String  STATISTICS_REPORT_ACTION  广播:要求 receivers 报告自己的统计信息。  "android.intent.action.STATISTICS_REPORT"

String  STATISTICS_STATE_CHANGED_ACTION  广播:统计信息服务的状态已经改变。  "android.intent.action.STATISTICS_STATE_CHANGED"

String  SYNC_ACTION  动作:执行数据同步。  "android.intent.action.SYNC"

String  TAB_CATEGORY  类别:这个 activity 应该在 TabActivity 中作为一个 tab 使用。  "android.intent.category.TAB"

String  TEMPLATE_EXTRA  附加数据:新记录的初始化模板。

  "android.intent.extra.TEMPLATE"

String  TEST_CATEGORY  类别:作为测试目的使用,不是正常的用户体验的一部分。  "android.intent.category.TEST"

String  TIMEZONE_CHANGED_ACTION  广播:时区已经改变。

  "android.intent.action.TIMEZONE_CHANGED"

String  TIME_CHANGED_ACTION  广播:时间已经改变(重新设置)。

  "android.intent.action.TIME_SET"

String  TIME_TICK_ACTION  广播:当前时间已经变化(正常的时间流逝)。  "android.intent.action.TIME_TICK"

String  UMS_CONNECTED_ACTION  广播:设备进入 USB 大容量存储模式。  "android.intent.action.UMS_CONNECTED"

String  UMS_DISCONNECTED_ACTION  广播:设备从 USB 大容量存储模式退出。  "android.intent.action.UMS_DISCONNECTED"

String  UNIT_TEST_CATEGORY  类别:应该被用作单元测试(通过 test harness 运行)。  "android.intent.category.UNIT_TEST"

String  VIEW_ACTION  动作:向用户显示数据。  "android.intent.action.VIEW"

String  WALLPAPER_CATEGORY  类别:这个 activity 能过为设备设置墙纸。  "android.intent.category.WALLPAPER"

String  WALLPAPER_CHANGED_ACTION  广播:系统的墙纸已经改变。  "android.intent.action.WALLPAPER_CHANGED"

String  WALLPAPER_SETTINGS_ACTION  动作:显示选择墙纸的设置界面。输入:无。  "android.intent.action.WALLPAPER_SETTINGS"

String  WEB_SEARCH_ACTION  动作:执行 web 搜索。

  "android.intent.action.WEB_SEARCH"

String  XMPP_CONNECTED_ACTION  广播:XMPP 连接已经被建立。

  "android.intent.action.XMPP_CONNECTED"

String  XMPP_DISCONNECTED_ACTION  广播:XMPP 连接已经被断开。

  "android.intent.action.XMPP_DI

五、其它与AndroidManifest.xml相关的介绍

AndroidManifest.xml是每一个应用都需要的文件, 位于应用根目录下,它 描述了程序包的全局变量包括暴露的应用组件(activities, services等等)和为每个组件的实现类, 什么样的数据可以操作, 以及在什么地方运行。

主要包括以下各个元素。

A.包名(package):指定本应用内java主程序包的包名。当没有指定apk的文件名时,编译后产生程序包将以此命名。本包名应当在Android系统运行时唯一。

B.认证(certificate):指定本应用程序所授予的信任级别,目前有的认证级别有platform(system)sharedmedia以及应用自定义的认证。不同的认证可以享受不同的权限。

C.权限组(permission-group):权限组的定义是为了描述一组具有共同特性的权限。

D. 权限(permission):权限用来描述是否拥有做某件事的权力。Android系统中权限是分级的,前分为普通级别(Normal),危险级别 (dangerous),签名级别(signature)和系统/签名级别(signature or system)。系统中所有预定义的权限根据作用的不同,分别属于不同的级别。对于普通和危险级别的权限,我们称之为低级权限,应用申请即授予。其他两级权限,我们称之为高级权限或系统权限,应用拥有platform级别的认证才能申请。当应用试图在没有权限的情况下做受限操作,应用将被系统杀掉以警示。系统应用可以使用任何权限。权限的声明者可无条件使用该权限。

E.权限树(permission-tree)权限树的设置是为了统一管理一组权限,声明于该树下的权限所有者归属该应用。系统提供了API,应用可以在运行时动态添加。 PackageManager.addPermission()

F.使用权限(uses-permission):应用需要的权限应当在此处申请,所申请的权限应当被系统或某个应用所定义,否则视为无效申请。同时,使用权限的申请需要遵循权限授予条件,非platform认证的应用无法申请高级权限。

G:SDKuses-sdk:标识本应用运行的SDK版本。高兼容性的应用可以忽略此项。

H.application:application Android应用内最高级别(top level)的模块,每个应用内最多只能有一个application,如果应用没有指定该模块,一个默认的application将被启用。 application将在应用启动时最先被加载,并存活在应用的整个运行时生命周期。因此一些初始化的工作适合在本模块完成. Application元素有许多属性,其中:“persistent”表示本应用是否为常驻内存,“enable”表示本应用当前是否应当被加载。

H. 在某些情况下,Android需要知道一个Activity属于哪个Task,即使它没有被启动到一个具体的Task里。这是通过任务共用性(Affinities)完成的。任务共用性(Affinities)为这个运行一个或多个ActivityTask提供了一个独特的静态名称,默认的一个活动的任务共用性(Affinity)是实现了该Activity.apk包的名字。

五、uses-permission权限列表

android.permission.ACCESS_CHECKIN_PROPERTIES  允许读写访问”properties”表在checkin数据库中,改值可以修改上传

android.permission.ACCESS_COARSE_LOCATION   允许一个程序访问CellIDWiFi来获取粗略的位置

android.permission.ACCESS_FINE_LOCATION   允许一个程序访问精良位置(GPS)

android.permission.ACCESS_LOCATION_EXTRA_COMMANDS  允许应用程序访问额外的位置提供命令<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

android.permission.ACCESS_MOCK_LOCATION   允许程序创建模拟位置用于测试

android.permission.ACCESS_NETWORK_STATE    允许程序访问有关的网络信息

android.permission.ACCESS_SURFACE_FLINGER   允许程序使用SurfaceFlinger底层特性

android.permission.ACCESS_WIFI_STATE    允许程序访问Wi-Fi网络状态信息

android.permission.ACCOUNT_MANAGER   允许一个应用程序启动账户认证,该权限只能系统去设置

android.permission.AUTHENTICATE_ACCOUNTS   允许应用程序的验证账户扮演一个账户管理者

android.permission.BATTERY_STATS   允许程序更新手机电池统计信息

android.permission.BIND_APPWIDGET    允许应用告诉AppWidget哪个应用能够访问该AppWidget的数据

android.permission.BIND_DEVICE_ADMIN    必须通过关机接收者的请求,来确保只有系统能够与之交互

android.permission.BIND_INPUT_METHOD    必须通过InputMethodService的请求,来确保只有系统能够与之绑定

android.permission.BIND_WALLPAPER    必须通过WallpaperService的请求,来确保只有系统能够与之绑定

android.permission.BLUETOOTH   允许程序连接到已配对的蓝牙设备

android.permission.BLUETOOTH_ADMIN   允许程序发现和配对蓝牙设备

android.permission.BRICK   请求能够禁用设备(非常危险)

android.permission.BROADCAST_PACKAGE_REMOVED    允许应用发出一个程序包被移除的广播消息

android.permission.BROADCAST_SMS    允许应用发出一个收到短信的消息

android.permission.BROADCAST_STICKY   允许应用发出一个与intent相连的消息

android.permission.BROADCAST_WAP_PUSH    允许应用发出一个收到WAP PUSH的广播消息

android.permission.CALL_PHONE    允许一个程序初始化一个电话拨号,不需通过拨号用户界面需要用户确认

android.permission.CALL_PRIVILEGED    允许一个程序拨打任何号码,包含紧急号码无需通过拨号用户界面需要用户确认

android.permission.CAMERA    请求访问使用照相设备

android.permission.CHANGE_COMPONENT_ENABLED_STATE    允许一个程序是否改变一个组件或其他的启用或禁用

android.permission.CHANGE_CONFIGURATION   允许一个程序修改当前设置,如本地化

android.permission.CHANGE_NETWORK_STATE    允许程序改变网络连接状态

android.permission.CHANGE_WIFI_STATE   允许程序改变Wi-Fi连接状态

android.permission.CLEAR_APP_CACHE   允许一个程序在设备中清除所有安装的程序的缓存

android.permission.CLEAR_APP_USER_DATA   允许一个程序清除用户数据

android.permission.CONTROL_LOCATION_UPDATES    允许启用禁止位置更新提示从无线模块

android.permission.DELETE_CACHE_FILES    允许程序删除缓存文件

android.permission.DELETE_PACKAGES   允许一个程序删除包

android.permission.DEVICE_POWER    允许访问底层电源管理

android.permission.DIAGNOSTIC   允许程序RW诊断资源

android.permission.DISABLE_KEYGUARD   允许程序禁用键盘锁

android.permission.DUMP    允许程序返回状态抓取信息从系统服务

android.permission.EXPAND_STATUS_BAR  允许一个程序扩展收缩在状态栏

android.permission.FACTORY_TEST  作为一个工厂测试程序,运行在root用户

android.permission.FLASHLIGHT   允许访问闪光灯,其中HTC Dream不包含闪光灯

android.permission.FORCE_BACK   允许应用强制执行返回操作而不论是不是最终的activity

android.permission.GET_ACCOUNTS   允许访问在Accounts Service中的一个帐户列表

android.permission.GET_PACKAGE_SIZE   允许一个程序获取任何package占用空间容量

android.permission.GET_TASKS    允许一个程序获取信息有关当前或最近运行的任务,一个缩略的任务状态,是否活动等等

android.permission.GLOBAL_SEARCH   可以被内容提供者用来允许使用全程搜索他们的数据

android.permission.HARDWARE_TEST   允许访问硬件

android.permission.INJECT_EVENTS    允许一个程序截获用户事件如按键、触摸、轨迹球等等到一个时间流

android.permission.INSTALL_PACKAGES    允许一个程序安装

android.permission.INTERNAL_SYSTEM_WINDOW    允许打开窗口使用系统用户界面

android.permission.INTERNET    允许程序打开网络

android.permission.KILL_BACKGROUND_PROCESSES   允许应用去呼叫

android.permission.MANAGE_ACCOUNTS 允许程序去管理账户列表

android.permission.MANAGE_APP_TOKENS 允许程序管理程序引用在窗口管理器中<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

android.permission.MASTER_CLEAR 目前还没有明确的解释

android.permission.MODIFY_AUDIO_SETTINGS 允许程序修改全局音频设置

android.permission.MODIFY_PHONE_STATE 允许修改话机状态,如电源,人机接口等

android.permission.MODIFY_FORMAT_FILESYSTEMS 允许格式化可移除的存储仓库的文件系统

android.permission.MOUNT_UNMOUNT_FILESYSTEMS 允许挂载和反挂载文件系统可移动存储

android.permission.PERSISTENT_ACTIVITY 允许一个程序设置他的activities显示

android.permission.PROCESS_OUTGOING_CALLS 允许程序监视、修改有关播出电话

android.permission.READ_CALENDAR 允许程序读取用户日历数据

android.permission.READ_CONTACTS 允许程序读取用户联系人数据

android.permission.READ_FRAME_BUFFER 允许程序屏幕波或和更多常规的访问帧缓冲数据

android.permission.READ_HISTORY_BOOKMARKS 允许应用去读取(非写)用户浏览历史和书签

android.permission.READ_INPUT_STATE 允许程序返回当前按键状态

android.permission.READ_LOGS 允许程序读取底层系统日志文件

android.permission.READ_OWNER_DATA 允许程序读取所有者数据

android.permission.READ_PHONE_STATE 允许读取电话的状态

android.permission.READ_SMS 允许程序读取短信息

android.permission.READ_SYNC_SETTINGS 允许程序读取同步设置

android.permission.READ_SYNC_STATS 允许程序读取同步状态

android.permission.REBOOT 请求能够重新启动设备

android.permission.RECEIVE_BOOT_COMPLETED 允许一个程序接收到ACTION_BOOT_COMPLETED广播在系统完成启动

android.permission.RECEIVE_MMS 允许一个程序监控将收到MMS彩信,记录或处理

android.permission.RECEIVE_SMS 允许程序监控一个将收到短信息,记录或处理

android.permission.RECEIVE_WAP_PUSH 允许程序监控将收到WAP PUSH信息

android.permission.RECORD_AUDIO 允许程序录制音频

android.permission.REORDER_TASKS 允许程序改变Z轴排列任务

android.permission.RESTART_PACKAGES 允许程序重新启动其他程序(此值已废弃使用)

android.permission.SEND_SMS 允许程序发送SMS短信

android.permission.SET_ACTIVITY_WATCHER 允许程序监控或控制activities已经启动全局系统中

android.permission.SET_ALWAYS_FINISH 允许程序控制是否活动间接完成在处于后台时

android.permission.SET_ANIMATION_SCALE 修改全局信息比例

android.permission.SET_DEBUG_APP 配置一个程序用于调试

android.permission.SET_ORIENTATION 允许底层访问设置屏幕方向和实际旋转

android.permission.SET_PREFERRED_APPLICATIONS 允许一个程序修改列表参数PackageManager.addPackageToPreferred()PackageManager.removePackageFromPreferred()方法

android.permission.SET_PROCESS_LIMIT 允许设置最大的运行进程数量

android.permission.SET_TIME 允许应用设置系统时间

android.permission.SET_TIME_ZONE 允许程序设置系统时区时间

android.permission.SET_WALLPAPER 允许程序设置壁纸

android.permission.SET_WALLPAPER_HINTS 允许程序设置壁纸hits

android.permission.SIGNAL_PERSISTENT_PROCESSES 允许程序请求发送信号到所有显示的进程中

android.permission.STATUS_BAR 允许程序打开、关闭或禁用状态栏及图标

android.permission.SUBSCRIBED_FEEDS_READ 允许一个程序访问订阅RSS Feed内容提供

android.permission.SUBSCRIBED_FEEDS_WRITE 系统暂时保留改设置,

android.permission.SYSTEM_ALERT_WINDOW 允许一个程序打开窗口使用TYPE_SYSTEM_ALERT,显示在其他所有程序的顶层

android.permission.UPDATE_DEVICE_STATS 允许应用更新设备资料信息

android.permission.USE_CREDENTIALS 允许应用从管理器得到授权请求

android.permission.VIBRATE 允许访问振动设备

android.permission.WAKE_LOCK 允许使用PowerManagerWakeLocks保持进程在休眠时从屏幕消失

android.permission.WRITE_APN_SETTINGS 允许程序写入API设置

android.permission.WRITE_CALENDAR 允许一个程序写入但不读取用户日历数据

android.permission.WRITE_CONTACTS 允许程序写入但不读取用户联系人数据

android.permission.WRITE_EXTERNAL_STORAGE 允许应用写(非读)用户的外部存储器

android.permission.WRITE_GSERVICES 允许程序修改Google服务地图

android.permission.WRITE_HISTORY_BOOKMARKS 允许应用写(非读)用户的浏览器历史和书签

android.permission.WRITE_OWNER_DATA 允许一个程序写入但不读取所有者数据

android.permission.WRITE_SECURE_SETTINGS 允许应用写或读当前系统设置

android.permission.WRITE_SETTINGS 允许程序读取或写入系统设置

android.permission.WRITE_SMS 允许程序写短信

android.permission.WRITE_SYNC_SETTINGS 允许程序写入同步设置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值