From 29e6ae62cbaa186377888d493d4f5c11da1fe34a Mon Sep 17 00:00:00 2001 From: Daniel Yu Date: Mon, 22 Feb 2016 16:29:34 -0800 Subject: [PATCH] docs: Adding N preview docs on Scoped Directory Access feature Adding docs for Scoped Directory Access APIs. Feature formerly known as Scoped Folder Access. Updated with changes suggested by reviewers. Bug: 26571722 Change-Id: I98b3e0ca42adf0b6ec20f99e8e23e03bf18006a6 --- .../preview/features/scoped-folder-access.jd | 125 ++++++++++++++++++ .../images/scoped-folder-access-framed.png | Bin 0 -> 70150 bytes .../images/scoped-folder-access-framed_2x.png | Bin 0 -> 255217 bytes 3 files changed, 125 insertions(+) create mode 100644 docs/html/preview/features/scoped-folder-access.jd create mode 100644 docs/html/preview/images/scoped-folder-access-framed.png create mode 100644 docs/html/preview/images/scoped-folder-access-framed_2x.png diff --git a/docs/html/preview/features/scoped-folder-access.jd b/docs/html/preview/features/scoped-folder-access.jd new file mode 100644 index 0000000000000..f625978dee7e3 --- /dev/null +++ b/docs/html/preview/features/scoped-folder-access.jd @@ -0,0 +1,125 @@ +page.title=Scoped Directory Access +page.keywords=preview,sdk,scoped directory access +page.tags=androidn + +@jd:body + +
+ +
+ +

Apps such as photo apps usually just need access to specific directories in +external storage, such as the Pictures directory. Existing +approaches to accessing external storage aren't designed to easily provide +targeted directory access for these types of apps. For example:

+ + + +

The Android N Developer Preview provides a new simplified API to access +common external storage directories.

+ +

Accessing an External Storage Directory

+ +

Use the StorageManager class to get the appropriate +StorageVolume instance. Then, create an intent by calling the +StorageVolume.createAccessIntent() method of that instance. +Use this intent to access external storage directories. To get a list of +all available volumes, including removable media volumes, use +StorageManager.getVolumesList().

+ +

The following code snippet is an example of how to open the +Pictures directory in the primary shared storage:

+ +
+StorageManager sm = (StorageManager)getSystemService(Context.STORAGE_SERVICE);
+StorageVolume volume = sm.getPrimaryVolume();
+Intent intent = volume.createAccessIntent(Environment.DIRECTORY_PICTURES);
+startActivityForResult(intent, request_code);
+
+ +

The system attempts to grant access to the external directory, and if +necessary confirms access with the user using a simplified UI:

+ + +

Figure 1. An application requesting +access to the Pictures directory.

+ +

If the user grants access, the system calls your +onActivityResult() override with a result code of +Activity.RESULT_OK, and intent data that contains the URI. Use +the provided URI to access directory information, similar to using URIs +returned by the +Storage +Access Framework.

+ +

If the user doesn't grant access, the system calls your +onActivityResult() override with a result code of +Activity.RESULT_CANCELED, and null intent data.

+ +

Note: Getting access to a specific external directory +also gains access to subdirectories within that directory.

+ +

Accessing a Directory on Removable Media

+ +

To use Scoped Directory Access to access directories on removable media, +first add a {@link android.content.BroadcastReceiver} that listens for the +{@link android.os.Environment#MEDIA_MOUNTED} notification, for example:

+ +
+<receiver
+    android:name=".MediaMountedReceiver"
+    android:enabled="true"
+    android:exported="true" >
+    <intent-filter>
+        <action android:name="android.intent.action.MEDIA_MOUNTED" />
+        <data android:scheme="file" />
+    </intent-filter>
+</receiver>
+
+ +

When the user mounts removable media, like an SD card, the system sends a +{@link android.os.Environment#MEDIA_MOUNTED} notification. This notification +provides a StorageVolume object in the intent data that you can +use to access directories on the removable media. The following example +accesses the Pictures directory on removable media:

+ +
+// BroadcastReceiver has already cached the MEDIA_MOUNTED
+// notification Intent in mediaMountedIntent
+StorageVolume volume = (StorageVolume)
+    mediaMountedIntent.getParcelableExtra(StorageVolume.EXTRA_STORAGE_VOLUME);
+volume.createAccessIntent(Environment.DIRECTORY_PICTURES);
+startActivityForResult(intent, request_code);
+
+ +

Best Practices

+ +

Where possible, persist the external directory access URI so you don't have +to repeatedly ask the user for access. Once the user has granted access, call +getContentResolver().takePersistableUriPermssion() with the +directory access URI. The system will persist the URI and subsequent access +requests will return RESULT_OK and not show confirmation UI to the +user.

+ +

If the user denies access to an external directory, do not immediately +request access again. Repeatedly insisting on access results in a poor user +experience.

diff --git a/docs/html/preview/images/scoped-folder-access-framed.png b/docs/html/preview/images/scoped-folder-access-framed.png new file mode 100644 index 0000000000000000000000000000000000000000..0169e4196aff50cded82df53f99c3cb80f2b9789 GIT binary patch literal 70150 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