zoukankan      html  css  js  c++  java
  • 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讲义》

  • 相关阅读:
    用面向对象的方法重写选项卡
    js 深入理解原型模式
    ECMAScript中的两种属性
    引用类型
    js 变量、作用域和内存问题
    html5 canvas画布尺寸与显示尺寸
    网页画板制作
    了解数组中的队列方法,DOM中节点的一些操作
    JavaScript中的数组对象遍历、读写、排序等操作
    this在方法赋值过程中无法保持(隐式丢失)
  • 原文地址:https://www.cnblogs.com/xs104/p/4727730.html
Copyright © 2011-2022 走看看