permission和uses feature-permission的区别

3422人阅读
android(3)
转自/?p=1563&cpage=1#comment-20280
在中讲了Android的权限和安全实现机制与原理,这里讲一下AndroidManifest.xml文件中的
&uses-permission&与&permission&之间的区别与用法。
&uses-permission&用法:
&uses-permission android:=&string& /&
为了保证application的正常运行,需要系统授予app的权限声明。这个权限是在用户安装应用的时候授予的。
android:name的值可以是其他app通过声明的,也可以是系统的权限名称,例如
android.permission.CAMERA或android.permission.READ_CONTACTS等等。
注:uses-permission的权限要求说明,可能会引起app在Android Market中的过滤。
&permission&用法:
&permission android:=&string resource&
&&&&&&&&&&& android:=&drawable resource&
&&&&&&&&&&& android:=&string resource&
&&&&&&&&&&& android:=&string&
&&&&&&&&&&& android:=&string&
&&&&&&&&&&& android:=[&normal& | &dangerous& |
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &signature& | &signatureOrSystem&] /&
permission就是自定义权限的声明,可以用来限制app中特殊组件,特性与app内部或者和其他app之间访问。
写了一个引用自定义权限的例子,在安装app的时候,提示权限:
自定义权限如下:
&permission android:label=”自定义权限”
&&& android:description=”@string/hello”
&&& android:name=”com.example.project.PERMITTED_ACTION”
&&& android:protectionLevel=”normal”
&&& android:icon=”@drawable/ic_launcher”&
&/permission&
android:label:权限名字,显示给用户的,值可是一个string数据,例如这里的“自定义权限”。
android:description:比label更长的对权限的描述。值是通过resource文件中获取的,不能直接写string值,例如这里的”@string/hello”。
android:name:权限名字,如果其他app引用该权限需要填写这个名字。
android:protectionLevel:权限级别,分为4个级别:
normal:低风险权限,在安装的时候,系统会自动授予权限给application。
dangerous:高风险权限,系统不会自动授予权限给app,在用到的时候,会给用户提示。
signature:签名权限,在其他app引用声明的权限的时候,需要保证两个app的签名一致。这样系统就会自动授予权限给第三方app,而不提示给用户。
signatureOrSystem:这个权限是引用该权限的app需要有和系统同样的签名才能授予的权限,一般不推荐使用。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:17186次
排名:千里之外
(1)(1)(1)(2)(1)(2)(8)permission和uses-permission的区别_百度知道
permission和uses-permission的区别
我有更好的答案
InstallShortcutReceive使用面定义INSTALL_SHORTCUT权限两者间同作用域同 manifest.xml文件&uses-permission&&application&同级节点般&uses-permission &&/application&面&permission&痛定义&application&&/application&间Activity、Service同级别同使用 group权限组幅减少同类型相似权限声明其二能&uses-permission&官定义权限&permission&自定义权限般情况实际需要自应用程序声明某权限除非提供供其应用程序调用代码或者数据候才需要使用&permission&标签显标签让我声明自程序权限
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁2342人阅读
Android的manifest文件中有四个标签与permission有关,它们分别是&&permission&&&&&permission-group&& &permission-tree&
和&&uses-permission&。其中最常用当然是&&uses-permission&,当我们需要获取某个权限的时候就必须在我们的manifest文件中声明&uses-permission&。而其它三个是不常用的(这句是废话)。通常情况下我们不需要为自己的应用程序声明某个权限,除非你提供了供其他应用程序调用的代码或者数据。这个时候你才需要使用&permission&&这个标签。很显然这个标签可以让我们声明自己的权限。比如偶可以声明
1.&&&&& &permission&android:name=&com.notfatboy.project.VIEW_MYDATA&&.&.&.&/&&&
当偶声明了这个&permission&之后,偶就可以在偶的程序中使用这个permission了,比如在偶的某个activity中用这个权限保护,如下:
1.&&&&& &application&.&.&.&&&
2.&&&&& &&&&&&&&&activity&android:name=&com.notfatboy.project.FileManageActivity&&.&.&.&&&&
3.&&&&& &&&&&&&&&&&&&&&&&&android:permission=&com.notfatboy.project.VIEW_MYDATA&&&
4.&&&&& &&&&&&&&&&&&&&&&&&.&.&.&&&&
5.&&&&& &&&&&&&&&&&&.&.&.&&
6.&&&&& &&&&&&&&&/activity&&&
7.&&&&& &&/application&&&
当然你千万不要以为你自己声明的permission你就可以随意使用,你还是需要使用&uses-permission&来声明你需要该权限,这时你的应用才能正常工作。
&permission-group&& &&permission-tree&这两个标签就更少见了,简单说&permission-group&
就是声明一个标签,该标签代表了一组permissions,而&permission-tree&是为一组permissions声明了一个namespace。这两个标签可以看之前的系列文章。&
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:433154次
积分:4450
积分:4450
排名:第3907名
原创:14篇
转载:252篇
评论:50条
(1)(4)(7)(8)(21)(12)(16)(7)(2)(17)(8)(2)(7)(8)(8)(3)(7)(2)(6)(5)(6)(2)(9)(7)(7)(14)(4)(7)(3)(2)(5)(10)(14)(18)(2)(1)(4)下次自动登录
关注移动互联网和移动APP开发工具、开发框架、测试工具、微信开发、Android源码、Android开源类库以及各种开源组件的IT科技网站
现在的位置:
Android uses-permission权限列表中文注释版
android同时也限定了系统资源的使用,像网络设备,SD卡,录音设备等。如果你的应用希望去使用任何系统资源,我们必须去申请Android的权限。这就是&uses-permission&元素的作用。
一个权限通常有以下格式,用一个名字为name 的字符串去指导我们希望使用的权限。
&uses-permission android:name="string"/&
例如:想要获得networking APIs的使用权限,我们指定如下的元素作为 &manifest&的子元素。
&uses-permission android:name="android.permission.INTERNET"/&
如果还需要添加其他的元素,我们只需简单的添加更多的&uses-permission&就行了。下面是网上收集的关于Android uses-permission资料的中文注释版,方便查找~
//允许应用程序访问和修改checkin数据库中”properties”表数据android.permission.ACCESS_CHECKIN_PROPERTIES//允许应用程序通过WiFi或移动基站获取粗略的位置信息android.permission.ACCESS_COARSE_LOCATION//允许应用程序通过GPS获取精确的位置信息android.permission.ACCESS_FINE_LOCATION//允许应用程序访问额外的位置提供者命令android.permission.ACCESS_LOCATION_EXTRA_COMMANDS//允许应用程序获取模拟定位信息用于开发者调试应用android.permission.ACCESS_MOCK_LOCATION//允许应用程序获取网络信息状态android.permission.ACCESS_NETWORK_STATE//允许应用程序使用SurfaceFlinger底层图形显示支持,一般用于游戏或照相机预览界面和底层模式的屏幕截图android.permission.ACCESS_SURFACE_FLINGER//允许应用程序访问Wi-Fi网络状态信息android.permission.ACCESS_WIFI_STATE//允许应用程序获取账户验证信息,主要为GMail账户信息,只有系统级进程才能访问的权限android.permission.ACCOUNT_MANAGER//允许应用程序使用语音邮件com.android.voicemail.permission.ADD_VOICEMAIL//允许应用程序通过账户验证方式访问账户管理ACCOUNT_MANAGER相关信息android.permission.AUTHENTICATE_ACCOUNTS//允许应用程序更新手机电池统计信息android.permission.BATTERY_STATS//允许应用程序绑定小插件,告诉appWidget服务需要访问小插件的数据库android.permission.BIND_APPWIDGET//允许应用程序绑定设备管理,请求系统管理员接收者receiver,只有系统才能使用android.permission.BIND_DEVICE_ADMIN//允许应用程绑定输入法,请求InputMethodService服务,只有系统才能使用android.permission.BIND_INPUT_METHOD//允许应用程绑定RemoteView,必须通过RemoteViewsService服务来请求,只有系统才能用android.permission.BIND_REMOTEVIEWS//要求有一个TextService,如SpellCheckerService(拼写检查服务),来确保只有系统能够与之交互android.permission.BIND_TEXT_SERVICE//要求有一个VpnService,来确保只有系统能够与之交互android.permission.BIND_VPN_SERVICE//允许应用程绑定壁纸,必须通过WallpaperService服务来请求,只有系统才能用android.permission.BIND_WALLPAPER//允许应用程序连接配对过的蓝牙设备android.permission.BLUETOOTH//允许应用程序管理蓝牙,搜索和配对新的蓝牙设备android.permission.BLUETOOTH_ADMIN//允许应用程序能够禁用设备(非常危险)android.permission.BRICK//允许应用程序在删除时触发一个提示消息android.permission.BROADCAST_PACKAGE_REMOVED//允许应用程序收到短信时触发一个广播android.permission.BROADCAST_SMS//允许应用程序收到广播后快速收到下一个广播android.permission.BROADCAST_STICKY//允许应用程序WAP PUSH服务收到后触发一个广播android.permission.BROADCAST_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//允许应用程序设置WiFi连接多模式android.permission.CHANGE_WIFI_MULTICAST_STATE//允许应用程序改变Wi-Fi连接状态android.permission.CHANGE_WIFI_STATE//允许应用程序清除应用缓存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//允许应用程序RW诊断资源android.permission.DIAGNOSTIC//允许应用程序禁用键盘锁android.permission.DISABLE_KEYGUARD//允许应用程序从系统服务检索状态转储信息android.permission.DUMP//允许应用程序扩展或收缩状态栏android.permission.EXPAND_STATUS_BAR//允许应用程序运行工厂测试模式android.permission.FACTORY_TEST//允许应用程序访问闪光灯android.permission.FLASHLIGHT//允许应用程序强制使用back后退按键,无论Activity是否在顶层android.permission.FORCE_BACK//允许应用程序访问GMail账户列表android.permission.GET_ACCOUNTS//允许应用程序获取应用的文件大小android.permission.GET_PACKAGE_SIZE//允许应用程序获取当前或最近运行的应用android.permission.GET_TASKS//允许应用程序使用全局搜索功能android.permission.GLOBAL_SEARCH//允许应用程序访问硬件辅助设备,用于硬件测试android.permission.HARDWARE_TEST//允许应用程序访问本程序的底层事件android.permission.INJECT_EVENTS//允许应用程序安装定位提供者android.permission.INSTALL_LOCATION_PROVIDER//允许应用程序安装应用android.permission.INSTALL_PACKAGES//允许应用程序开内部窗口,不对第三方应用程序开放此权限android.permission.INTERNAL_SYSTEM_WINDOW//允许应用程序访问网络连接android.permission.INTERNET//允许应用程序调用killBackgroundProcesses(String)方法结束后台进程android.permission.KILL_BACKGROUND_PROCESSES//允许应用程序管理AccountManager中的账户列表android.permission.MANAGE_ACCOUNTS//允许应用程序管理程序引用android.permission.MANAGE_APP_TOKENS//允许应用程序执行软格式化,删除系统配置信息android.permission.MASTER_CLEAR//允许应用程序修改全局音频设置android.permission.MODIFY_AUDIO_SETTINGS//允许应用程序修改电话状态,如飞行模式等android.permission.MODIFY_PHONE_STATE//允许应用程序格式化可移动文件系统,比如格式化清空SD卡android.permission.MOUNT_FORMAT_FILESYSTEMS//允许应用程序挂载、卸载外部文件系统android.permission.MOUNT_UNMOUNT_FILESYSTEMS//允许应用程序执行NFC近距离通讯操作android.permission.NFC//允许应用程序创建一个永久的Activityandroid.permission.PERSISTENT_ACTIVITY//允许应用程序监视、修改外拨电话android.permission.PROCESS_OUTGOING_CALLS//允许应用程序读取用户日历数据android.permission.READ_CALENDAR//允许应用程序读取通话记录android.permission.READ_CALL_LOG//允许应用程序读取联系人通讯录信息android.permission.READ_CONTACTS//允许应用程序读取扩展存储器android.permission.READ_EXTERNAL_STORAGE//允许应用程序读取帧缓存用于屏幕截图android.permission.READ_FRAME_BUFFER//允许应用程序读取浏览器收藏夹和历史记录com.android.browser.permission.READ_HISTORY_BOOKMARKS//允许应用程序读取当前键的输入状态,仅用于系统android.permission.READ_INPUT_STATE//允许应用程序读取系统底层日志android.permission.READ_LOGS//允许应用程序读取电话状态android.permission.READ_PHONE_STATE//允许应用程序读取用户的个人信息资料android.permission.READ_PROFILE//允许应用程序读取短信内容android.permission.READ_SMS//允许应用程序读取用户的社交流数据android.permission.READ_SOCIAL_STREAM//允许应用程序读取同步设置,读取Google在线同步设置android.permission.READ_SYNC_SETTINGS//允许应用程序读取同步状态,读取Google在线同步设置android.permission.READ_SYNC_STATS//允许应用程序读取用户词典Provider取得数据android.permission.READ_USER_DICTIONARY//允许应用程序重新启动设备android.permission.REBOOT//允许应用程序开机自动运行android.permission.RECEIVE_BOOT_COMPLETED//允许应用程序接收彩信android.permission.RECEIVE_MMS//允许应用程序接收短信android.permission.RECEIVE_SMS//允许应用程序接收WAP PUSH信息android.permission.RECEIVE_WAP_PUSH//允许应用程序录制音频android.permission.RECORD_AUDIO//允许应用程序改变Z轴排列任务android.permission.REORDER_TASKS//允许应用程序重新启动其他程序android.permission.RESTART_PACKAGES//允许应用程序发送短信android.permission.SEND_SMS//允许应用程序监控或控制系统中已经启动的activitiesandroid.permission.SET_ACTIVITY_WATCHER//允许应用程序设置闹铃提醒com.android.alarm.permission.SET_ALARM//允许应用程序设置程序在后台是否总是退出android.permission.SET_ALWAYS_FINISH//设置全局动画缩放android.permission.SET_ANIMATION_SCALE//设置调试程序,一般用于开发android.permission.SET_DEBUG_APP//允许底层访问设置屏幕方向和实际旋转android.permission.SET_ORIENTATION//允许底层访问设置指针速度android.permission.SET_POINTER_SPEED//允许应用程序设置应用的参数android.permission.SET_PREFERRED_APPLICATIONS//允许应用程序设置最大的运行进程数量android.permission.SET_PROCESS_LIMIT//允许应用程序设置系统时间android.permission.SET_TIME//允许应用程序设置系统时区android.permission.SET_TIME_ZONE//允许应用程序设置桌面壁纸android.permission.SET_WALLPAPER//允许应用程序设置壁纸建议android.permission.SET_WALLPAPER_HINTS//允许应用程序请求发送信号到所有显示的进程中android.permission.SIGNAL_PERSISTENT_PROCESSES//允许应用程序打开、关闭或禁用状态栏及图标android.permission.STATUS_BAR//允许应用程序访问订阅RSS Feed内容提供者android.permission.SUBSCRIBED_FEEDS_READ//允许应用程序写入或修改订阅RSS Feed内容提供者的数据android.permission.SUBSCRIBED_FEEDS_WRITE//允许应用程序打开系统窗口,显示其他应用程序android.permission.SYSTEM_ALERT_WINDOW//允许应用程序更新设备状态android.permission.UPDATE_DEVICE_STATS//允许应用程序请求从AccountManager验证android.permission.USE_CREDENTIALS//允许应用程序使用SIP视频服务android.permission.USE_SIP//允许访问振动设备android.permission.VIBRATE//允许应用程序在手机锁屏后进程仍然运行android.permission.WAKE_LOCK//允许应用程序写入网络GPRS接入点设置name="android.permission.WRITE_APN_SETTINGS//允许应用程序写入用户日程,但不可读取android.permission.WRITE_CALENDAR//允许应用程序写入通话记录android.permission.WRITE_CALL_LOG//允许应用程序写入联系人,但不可读取android.permission.WRITE_CONTACTS//允许应用程序写入外部存储,如SD卡上写文件android.permission.WRITE_EXTERNAL_STORAGE//允许应用程序写入Google Map服务数据android.permission.WRITE_GSERVICES//允许应用程序写入浏览器历史记录或收藏夹,但不可读取com.android.browser.permission.WRITE_HISTORY_BOOKMARKS//允许应用程序写用户个人档案资料,但不可读取android.permission.WRITE_PROFILE//允许应用程序写入安全设置android.permission.WRITE_SECURE_SETTINGS//允许应用程序读取或写入系统设置android.permission.WRITE_SETTINGS//允许应用程序写短信android.permission.WRITE_SMS//允许应用程序写用户的社交流数据,但不可读取android.permission.WRITE_SOCIAL_STREAM//允许程序Google在线同步设置android.permission.WRITE_SYNC_SETTINGS//允许应用程写入取用户词典Provider的数据android.permission.WRITE_USER_DICTIONARY
【上篇】【下篇】permission和uses-permission的区别_百度知道
permission和uses-permission的区别
提问者采纳
propectionLevel属性必须声明告诉系统通知用户应用要求许,或允许谁认获许情况permissionGroup选用于协助t系统向用户显示权限般像(listed in android.Manifest.permission_group)设置标准系统组少自定义使用已经定义使用l起便lable,namecicon用于描述权限launcher2manifest源代码别permissionuses-permission定义InstallShortcutReceive使用面定义INSTALL_SHORTCUT权限两者间同作用域同 manifest.xml文件&uses-permission&&application&同级节点般&uses-permission &&/application&面&permission&痛定义&application&&/application&间Activity、Service同级别同使用 group权限组幅减少同类型相似权限声明其二能&uses-permission&官定义权限&permission&自定义权限般情况实际需要自应用程序声明某权限除非提供供其应用程序调用代码或者数据候才需要使用&permission&标签显标签让我声明自程序权限
来自团队:
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 android uses feature 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信