如何管理android魅族手机app权限管理中app的权限

权限管理 App Permissions下载|权限管理 App Permissions手机版_最新权限管理 App Permissions安卓版下载
当前位置: &
编辑点评:软件截图权限管理 App Permissions下载信息权限管理 App Permissions简介
支持 Android 5.0 android 4.4.2 需要root权限,才能使用本应用 如果你的设备是android 4.4.2,第一次开启时,需要root授权,重启后,即可使用支持Android 4.4Android 4.3 4.4权限管理 如果你想卸载此应用,可以使用这个工具 /store/apps/details?id=com.findsdk.apppermission.uninstall或者直接删除 /system/priv-app/AppOps_release.apk 致谢:1.非常感谢 Sing Chu 设计的应用ICON 权限管理 App Permissions更新日志
V.1.9 支持 Material 主题权限管理 App Permissions短评2 万下载&|&256KB
下载权限管理 App Permissions的人还喜欢
你可能是要下载
PP苹果助手:love25ppcom
扫一扫安装PP助手安卓版> &>&&>&&>&正文
&&&&&&&& Android权限分的很细,但命名比较人性化,Android permission比SymbianCapabilities有了不少改进,下面就来看看权限许可都有哪些定义吧,发现还是比较繁多的,如果发现你的程序某个地方调试错误很可能是Androidpermission的访问控制在作怪,这也是为了安全防止手机成为病毒的场所。Android开发网获取到的消息来看不用购买高昂的数字签名证书,权限许可权由用户决定而不是手机制造商和平台提供商,这一点不得不说明为Android开发人员着想,下面的信息都是需要添加在androidmanifest.xml文件中。程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求,Android开发网已经翻译并使用中英文对照  android.permission.ACCESS_CHECKIN_PROPERTIES 允许读写访问 "properties"表在checkin数据库中,改值可以修改上传( Allows read/write access to the "properties" table inthe checkin database, to change values that get uploaded)  android.permission.ACCESS_COARSE_LOCATION 允许一个程序访问CellID或WiFi热点来获取粗略的位置(Allows an application to access coarse (e.g., Cell-ID, WiFi)location)  android.permission.ACCESS_FINE_LOCATION 允许一个程序访问精良位置(如GPS) (Allows an application to access fine(e.g., GPS) location)  android.permission.ACCESS_LOCATION_EXTRA_COMMANDS 允许应用程序访问额外的位置提供命令(Allows an application to access extra location provider commands)  android.permission.ACCESS_MOCK_LOCATION 允许程序创建模拟位置提供用于测试(Allows an application to create mock location providers fortesting)  android.permission.ACCESS_NETWORK_STATE 允许程序访问有关GSM网络信息(Allows applications to accessinformation about networks)  android.permission.ACCESS_SURFACE_FLINGER 允许程序使用SurfaceFlinger底层特性(Allows an application touse SurfaceFlinger's low level features)  android.permission.ACCESS_WIFI_STATE 允许程序访问Wi-Fi网络状态信息(Allows applications to accessinformation about Wi-Fi networks)  android.permission.ADD_SYSTEM_SERVICE 允许程序发布系统级服务(Allows an application to publish system-level services).  android.permission.BATTERY_STATS 允许程序更新手机电池统计信息(Allows an application to update the collected battery statistics)  android.permission.BLUETOOTH 允许程序连接到已配对的蓝牙设备(Allows applications to connect to paired bluetooth devices)  android.permission.BLUETOOTH_ADMIN 允许程序发现和配对蓝牙设备(Allows applications to discover and pair bluetooth devices)  android.permission.BRICK 请求能够禁用设备(非常危险)(Required to be able to disable the device (very dangerous!).)  android.permission.BROADCAST_PACKAGE_REMOVED 允许程序广播一个提示消息在一个应用程序包已经移除后(Allows an application to broadcast a notification that anapplication package has been removed)  android.permission.BROADCAST_STICKY .允许一个程序广播常用intents(Allows an application to broadcast sticky intents)  android.permission.CALL_PHONE 允许一个程序初始化一个电话拨号不需通过拨号用户界面需要用户确认(Allows an application to initiate a phone call without goingthrough the Dialer user interface for the user to confirm the call beingplaced.)  android.permission.CALL_PRIVILEGED 允许一个程序拨打任何号码,包含紧急号码无需通过拨号用户界面需要用户确认(Allows an application to call any phone number, including emergencynumbers, without going through the Dialer user interface for the user toconfirm the call being placed)  android.permission.CAMERA 请求访问使用照相设备(Required to be able to access the camera device. )  android.permission.CHANGE_COMPONENT_ENABLED_STATE 允许一个程序是否改变一个组件或其他的启用或禁用(Allows an application to change whether an application component(other than its own) is enabled or not. )  android.permission.CHANGE_CONFIGURATION 允许一个程序修改当前设置,如本地化(Allows an application to modify the current configuration, such aslocale. )  android.permission.CHANGE_NETWORK_STATE 允许程序改变网络连接状态(Allows applications to change network connectivity state)  android.permission.CHANGE_WIFI_STATE 允许程序改变Wi-Fi连接状态(Allows applications to changeWi-Fi connectivity state)  android.permission.CLEAR_APP_CACHE 允许一个程序清楚缓存从所有安装的程序在设备中(Allows an application to clear the caches of all installedapplications on the device. )  android.permission.CLEAR_APP_USER_DATA 允许一个程序清除用户设置(Allows an application to clear user data)  android.permission.CONTROL_LOCATION_UPDATES 允许启用禁止位置更新提示从无线模块(Allows enabling/disabling location update notifications from theradio. )  android.permission.DELETE_CACHE_FILES 允许程序删除缓存文件(Allows an application to delete cache files)  android.permission.DELETE_PACKAGES 允许一个程序删除包(Allows an application to delete packages)  android.permission.DEVICE_POWER 允许访问底层电源管理(Allows low-level access to power management)  android.permission.DIAGNOSTIC 允许程序RW诊断资源(Allows applications to RW todiagnostic resources. )  android.permission.DISABLE_KEYGUARD 允许程序禁用键盘锁(Allows applications to disable the keyguard )  android.permission.DUMP 允许程序返回状态抓取信息从系统服务(Allows an application to retrieve state dump information fromsystem services.)  android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,Android开发网提示应该是一个类似Windows Mobile中的托盘程序(Allows an application to expand or collapse the status bar. )  android.permission.FACTORY_TEST 作为一个工厂测试程序,运行在root用户(Run as a manufacturer testapplication, running as the root user. )  android.permission.FLASHLIGHT 访问闪光灯,Android开发网提示HTC Dream不包含闪光灯(Allows access to the flashlight )  android.permission.FORCE_BACK 允许程序强行一个后退操作是否在顶层activities(Allows an application to force a BACK operation onwhatever is the top activity. )  android.permission.FOTA_UPDATE 暂时不了解这是做什么使用的,Android开发网分析可能是一个预留权限.  android.permission.GET_ACCOUNTS 访问一个帐户列表在Accounts Service中(Allows access to the listof accounts in the Accounts Service)  android.permission.GET_PACKAGE_SIZE 允许一个程序获取任何package占用空间容量(Allows an application to findout the space used by any package. )  android.permission.GET_TASKS 允许一个程序获取信息有关当前或最近运行的任务,一个缩略的任务状态,是否活动等等(Allows an application to get information about the currently orrecently running tasks: a thumbnail representation of the tasks, whatactivities are running in it, etc.)  android.permission.HARDWARE_TEST 允许访问硬件(Allows access to hardware peripherals. )  android.permission.INJECT_EVENTS 允许一个程序截获用户事件如按键、触摸、轨迹球等等到一个时间流,Android开发网提醒算是hook技术吧(Allows an application to inject user events (keys, touch, trackball)into the event stream and deliver them to ANY window.)  android.permission.INSTALL_PACKAGES 允许一个程序安装packages(Allows an application to install packages. )  android.permission.INTERNAL_SYSTEM_WINDOW 允许打开窗口使用系统用户界面(Allows an application to open windows that are for use by parts ofthe system user interface. )  android.permission.INTERNET 允许程序打开网络套接字(Allows applications to open network sockets)  android.permission.MANAGE_APP_TOKENS 允许程序管理(创建、催后、z -order默认向z轴推移)程序引用在窗口管理器中(Allows an application to manage(create, destroy, Z-order) application tokens in the window manager. )  android.permission.MASTER_CLEAR 目前还没有明确的解释,Android开发网分析可能是清除一切数据,类似硬格机  android.permission.MODIFY_AUDIO_SETTINGS 允许程序修改全局音频设置(Allows an application to modify global audio settings)  android.permission.MODIFY_PHONE_STATE 允许修改话机状态,如电源,人机接口等(Allows modification of the telephony state - power on, mmi, etc. )  android.permission.MOUNT_UNMOUNT_FILESYSTEMS 允许挂载和反挂载文件系统可移动存储(Allows mounting and unmounting file systems for removable storage.)  android.permission.PERSISTENT_ACTIVITY 允许一个程序设置他的activities显示(Allow an application to makeits activities persistent. )  android.permission.PROCESS_OUTGOING_CALLS 允许程序监视、修改有关播出电话(Allows an application to monitor, modify, or abort outgoing calls)  android.permission.READ_CALENDAR 允许程序读取用户日历数据(Allows an application to read the user's calendar data.)  android.permission.READ_CONTACTS 允许程序读取用户联系人数据(Allows an application to read the user's contacts data.)  android.permission.READ_FRAME_BUFFER 允许程序屏幕波或和更多常规的访问帧缓冲数据(Allows an application to take screen shots and more generally getaccess to the frame buffer data)  android.permission.READ_INPUT_STATE 允许程序返回当前按键状态(Allows an application to retrieve the current state of keys andswitches. )  android.permission.READ_LOGS 允许程序读取底层系统日志文件(Allows an application to read the low-level system log files. )  android.permission.READ_OWNER_DATA 允许程序读取所有者数据(Allows an application to read the owner's data)  android.permission.READ_SMS 允许程序读取短信息(Allows an application to read SMS messages.)  android.permission.READ_SYNC_SETTINGS 允许程序读取同步设置(Allows applications to read the sync settings)  android.permission.READ_SYNC_STATS 允许程序读取同步状态(Allows applications to read the sync stats)  android.permission.REBOOT 请求能够重新启动设备(Required to be able to reboot the device. )  android.permission.RECEIVE_BOOT_COMPLETED 允许一个程序接收到 ACTION_BOOT_COMPLETED广播在系统完成启动(Allows anapplication to receive the ACTION_BOOT_COMPLETED that is broadcast after thesystem finishes booting. )  android.permission.RECEIVE_MMS 允许一个程序监控将收到MMS彩信,记录或处理(Allowsan application to monitor incoming MMS messages, to record or performprocessing on them. )  android.permission.RECEIVE_SMS 允许程序监控一个将收到短信息,记录或处理(Allows an application to monitor incoming SMS messages, to record orperform processing on them.)  android.permission.RECEIVE_WAP_PUSH 允许程序监控将收到WAP PUSH信息(Allows an application to monitorincoming WAP push messages. )  android.permission.RECORD_AUDIO 允许程序录制音频(Allows an application to record audio)  android.permission.REORDER_TASKS 允许程序改变Z轴排列任务(Allows an application to change theZ-order of tasks)  android.permission.RESTART_PACKAGES 允许程序重新启动其他程序(Allows an 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 towatch and control how activities are started globally in the system.  android.permission.SET_ALWAYS_FINISH 允许程序控制是否活动间接完成在处于后台时Allows an application to control whether activities are immediatelyfinished when put in the background.  android.permission.SET_ANIMATION_SCALE 修改全局信息比例(Modify the global animation scaling factor.)  android.permission.SET_DEBUG_APP 配置一个程序用于调试(Configure an application for debugging.)  android.permission.SET_ORIENTATION 允许底层访问设置屏幕方向和实际旋转(Allows low-level access to setting the orientation (actuallyrotation) of the screen.)  android.permission.SET_PREFERRED_APPLICATIONS 允许一个程序修改列表参数PackageManager.addPackageToPreferred() 和PackageManager.removePackageFromPreferred()方法(Allows an application to modify the list of preferred applicationswith the PackageManager.addPackageToPreferred() andPackageManager.removePackageFromPreferred() methods.)  android.permission.SET_PROCESS_FOREGROUND 允许程序当前运行程序强行到前台(Allows an application to force any currently running process to bein the foreground.)  android.permission.SET_PROCESS_LIMIT 允许设置最大的运行进程数量(Allows an application to set the maximum number of (not needed)application processes that can be running. )  android.permission.SET_TIME_ZONE 允许程序设置时间区域(Allows applications to set the system time zone)  android.permission.SET_WALLPAPER 允许程序设置壁纸(Allows applications to set the wallpaper )  android.permission.SET_WALLPAPER_HINTS 允许程序设置壁纸hits(Allows applications to set the wallpaper hints)  android.permission.SIGNAL_PERSISTENT_PROCESSES 允许程序请求发送信号到所有显示的进程中(Allow an application to request that a signal be sent to allpersistent processes)  android.permission.STATUS_BAR 允许程序打开、关闭或禁用状态栏及图标Allows an application to open, close, or disable the status bar andits icons.  android.permission.SUBSCRIBED_FEEDS_READ 允许一个程序访问订阅RSS Feed内容提供(Allows an application to allowaccess the subscribed feeds ContentProvider. )  android.permission.SUBSCRIBED_FEEDS_WRITE 系统暂时保留改设置,Android开发网认为未来版本会加入该功能。  android.permission.SYSTEM_ALERT_WINDOW 允许一个程序打开窗口使用 TYPE_SYSTEM_ALERT,显示在其他所有程序的顶层(Allows anapplication to open windows using the type TYPE_SYSTEM_ALERT, shown on top ofall other applications. )  android.permission.VIBRATE 允许访问振动设备(Allows access to the vibrator)  android.permission.WAKE_LOCK 允许使用PowerManager的 WakeLocks保持进程在休眠时从屏幕消失( Allows usingPowerManager WakeLocks to keep processor from sleeping or screen from dimming)  android.permission.WRITE_APN_SETTINGS 允许程序写入API设置(Allows applications to write the apnsettings)  android.permission.WRITE_CALENDAR 允许一个程序写入但不读取用户日历数据(Allows an application to write (but not read) the user's calendardata. )  android.permission.WRITE_CONTACTS 允许程序写入但不读取用户联系人数据(Allows an application to write (but not read) the user's contactsdata. )  android.permission.WRITE_GSERVICES 允许程序修改Google服务地图(Allows an application to modifythe Google service map. )  android.permission.WRITE_OWNER_DATA 允许一个程序写入但不读取所有者数据(Allows an application to write (but not read) the owner's data.)  android.permission.WRITE_SETTINGS 允许程序读取或写入系统设置(Allows an application to read or write the system settings. )  android.permission.WRITE_SMS 允许程序写短信(Allows an application to write SMS messages)  android.permission.WRITE_SYNC_SETTINGS 允许程序写入同步设置(Allows applications to write the sync settings
提示:支持键盘“← →”键翻页app在android 6.0或以上平台版本运行过程中请求权限
从android 6.0(API 23)开始,安装app时不需要对app的权限申请进行授权,而是在app运行的时候,用户才需要对app进行授权。这种流程精简了app的安装过程,用户不需要在安装或者升级app的时候进行授权操作。这同样也给了用户更多对app功能的控制能力;例如,用户可以选择给一个照相app访问摄像头的权限,但不给它访问设备地理位置的权限。用户也可以通过app的设置界面,随时撤销对app授予的权限。
权限可以被分为两大类,普通权限和危险权限:
普通权限不会引起用户隐私泄露的风险。如果你的app在manifest文件中列举了一个普通权限,系统会自动对申请的普通权限直接授权。 危险权限允许app访问用户的机密信息。如果的你app在它的manifest中列举了一个普通权限,系统会自动授权。但如果你列举的是一个危险权限,用户就必须明确处理是否授权给你的app。
更多相关信息,请参考。
无论是哪个android版本,你的app都必须在它的manifest文件上声明它需要的所有普通权限和危险权限,详情请参考。只不过,声明权限的结果因系统版本和app的target SDK不同而不同:
如果设备运行在android 5.1或者更低版本的系统上,或者app的target SDK是22或者更低:如果你的app在它的manifest文件中声明了一个危险权限,那么用户在安装app的时候就必须授权这个危险权限给你的app;如果用户不同意授予这个权限,系统就拒绝安装这个app。 如果设备运行在android 6.0或者更高的系统版本上,并且app的target SDK是23或者更高:app必须在manifest文件中声明所有需要的权限,并且在app运行的过程中必须请求用户对每个使用到的危险权限进行授权。用户可以选择授权或者拒绝每一个权限,如果用户拒绝了授权,app同样可以继续运行,只是对应的功能无法使用。
注意: 从android 6.0(API 23)开始,不管app的target SDK是不是低版本的SDK,用户都可以随时取消任意app已经授权过的权限。不管你的app是什么target SDK版本,当你的app缺少一个需要的权限时,你都应该测试的app功能是否正常。
本章节内容将探讨如何使用android support library来检查和请求权限。android的framework在android 6.0(API 23)版本上提供了类似的方法。不过,相对来说使用support library的方法会比较简单,因为这样你的app在调用这些方法之前就不需要检查当前运行的android系统版本是多少。
如果你的app需要一个危险权限,那么你每次执行需要这个危险权限的操作时,你都必须检查是否已经申请到这个权限。用户随时都可以撤销授予过的权限,因此,尽管一个app昨天可以正常使用摄像头,但不代表今天仍然拥有使用摄像头的权限。
检查你的app是否拥有过一个权限,需要调用ContextCompat.checkSelfPermission()方法。例如,下面的代码片段检查了activity是否拥有写日历的权限:
// Assume thisActivity is the current activity
int permissionCheck = ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.WRITE_CALENDAR);
如果app拥有这个权限,方法会返回PackageManager.PERMISSION_GRANTED,app可以继续执行相关操作。如果app不具备该权限,方法会返回PERMISSION_DENIED,app需要明确请求用户授予该权限。
如果你的app需要使用一个在它的manifest文件中声明的危险权限,那么在使用之前它必须请求用户授予该权限。android提供了一系列方法供你申请权限。请求这些方法会唤起一个标准的android对话框,这个对话框你不能自定义。
解释app为什么需要权限
在一些情况下,你可能想要帮助用户理解为什么你的app需要一个权限。例如,如果用户启动一个摄影app,用户应该对app请求使用摄像头的权限不会感到惊讶,但是用户可能无法理解为什么app还要求访问设备的地理位置和通讯录。在你申请一个权限之前,你应该考虑给用户提供一个解释。但是要注意不要用解释过多骚扰用户;如果你提供了太多的解释,用户可能会厌烦你的app并且卸载掉。
只有在用户已经拒绝了权限请求的情况下,你才有可能需要向用户提供一个解释。如果用户继续尝试使用需要申请权限的功能,但是这个权限之前已经被用户拒绝,这就说明用户可能不清楚为什么app的这个功能需要申请权限。类似这样的情况,那么显示一个权限申请解释就是一种很好的解决方法。
为了帮助判断用户在什么情况下需要一个权限解释,android提供了一个工具方法,ActivityCompat.shouldShowRequestPermissionRationale()。如果app之前申请过一个权限,但这个权限被用户拒绝了,这个方法就会返回true。
注意: 如果用户在过去拒绝权限申请的同时还勾选了系统权限申请对话框中的不再询问选项,这个方法也会返回false。如果是在设备权限设置中禁止了app使用的权限,用这个方法判断这些权限同样也会返回false。
申请你需要的权限
如果你的app目前不具备它所需要的权限,app必须调用requestPermissions()多个重载方法中的一个来申请适当的权限。这些方法中,你的app除了将所需要的权限作为参数传递进去之外,还需要传递一个整型值作为本次权限请求的标识码。这些方法都是异步的:方法会直接返回,等到用户响应对话框之后,系统才会回调app的回调方法把结果传递回来,结果中包括app调用requestPermissions()方法时传递进来的请求码。
下面的代码检查app是否拥有读取用户联系人的权限,如果没有,在需要的时候会申请权限:
// Here, thisActivity is the current activity
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
Manifest.permission.READ_CONTACTS)) {
// Show an expanation to the user *asynchronously* -- don't block
// this thread waiting for the user's response! After the user
// sees the explanation, try again to request the permission.
// No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.READ_CONTACTS},
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
// MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
// app-defined int constant. The callback method gets the
// result of the request.
注意: 当你的app调用requestPermissions()方法时,系统会弹出一个标准的对话框给用户。你的app无法配置或者修改这个对话框。如果你需要向用户提供一些的信息或者解释,你应该在调用requestPermissions()方法之前进行这些操作,请参考上面小节解释app为什么需要权限。
处理权限请求的响应
当你的app申请权限之后,系统会显示一个对话框给用户。当用户响应之后,系统会回调你的app的onRequestPermissionsResulet()方法,将响应结果传递过来。你的app必须重写这个方法来判断申请的权限是否被授予了。回调方法会接收到与你传递到requestPermissions()方法中相同的请求码。例如,如果一个app请求READ_CONTACTS访问权限,它可能需要以下的响应代码:
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length & 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted, yay! Do the
// contacts-related task you need to do.
// permission denied, boo! Disable the
// functionality that depends on this permission.
// other 'case' lines to check for other
// permissions this app might request
这个系统显示的对话框会描述你的app需要访问的权限组,它不会列举具体使用到的哪一个权限。例如,如果你请求READ_CONTACTS权限,系统对话框只会描述你的app需要访问设备的通讯录。用户只需要对每一个权限组授权一次。一旦对一个权限组授权之后,如果你的app请求同一个权限组中的其它权限(同样也要在app的manifest文件声明),系统会自动授予这些权限。当你请求这些同个权限组中的其它权限时,系统也会回调你的onRequestPermissionsResult()方法并传递PERMISSION_GRANTED参数,回调的结果就跟用户已经通过系统对话框明确同意你的权限申请一样。
注意: 你的app仍然需要明确请求每一个它需要的权限,不过用户是否已经同意授权同个权限组中的其它权限。此外,每个权限组包含的权限在未来android的发布版中也有可能会变化。你的代码逻辑不应该建立在使用到的几个权限是否被包含在同一个权限组中的假设之上。
例如,假设你在app的manifest中声明了READ_CONTACTS和WRITE_CONTACTS权限。如果你已经请求过READ_CONTACTS权限并且用户通过授权申请,当你再请求WRITE_CONTACTS权限时,系统会立即把这个权限也授权给app,不需要再与用户进行授权交互。
如果用户拒绝了你的权限申请,你的app应该采取适当的响应操作。例如,你的app可能需要显示一个对话框来解释为什么你的app无法继续执行下去的原因是需要被用户拒绝的权限。
当系统请求用户授权时,用户可以选择告诉系统需要再次请求这个权限。在这种情况下,无论app调用多少次requestPermissions()方法来申请权限,系统都会直接决绝申请。系统会回调你的onRequestPermissionsResult()回调方法并且传递PERMISSION_DENIED参数值,整个回调过程就跟用户已经直接明确拒绝你的权限申请一样。这意味着当你调用requestPermissions()方法时,你不能假设与用户直接交互的操作一定会发生。}

我要回帖

更多关于 vivo手机app权限管理 的文章

更多推荐

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

点击添加站长微信