Android categorizes permissions into different types, including install-time permissions, runtime permissions, and special permissions. Each permission's type indicates the scope of restricted data that your app can access, and the scope of restricted actions that your app can perform, when the system grants your app that permission.
Install-time permissions give your app limited access to restricted data, and they allow your app to perform restricted actions that minimally affect the system or other apps. When you declare install-time permissions in your app, the system automatically grants your app the permissions when the user installs your app. An app store presents an install-time permission notice to the user when they view an app's details page, as shown in Figure 2.
Android includes several sub-types of install-time permissions, including normal permissions and signature permissions. These permissions allow access to data and actions that extend beyond your app's sandbox. However, the data and actions present very little risk to the user's privacy, and the operation of other apps. The system assigns the "normal" protection level to normal permissions, as shown on the permissions API reference page. If the app declares a signature permission that another app has defined, and if the two apps are signed by the same certificate, then the system grants the permission to the first app at install time.
Otherwise, that first app cannot be granted the permission. The system assigns the "signature" protection level to signature permissions, as shown on the permissions API reference page. Runtime permissions, also known as dangerous permissions, give your app additional access to restricted data, and they allow your app to perform restricted actions that more substantially affect the system and other apps. Therefore, you need to request runtime permissions in your app before you can access the restricted data or perform restricted actions.
When your app requests a runtime permission, the system presents a runtime permission prompt, as shown in Figure 3. Many runtime permissions access private user data , a special type of restricted data that includes potentially sensitive information. Examples of private user data include location and contact information. The microphone and camera provide access to particularly sensitive information. Therefore, the system helps you explain why your app accesses this information.
The system assigns the "dangerous" protection level to runtime permissions, as shown on the permissions API reference page. Special permissions correspond to particular app operations. Only the platform and OEMs can define special permissions. Additionally, the platform and OEMs usually define special permissions when they want to protect access to particularly powerful actions, such as drawing over other apps.
The Special app access page in system settings contains a set of user-toggleable operations. Many of these operations are implemented as special permissions. Each special permission has its own implementation details. The instructions for using each special permission appear on the permissions API reference page. The system assigns the "appop" protection level to special permissions. App permissions build upon system security features and help Android support the following goals related to user privacy:.
This section presents a set of core best practices for using permissions effectively in your app. For more details on how you can work with permissions on Android, visit the app permissions best practices page. When the user requests a particular action in your app, your app should request only the permissions that it needs to complete that action.
Depending on how you are using the permissions, there might be an alternative way to fulfill your app's use case without relying on access to sensitive information. Request permissions as late into the flow of your app's use cases as possible. For example, if your app allows users to send audio messages to others, wait until the user has navigated to the messaging screen and has pressed the Send audio message button.
After the user presses the button, your app can then request access to the microphone. When you include a library, you also inherit its permission requirements. Be aware of the permissions that each dependency requires, and what those permissions are used for.
When you make a permissions request, be clear about what you're accessing, and why, so users can make informed decisions. When you access sensitive data or hardware, such as the camera or microphone, provide a continuous indication in your app if the system doesn't already provide these indicators. This reminder helps users understand exactly when your app accesses restricted data or performs restricted actions. Permissions aren't only for requesting system functionality.
Your app's system components can restrict which other apps can interact with your app, as described on the page about how to restrict interactions with other apps. Content and code samples on this page are subject to the licenses described in the Content License. App Basics. Build your first app. App resources.
Resource types. App manifest file. Device compatibility. Multiple APK support. Tablets, large screens, and foldables. Build responsive UIs. Build for foldables. Getting started. Handling data. User input. Watch Face Studio. Health services. Creating watch faces. Android TV. Build TV Apps. Build TV playback apps. Help users find content on TV. Recommend TV content. Watch Next. Build TV games.
Build TV input services. TV Accessibility. Android for Cars. Build media apps for cars. Build navigation, parking, and charging apps for cars. Android Things. Supported hardware. Queries are filtered lists of work items based on criteria that you define by using a query editor. Adhoc searches are powered by a semantic search engine.
Delivery plans display work items as cards against a calendar view. This format can be an effective communication tool with managers, partners, and stakeholders for a team. Create, edit, or delete a delivery plan, Contributors can only edit or delete plans that they create. Manage permissions for a delivery plan, Contributors can only manage permissions for plans that they create.
Stakeholders for private projects have no access to Repos. Stakeholders for public projects have the same access to Repos as Contributors. Stakeholders for private projects have no access to Code. You can use Git repositories to host and collaborate on your source code. For an overview of code features and functions. Read clone, fetch, and explore the contents of a repository ; also, can create, comment on, vote, and Contribute to pull requests.
Contribute to a repository, Create branches , Create tags , and Manage notes. Create repository , Delete repository , and Rename repository. Edit policies , Force push rewrite history, delete branches and tags , Manage permissions , Remove others' locks. Branch Creation : At the repository level, can push their changes to branches in the repository. Does not override restrictions in place from branch policies.
At the branch level, can push their changes to the branch and lock the branch. Contribute : At the repository level, can push their changes to branches in the repository. Note Management : Can push and edit Git notes to the repository.
They can also remove notes from items if they have the Force permission. Tag Creation : Can push tags to the repository, and can also edit or remove tags if they have the Force permission. Administer : Delete and rename repositories: If assigned to the top-level Git repositories entry, can add additional repositories. At the branch level, users can set permissions for the branch and unlock the branch.
The Administer permission set on an individual Git repository does not grant the ability to rename or delete the repository. These tasks require Administer permissions at the Git repositories top-level. Rewrite and destroy history force push : Can force an update to a branch and delete a branch. A force update can overwrite commits added from any user. Users with this permission can modify the commit history of a branch.
Tasks such as create, delete, or rename a TFVC repository are not supported. Once a TFVC repository is created you can't delete it. Also, you can only have one TFVC repository per project. This is different from Git repositories which allow for adding, renaming, and deleting multiple repositories. Administer labels , Manage branches , Manage permissions , Revise other users' changes , Undo other users' changes , Unlock other users' changes.
You can define and manage your builds and releases from the web portal Pipelines hub. For an overview of pipelines features and functions, see Continuous integration on any platform. You use task groups to encapsulate a sequence of tasks already defined in a build or a release pipeline into a single reusable task. Task group permissions follow a hierarchical model. You can set defaults for all permissions at the project-level and over-write on an individual task group pipeline.
You define and manage task groups in the Task groups tab in Azure Pipelines. You can define and manage your builds and releases from the web portal, Build and Release. From the web portal, you can set permissions for all or individual builds and releases. See Set build and release permissions. For an overview of manual test features and functions, see Testing overview.
Users granted Visual Studio Enterprise or Advanced access level can define and manage manual tests from the web portal. Edit work items in this node Manage test plans Manage test suites.
The Change work item type permission doesn't apply to test-specific work items. Even if you choose this feature from the work item form, changing the work item type is disallowed. You can manage feeds from the web portal, Artifacts.
Users granted Stakeholder or Basic access, or higher can access Azure Artifacts features. To set permissions, see Secure feeds using permissions. Users granted Basic access or higher can access Azure Artifacts features. Users granted Stakeholder access have no access to Azure Artifacts. Users granted Basic access or higher can access Package management features.
Users granted Stakeholder access have no access. Feeds have four permission roles: Readers, Collaborators, Contributors, and Owners. Owners can add user accounts or security groups to any role. To access a feed in a different organization, a user must be given access to the project hosting that feed. Feeds have three permission roles: Readers, Contributors, and Owners.
Owners can add user accounts or security groups -to any role. Paging Library. Paging 2. Data layer libraries. How-To Guides. Advanced Concepts. Threading in WorkManager. App entry points. App shortcuts. App navigation. Navigation component. App links. Dependency injection.
Core topics. App compatibility. Interact with other apps. Package visibility. Intents and intent filters.
User interface. Add motion to your layout with MotionLayout. MotionLayout XML reference. Improving layout performance. Custom view components. Look and feel. Splash screens. Add the app bar. Control the system UI visibility. Supporting swipe-to-refresh. Pop-up messages overview. Adding search functionality.
Creating backward-compatible UIs. Home channels for mobile apps. App widgets. Media app architecture. Building an audio app. Building a video app. The Google Assistant. Routing between devices. Background tasks. Manage device awake state. Save to shared storage. Save data in a local database. Sharing simple data. Sharing files. Sharing files with NFC. Printing files. Content providers. Autofill framework. Contacts provider. Data backup. Remember and authenticate users.
User location. Using touch gestures. Handling keyboard input. Supporting game controllers. Input method editors. Performing network operations. Transmit network data using Volley. Perform network operations using Cronet. Transferring data without draining the battery.
Reduce network battery drain. Transfer data using Sync Adapters. Bluetooth Low Energy. Wi-Fi infrastructure. Discover and connect. Runtime API reference. Web-based content.
0コメント