aboutsummaryrefslogtreecommitdiff
path: root/system/RuntimePermissions/template-params.xml
diff options
context:
space:
mode:
Diffstat (limited to 'system/RuntimePermissions/template-params.xml')
-rw-r--r--system/RuntimePermissions/template-params.xml35
1 files changed, 20 insertions, 15 deletions
diff --git a/system/RuntimePermissions/template-params.xml b/system/RuntimePermissions/template-params.xml
index 445b6a39..52e9f9fd 100644
--- a/system/RuntimePermissions/template-params.xml
+++ b/system/RuntimePermissions/template-params.xml
@@ -19,23 +19,25 @@
<group>System</group>
<package>com.example.android.system.runtimepermissions</package>
- <minSdk>23</minSdk>
+ <minSdk>15</minSdk>
- <dependency>com.android.support:appcompat-v7:21.+</dependency>
+ <dependency>com.android.support:appcompat-v7:23.0.0</dependency>
+ <dependency>com.android.support:support-v4:23.0.0</dependency>
+ <dependency>com.android.support:design:23.0.0</dependency>
<strings>
<intro>
<![CDATA[
- This sample shows runtime permissions available in the Android M and above.
- Display the log to follow the execution.
- If executed on an Android M device, an additional option to access contacts is shown.
+ This sample shows runtime permissions available in Android M and above.
+ Display the log on screen to follow the execution.
+ If executed on an Android M device, an additional option to access contacts is shown
+ that is declared with optional, M and above only permissions.
]]>
</intro>
</strings>
<template src="base"/>
<common src="logger"/>
- <common src="activities"/>
<metadata>
<status>DRAFT</status>
@@ -51,14 +53,15 @@
</screenshots>
<api_refs>
<android>android.app.Activity</android>
+ <android>android.support.v4.app.ActivityCompat</android>
<android>android.Manifest.permission</android>
</api_refs>
<description>
<![CDATA[
-This sample shows runtime permissions available in the Android M and above.
-It shows how to check and request permissions at runtime and how to declare permissions for M-devices
-only.
+This sample shows runtime permissions available in Android M and above.
+It shows how to check and request permissions at runtime, handle backwards compatibility using the
+support library and how to declare optional permissions for M-devices only.
]]>
</description>
@@ -68,17 +71,19 @@ Android M introduced runtime permissions. Applications targeting M and above nee
permissions at runtime.
All permissions still need to be declared in the AndroidManifest. However, when accessing APIs that
require a permission, the Activity or Fragment has to verify that the permission has been granted
-or request the missing permissions. Permissions are checked through
-Activity#requestPermissions(String[], int) and Fragment#requestPermissions(String[], int).
-Permission requests are sent through Activity#requestPermissions(String[]), and the response
-received in the callback Activity#onRequestPermissionsResult(int, permissions[], int[]).
+or request the missing permissions using calls through the support library. Permissions are checked
+through ActivityCompat#checkSelfPermission(Context, String) or
+ContextCompat#checkSelfPermission(Context, String).
+Permission are requested through ActivityCompat#requestPermissions(Activity, String[], int), and the response
+received in a callback to ActivityCompat.OnRequestPermissionsResultCallback#onRequestPermissionsResult(int, String[], int[]).
Applications can provide an additional rational for the use of permissions after calling
-Activity#shouldShowRequestPermissionRationale(String). This call will return true if the
+ActivityCompat#shouldShowRequestPermissionRationale(Activity,String). This call will return true if the
application should provide the user with more context on why the requested permissions is needed,
for example if the permission request has been denied before.
If an application targets an SDK below M, all permissions are granted at runtime and are available
-when the application is running. However, if permissions have been turned off in the system settings
+when the application is running. The support library calls handle these checks appropriately.
+However, if permissions have been turned off in the system settings
for an application targeting an SDK below M, the API will return empty or no data.
]]>
</intro>