| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Copyright 2016 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <sample> |
| <name>ScopedDirectoryAccess</name> |
| <group>Content</group> <!-- This field will be deprecated in the future |
| and replaced with the "categories" tags below. --> |
| <package>com.example.android.scopeddirectoryaccess</package> |
| |
| <minSdk>24</minSdk> |
| <compileSdkVersion>27</compileSdkVersion> |
| <targetSdkVersion>24</targetSdkVersion> |
| |
| <!-- Include additional dependencies here.--> |
| <dependency>com.android.support:recyclerview-v7:27.0.2</dependency> |
| |
| <template src="base" /> |
| |
| <strings> |
| <intro> |
| <![CDATA[ |
| This sample demonstrates how to use the Scoped Directory Access API introduced in Android N |
| to easily access to specific directories such as Pictures, Downloads instead of requesting |
| READ_EXTERNAL_STORAGE or WRITE_EXTERNAL_STORAGE in your manifest. |
| ]]> |
| </intro> |
| </strings> |
| |
| <metadata> |
| <status>DEPRECATED</status> |
| <categories>Content</categories> |
| <technologies>Android</technologies> |
| <languages>Java</languages> |
| <solutions>Mobile</solutions> |
| <level>BEGINNER</level> |
| <icon>screenshots/icon-web.png</icon> |
| <screenshots> |
| <img>screenshots/1.png</img> |
| <img>screenshots/2.png</img> |
| <img>screenshots/3.png</img> |
| </screenshots> |
| <api_refs> |
| <android>android.os.storage.StorageManager</android> |
| <android>android.os.storage.StorageVolume</android> |
| </api_refs> |
| |
| <description> |
| <![CDATA[ |
| This sample demonstrates how to use the Scoped Directory Access API introduced in Android N |
| to easily access to specific directories such as Pictures, Downloads instead of requesting |
| READ_EXTERNAL_STORAGE or WRITE_EXTERNAL_STORAGE in your manifest. |
| ]]> |
| </description> |
| |
| <!-- Multi-paragraph introduction to sample, from an educational point-of-view. |
| Makrdown formatting allowed. This will be used to generate a mini-article for the |
| sample on DAC. --> |
| <intro> |
| <![CDATA[ |
| This sample demonstrates how to use the Scoped Directory Access API that provides easy way to |
| access specific directories instead of: |
| - Requesting READ_EXTERNAL_STORAGE or WRITE_EXTERNAL_STORAGE in your manifest, which allows |
| access to all public directories on external storage. |
| - Using the Storage Access Framework, where the user usually picks directories via a System UI, |
| which is unnecessary if you app always accesses to the same external directory. |
| |
| To access to a specific directory, use a new Intent created using the StorageVolume class like |
| following: |
| |
| ``` |
| StorageManager sm = getSystemService(StorageManager.class); |
| StorageVolume volume = sm.getPrimaryVolume(); |
| Intent intent = volume.createAccessIntent(Environment.DIRECTORY_PICTURES); |
| startActivityForResult(intent, request_code); |
| ``` |
| |
| Note that the argument passed to StorageVolume.createAccessIntent needs to be one of the |
| values of Environment.DIRECTORY_\*. |
| |
| Once the user grants the access, `onActivityResult` override will be called with a |
| result code of `Activity.RESULT_OK` and an intent data that contains the URI representing |
| the directory. |
| ]]> |
| </intro> |
| </metadata> |
| </sample> |