Android的通过声明对应的权限,可以操作别的应用。系统提供了很多权限,具体可查看 Android系统权限。
String | ACCESS_CHECKIN_PROPERTIES | Allows read/write access to the "properties" table in the checkin database, to change values that get uploaded. |
String | ACCESS_COARSE_LOCATION | Allows an app to access approximate location derived from network location sources such as cell towers and Wi-Fi. |
String | ACCESS_FINE_LOCATION | Allows an app to access precise location from location sources such as GPS, cell towers, and Wi-Fi. |
String | ACCESS_LOCATION_EXTRA_COMMANDS | Allows an application to access extra location provider commands |
String | ACCESS_MOCK_LOCATION | Allows an application to create mock location providers for testing |
String | ACCESS_NETWORK_STATE | Allows applications to access information about networks |
String | ACCESS_SURFACE_FLINGER | Allows an application to use SurfaceFlinger's low level features. |
String | ACCESS_WIFI_STATE | Allows applications to access information about Wi-Fi networks |
String | ACCOUNT_MANAGER | Allows applications to call into AccountAuthenticators. |
String | ADD_VOICEMAIL | Allows an application to add voicemails into the system. |
String | AUTHENTICATE_ACCOUNTS | Allows an application to act as an AccountAuthenticator for the AccountManager |
String | BATTERY_STATS | Allows an application to collect battery statistics |
String | BIND_ACCESSIBILITY_SERVICE | Must be required by an AccessibilityService , to ensure that only the system can bind to it. |
String | BIND_APPWIDGET | Allows an application to tell the AppWidget service which application can access AppWidget's data. |
String | BIND_DEVICE_ADMIN | Must be required by device administration receiver, to ensure that only the system can interact with it. |
String | BIND_INPUT_METHOD | Must be required by an InputMethodService , to ensure that only the system can bind to it. |
String | BIND_NFC_SERVICE | Must be required by a HostApduService or OffHostApduService to ensure that only the system can bind to it. |
String | BIND_NOTIFICATION_LISTENER_SERVICE | Must be required by an NotificationListenerService , to ensure that only the system can bind to it. |
String | BIND_PRINT_SERVICE | Must be required by a PrintService , to ensure that only the system can bind to it. |
String | BIND_REMOTEVIEWS | Must be required by a RemoteViewsService , to ensure that only the system can bind to it. |
String | BIND_TEXT_SERVICE | Must be required by a TextService (e.g. |
String | BIND_VPN_SERVICE | Must be required by a VpnService , to ensure that only the system can bind to it. |
String | BIND_WALLPAPER | Must be required by a WallpaperService , to ensure that only the system can bind to it. |
String | BLUETOOTH | Allows applications to connect to paired bluetooth devices |
String | BLUETOOTH_ADMIN | Allows applications to discover and pair bluetooth devices |
String | BLUETOOTH_PRIVILEGED | Allows applications to pair bluetooth devices without user interaction. |
String | BRICK | Required to be able to disable the device (very dangerous!). |
String | BROADCAST_PACKAGE_REMOVED | Allows an application to broadcast a notification that an application package has been removed. |
String | BROADCAST_SMS | Allows an application to broadcast an SMS receipt notification. |
String | BROADCAST_STICKY | Allows an application to broadcast sticky intents. |
String | BROADCAST_WAP_PUSH | Allows an application to broadcast a WAP PUSH receipt notification. |
String | CALL_PHONE | Allows an application to initiate a phone call without going through the Dialer user interface for the user to confirm the call being placed. |
String | CALL_PRIVILEGED | Allows an application to call any phone number, including emergency numbers, without going through the Dialer user interface for the user to confirm the call being placed. |
String | CAMERA | Required to be able to access the camera device. |
String | CAPTURE_AUDIO_OUTPUT | Allows an application to capture audio output. |
String | CAPTURE_SECURE_VIDEO_OUTPUT | Allows an application to capture secure video output. |
String | CAPTURE_VIDEO_OUTPUT | Allows an application to capture video output. |
String | CHANGE_COMPONENT_ENABLED_STATE | Allows an application to change whether an application component (other than its own) is enabled or not. |
String | CHANGE_CONFIGURATION | Allows an application to modify the current configuration, such as locale. |
String | CHANGE_NETWORK_STATE | Allows applications to change network connectivity state |
String | CHANGE_WIFI_MULTICAST_STATE | Allows applications to enter Wi-Fi Multicast mode |
String | CHANGE_WIFI_STATE | Allows applications to change Wi-Fi connectivity state |
String | CLEAR_APP_CACHE | Allows an application to clear the caches of all installed applications on the device. |
String | CLEAR_APP_USER_DATA | Allows an application to clear user data. |
String | CONTROL_LOCATION_UPDATES | Allows enabling/disabling location update notifications from the radio. |
String | DELETE_CACHE_FILES | Allows an application to delete cache files. |
String | DELETE_PACKAGES | Allows an application to delete packages. |
String | DEVICE_POWER | Allows low-level access to power management. |
String | DIAGNOSTIC | Allows applications to RW to diagnostic resources. |
String | DISABLE_KEYGUARD | Allows applications to disable the keyguard |
String | DUMP | Allows an application to retrieve state dump information from system services. |
String | EXPAND_STATUS_BAR | Allows an application to expand or collapse the status bar. |
String | FACTORY_TEST | Run as a manufacturer test application, running as the root user. |
String | FLASHLIGHT | Allows access to the flashlight |
String | FORCE_BACK | Allows an application to force a BACK operation on whatever is the top activity. |
String | GET_ACCOUNTS | Allows access to the list of accounts in the Accounts Service |
String | GET_PACKAGE_SIZE | Allows an application to find out the space used by any package. |
String | GET_TASKS | Allows an application to get information about the currently or recently running tasks. |
String | GET_TOP_ACTIVITY_INFO | Allows an application to retrieve private information about the current top activity, such as any assist context it can provide. |
String | GLOBAL_SEARCH | This permission can be used on content providers to allow the global search system to access their data. |
String | HARDWARE_TEST | Allows access to hardware peripherals. |
String | INJECT_EVENTS | Allows an application to inject user events (keys, touch, trackball) into the event stream and deliver them to ANY window. |
String | INSTALL_LOCATION_PROVIDER | Allows an application to install a location provider into the Location Manager. |
String | INSTALL_PACKAGES | Allows an application to install packages. |
String | INSTALL_SHORTCUT | Allows an application to install a shortcut in Launcher |
String | INTERNAL_SYSTEM_WINDOW | Allows an application to open windows that are for use by parts of the system user interface. |
String | INTERNET | Allows applications to open network sockets. |
String | KILL_BACKGROUND_PROCESSES | Allows an application to call killBackgroundProcesses(String) . |
String | LOCATION_HARDWARE | Allows an application to use location features in hardware, such as the geofencing api. |
String | MANAGE_ACCOUNTS | Allows an application to manage the list of accounts in the AccountManager |
String | MANAGE_APP_TOKENS | Allows an application to manage (create, destroy, Z-order) application tokens in the window manager. |
String | MANAGE_DOCUMENTS | Allows an application to manage access to documents, usually as part of a document picker. |
String | MASTER_CLEAR | Not for use by third-party applications. |
String | MEDIA_CONTENT_CONTROL | Allows an application to know what content is playing and control its playback. |
String | MODIFY_AUDIO_SETTINGS | Allows an application to modify global audio settings |
String | MODIFY_PHONE_STATE | Allows modification of the telephony state - power on, mmi, etc. |
String | MOUNT_FORMAT_FILESYSTEMS | Allows formatting file systems for removable storage. |
String | MOUNT_UNMOUNT_FILESYSTEMS | Allows mounting and unmounting file systems for removable storage. |
String | NFC | Allows applications to perform I/O operations over NFC |
String | PERSISTENT_ACTIVITY | This constant was deprecated in API level 9. This functionality will be removed in the future; please do not use. Allow an application to make its activities persistent. |
String | PROCESS_OUTGOING_CALLS | Allows an application to monitor, modify, or abort outgoing calls. |
String | READ_CALENDAR | Allows an application to read the user's calendar data. |
String | READ_CALL_LOG | Allows an application to read the user's call log. |
String | READ_CONTACTS | Allows an application to read the user's contacts data. |
String | READ_EXTERNAL_STORAGE | Allows an application to read from external storage. |
String | READ_FRAME_BUFFER | Allows an application to take screen shots and more generally get access to the frame buffer data. |
String | READ_HISTORY_BOOKMARKS | Allows an application to read (but not write) the user's browsing history and bookmarks. |
String | READ_INPUT_STATE | This constant was deprecated in API level 16. The API that used this permission has been removed. |
String | READ_LOGS | Allows an application to read the low-level system log files. |
String | READ_PHONE_STATE | Allows read only access to phone state. |
String | READ_PROFILE | Allows an application to read the user's personal profile data. |
String | READ_SMS | Allows an application to read SMS messages. |
String | READ_SOCIAL_STREAM | Allows an application to read from the user's social stream. |
String | READ_SYNC_SETTINGS | Allows applications to read the sync settings |
String | READ_SYNC_STATS | Allows applications to read the sync stats |
String | READ_USER_DICTIONARY | Allows an application to read the user dictionary. |
String | REBOOT | Required to be able to reboot the device. |
String | RECEIVE_BOOT_COMPLETED | Allows an application to receive the ACTION_BOOT_COMPLETED that is broadcast after the system finishes booting. |
String | RECEIVE_MMS | Allows an application to monitor incoming MMS messages, to record or perform processing on them. |
String | RECEIVE_SMS | Allows an application to monitor incoming SMS messages, to record or perform processing on them. |
String | RECEIVE_WAP_PUSH | Allows an application to monitor incoming WAP push messages. |
String | RECORD_AUDIO | Allows an application to record audio |
String | REORDER_TASKS | Allows an application to change the Z-order of tasks |
String | RESTART_PACKAGES | This constant was deprecated in API level 8. The restartPackage(String) API is no longer supported. |
String | SEND_RESPOND_VIA_MESSAGE | Allows an application (Phone) to send a request to other applications to handle the respond-via-message action during incoming calls. |
String | SEND_SMS | Allows an application to send SMS messages. |
String | SET_ACTIVITY_WATCHER | Allows an application to watch and control how activities are started globally in the system. |
String | SET_ALARM | Allows an application to broadcast an Intent to set an alarm for the user. |
String | SET_ALWAYS_FINISH | Allows an application to control whether activities are immediately finished when put in the background. |
String | SET_ANIMATION_SCALE | Modify the global animation scaling factor. |
String | SET_DEBUG_APP | Configure an application for debugging. |
String | SET_ORIENTATION | Allows low-level access to setting the orientation (actually rotation) of the screen. |
String | SET_POINTER_SPEED | Allows low-level access to setting the pointer speed. |
String | SET_PREFERRED_APPLICATIONS | This constant was deprecated in API level 7. No longer useful, see addPackageToPreferred(String) for details. |
String | SET_PROCESS_LIMIT | Allows an application to set the maximum number of (not needed) application processes that can be running. |
String | SET_TIME | Allows applications to set the system time. |
String | SET_TIME_ZONE | Allows applications to set the system time zone |
String | SET_WALLPAPER | Allows applications to set the wallpaper |
String | SET_WALLPAPER_HINTS | Allows applications to set the wallpaper hints |
String | SIGNAL_PERSISTENT_PROCESSES | Allow an application to request that a signal be sent to all persistent processes. |
String | STATUS_BAR | Allows an application to open, close, or disable the status bar and its icons. |
String | SUBSCRIBED_FEEDS_READ | Allows an application to allow access the subscribed feeds ContentProvider. |
String | SUBSCRIBED_FEEDS_WRITE | |
String | SYSTEM_ALERT_WINDOW | Allows an application to open windows using the type TYPE_SYSTEM_ALERT , shown on top of all other applications. |
String | TRANSMIT_IR | Allows using the device's IR transmitter, if available |
String | UNINSTALL_SHORTCUT | Allows an application to uninstall a shortcut in Launcher |
String | UPDATE_DEVICE_STATS | Allows an application to update device statistics. |
String | USE_CREDENTIALS | Allows an application to request authtokens from the AccountManager |
String | USE_SIP | Allows an application to use SIP service |
String | VIBRATE | Allows access to the vibrator |
String | WAKE_LOCK | Allows using PowerManager WakeLocks to keep processor from sleeping or screen from dimming |
String | WRITE_APN_SETTINGS | Allows applications to write the apn settings. |
String | WRITE_CALENDAR | Allows an application to write (but not read) the user's calendar data. |
String | WRITE_CALL_LOG | Allows an application to write (but not read) the user's contacts data. |
String | WRITE_CONTACTS | Allows an application to write (but not read) the user's contacts data. |
String | WRITE_EXTERNAL_STORAGE | Allows an application to write to external storage. |
String | WRITE_GSERVICES | Allows an application to modify the Google service map. |
String | WRITE_HISTORY_BOOKMARKS | Allows an application to write (but not read) the user's browsing history and bookmarks. |
String | WRITE_PROFILE | Allows an application to write (but not read) the user's personal profile data. |
String | WRITE_SECURE_SETTINGS | Allows an application to read or write the secure system settings. |
String | WRITE_SETTINGS | Allows an application to read or write the system settings. |
String | WRITE_SMS | Allows an application to write SMS messages. |
String | WRITE_SOCIAL_STREAM | Allows an application to write (but not read) the user's social stream data. |
String | WRITE_SYNC_SETTINGS | Allows applications to write the sync settings |
String | WRITE_USER_DICTIONARY | Allows an application to write to the user dictionary. |
我们可以自定义权限,定义一个permission 就是在AndroidManifest清单文件中添加一个permission标签。
<permission android:description="string resource"
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:permissionGroup="string"
android:protectionLevel=["normal" | "dangerous" |
"signature" | "signatureOrSystem"] />
android:description :对权限的描述,一般是两句话,第一句话描述这个权限所针对的操作,第二句话告诉用户授予app这个权限会带来的后果
android:label: 对权限的一个简短描述
android:name :权限的唯一标识,一般都是使用 应用包名加权限名
android:permissionGroup: 权限所属权限组的名称
android:protectionLevel: 声明权限的级别
normal 是最低的等级,声明了本级别权限的app,系统会默认授予本权限权限,不会提示用户
dangerous 标识本权限对应的操作有安全风险,系统在安装声明此类权限的应用时会提示用户
signature 权限表明的操作只针对使用同一个证书签名的app开放
signatureOrSystem 与signature类似,只是增加了rom中自带的app的声明
android:name 属性是必须的,其他的可选,未写的系统会指定默认值
使用方式
1.声明权限,:权限的唯一标识,一般都是使用 应用包名加权限名
<permission android:name="android.permission.BAIDU_LOCATION_SERVICE"/>
<uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE"/>