Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Android storage in 2026 is purpose-based, not a single shared filesystem. Keep private app data in internal or app-specific directories, publish photos and other shared media through MediaStore, and use the Storage Access Framework (SAF) when a person chooses a document, folder, removable volume, or cloud provider. Scoped storage is the default for apps targeting Android 10 (API 29) and newer, so an app no longer receives an unrestricted view of shared storage. Absolute paths still have a role for interoperability, but they are no longer a reliable contract for every file your app can use.

The storage choice should follow who owns the data

Before choosing an API, classify the file by ownership and lifetime. A configuration file, encryption key, cache, or database that only your app understands belongs in private storage. A photograph, video, song, or download that the user expects to see in other apps belongs in a shared collection. A PDF, EPUB, archive, project file, or folder selected by the user belongs to the provider selected through SAF.

Need Preferred abstraction Reason
Private configuration, secrets, preferences, or structured records Internal files, preferences, or a Room database Other apps are blocked from internal storage, making it appropriate for sensitive data.
Private large files App-specific internal or external directory Modern Android does not require broad storage permission, and uninstall cleanup is explicit.
User photos, video, audio, or downloads MediaStore collections Content is indexed, shareable, and remains after your app is uninstalled.
A user-selected PDF, EPUB, archive, or arbitrary document SAF with ACTION_OPEN_DOCUMENT or ACTION_CREATE_DOCUMENT The system picker works across local, removable, and cloud-backed providers and returns a durable URI.
A user-selected folder SAF with ACTION_OPEN_DOCUMENT_TREE The user grants access to a chosen subtree instead of your app scanning all storage.
Full-device file management, backup, migration, search, or security tooling MANAGE_EXTERNAL_STORAGE only when the core function requires it It is a policy-sensitive exception, and it still does not expose other apps’ private directories.

What scoped storage changes

Android 10 establishes the default

Apps targeting Android 10 (API level 29) and higher receive scoped access to external storage by default. In practice, an app can use its own app-specific area and the media it is allowed to access, rather than treating the shared /sdcard tree as an unrestricted workspace. Android recommends staying within scoped storage unless a file is outside both an app-specific directory and the collections handled by MediaStore.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

App-specific external storage is useful for large private files that do not fit comfortably in internal storage. The directory is isolated from other apps, and the operating system removes it when the app is uninstalled. If the user must keep a file after uninstall, it is not private app data: publish it through MediaStore or let the user choose a destination with SAF.

#1 Best Overall
Yojaro 4Pack Silicone Suction Phone Case Mount, Silicon Adhesive Smartphones Stand Sticky, Hands-Free Phone Accessories Holder for Selfies and Videos (Black & White & Translucent & Light Pink)
  • 【Strong Adsorption】The inspiration of the silicone phone suction case comes from the adhesive force of the octopus. Each suction cup phone mount is 3.15 inches long and 2.17 inches wide, with 24 independent suction cups providing a stronger and more stable suction force, so you don't have to worry about your phone falling during use.
  • 【Back of Phone Suction Grip】Remove the adhesive film on the phone suction cup and stick it on the phone case. You can then fix the phone on any smooth surface, which is very convenient. (The phone suction cup cannot be removed and reused after being attached to the phone case. It is recommended to attach it to a regular phone case, not a valuable one.)
  • 【Widely Used】Our non-slip silicone phone sticky grip mount attaches to almost any flat phone case and make it compatible with common mobile phones such as iPhone and Android.You can shoot, watch videos or video calls in the kitchen, gym, dance studio, bathroom and other places.
  • 【Capture the Wonderful Picture】Whether you are a TikTok creator or just like to share videos and photos, this phone suction cup can help you hands-free capture wonderful videos and photos for sharing with friends.
  • 【Note】You can fix the phone suction cup on a smooth surface such as a mirror or glass. If necessary, wipe the suction cup with a damp cloth to obtain stronger suction. Before releasing your hand, make sure the phone is firmly fixed. (Not applicable to rough walls, wooden surfaces, and other uneven surfaces)

Android 11 removes the legacy escape route

When an app targets Android 11 (API level 30), the system ignores requestLegacyExternalStorage. A migration that depends on that flag therefore fails as soon as the target SDK is raised. Android 11 also prevents an app from accessing another app’s external app-specific directory.

SAF has protected locations as well. On Android 11 and later, the tree picker cannot grant the internal-storage root, a reliable SD-card root, or the Download directory as a tree. Document selection also cannot target Android/data or Android/obb. These restrictions are intentional: a folder picker should not become a way to browse every app’s private or managed files.

MediaStore is the right home for shared media

MediaStore is Android’s indexed abstraction over shared media collections. Use the collection that matches the content type: MediaStore.Images for images, MediaStore.Video for video, MediaStore.Audio for audio, and MediaStore.Downloads for downloadable documents that should appear in shared storage. MediaStore content remains on the device after your app is removed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Writing and updating an item

Create records with collection metadata such as DISPLAY_NAME and RELATIVE_PATH, then write bytes through a ContentResolver. Keep the returned content URI as the item’s identity. Do not design new code around the legacy DATA column, which exposes an absolute path and is not a stable cross-volume contract.

Rank #2
Apple EarPods Headphones with USB-C Plug, Wired Ear Buds with Built-in Remote to Control Music, Phone Calls, and Volume
  • SUPERIOR COMFORT — Unlike traditional circular ear buds, the design of EarPods is defined by the geometry of the ear. Which makes them more comfortable for more people than any other ear bud–style headphones.
  • HIGH-QUALITY AUDIO — The speakers inside EarPods have been engineered to maximize sound output and minimize sound loss, which means you get high-quality audio.
  • BUILT-IN REMOTE — EarPods with USB-C plug also include a built-in remote that lets you adjust the volume, control the playback of music and video, and answer or end calls with a pinch of the cord.
  • COMPATIBILITY — Works with all devices that have a USB-C port.
  • INTEGRATED MICROPHONE — A built-in microphone precisely captures your voice while you’re on the phone, taking a FaceTime call, or summoning Siri — so you’re always heard loud and clear.

For a newly captured image, for example, insert an image row, open the returned URI for output, write the encoded bytes, and mark the row complete. If a write is interrupted, remove or repair the incomplete row rather than leaving a misleading gallery entry. The same pattern applies to video and audio, with collection-specific metadata.

Reading other apps’ media

Scoped storage limits MediaStore.Files mainly to media your app created. Reading media created by other apps requires the relevant media permissions and a policy-compliant reason. Request only the category you need instead of treating the entire library as available by default.

When the photo picker is better

If the user only needs to give your app selected photos or videos, use the system photo picker. It provides a built-in choice flow without granting access to the entire media library. This is safer for one-off editing, attaching an image to a message, or selecting a profile picture. Use MediaStore when your app is creating, organizing, or maintaining shared media rather than merely receiving a selection.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

SAF handles documents, folders, and providers you do not control

Android 4.4 (API 19) introduced the Storage Access Framework, a system-controlled picker over document providers. A provider can represent local flash storage, a removable card, a USB volume, or a cloud service. The provider deliberately hides its physical implementation; the URI and provider contract are the portable interface.

Rank #3
PopSockets Adhesive Phone Grip, Holder- Black | Anti-Drop, Kickstand, Secure Comfortable Hold, Black, Create a Mobile Phone Outfit
  • Secure Hold: Our PopSockets adhesive phone grip gives your cell phone a secure, comfortable hold in hand to help prevent drops while texting, taking photos, or scrolling on the go. Designed to stick firmly to most phone cases and devices.
  • Hands-Free Made Easy: Easily turn your PopSocket into a phone stand to prop up your phone anywhere, perfect for watching videos, video calls, or following recipes. A must-have phone holder that keeps your device secure and ready for anything.
  • Compatibility: Works with all phones, tablets, and Kindles. Sticks best to smooth, hard plastic cases and may not adhere to silicone or textured cases. Easily swap your PopTop to change up your style.
  • Black PopSockets: Simple, refined, and endlessly versatile. A timeless essential for any phone.
  • Travel Must-Have for People On the Go: A must-have travel accessory for flights, flying, airports, air travel, airplanes, planes, international trips, cruises, and long travel days. Key gadget for your airport haul, travel accessories and must-haves.

Choose the intent that matches the required lifetime

Intent Use it for Permission behavior
ACTION_GET_CONTENT Importing a copy into your app Designed for a one-time handoff; your app should copy the bytes into its own storage if it needs an independent file.
ACTION_OPEN_DOCUMENT Opening a provider-owned document for later use Returns a document URI that can be retained when you request and persist the appropriate read or write grant.
ACTION_CREATE_DOCUMENT Letting the user choose where to create or export a document Returns the destination URI; write through ContentResolver rather than assuming a path.
ACTION_OPEN_DOCUMENT_TREE Granting access to a user-selected folder and its permitted descendants The user chooses the subtree, subject to Android’s protected-location restrictions.

Persist access for long-running features

A URI grant can outlive the activity that received it, but only if you request persistable permission where the provider supports it and call the content resolver’s persist operation with the granted flags. Store the URI string and the flags in your database, then restore the grant after a reboot. On every use, check whether the grant still exists: the user may revoke it, the removable volume may be absent, or the provider may have gone offline.

Read and write through streams and provider metadata. A provider may not expose a local file at all, so code that converts every URI to an absolute path will fail for virtual or cloud-backed documents. Close streams promptly, handle I/O errors, and show the user which previously selected location needs to be re-authorized.

Can an app still use direct filesystem paths?

Yes, but only within the access that scoped storage grants. Android 11 permits direct paths and native APIs such as File and fopen() for shared-media interoperability. This is useful when a third-party media library accepts only a path or when native code must process a local media file.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A path is an interoperability convenience, not authoritative identity. The path can change when a removable volume is mounted differently, a provider controls the document, or the user moves or deletes the item. Keep the MediaStore or SAF URI, its permissions, and relevant metadata as the source of truth. Resolve a path only at the boundary where a library requires one, and provide a fallback that works directly from a URI or stream whenever possible.

Rank #4
Sale
360° Rotating Stainless Steel Phone Tether Tab (Silvery 3-Pack) - Universal for iPhone & Other Phones (Fits Wristbands/Necklaces/Crossbody Straps)
  • [360 ° Flexible Rotation Design] Comes with a rotatable lanyard ring that supports 360 ° free rotation, effectively solving the problem of twisted and tangled lanyards
  • [Wide compatibility] The ultra-thin 0.02-inch design does not block the charging port at all, and both wired and wireless charging can be used directly without removing the pad. Compatible with most smartphones such as iPhone, compatible with various wristbands, lanyards, crossbody straps, and keychains
  • [Durable and Portable Material] Premium rust-resistant stainless steel material with good flexibility, which not only avoids scratching the phone case, but also has excellent anti rust and anti fading performance
  • [Multi scenario Practical] Paired with a lanyard or wristband, hands-free use can be achieved. The phone is within reach and not easily dropped, ideal for daily commuting and outdoor activities. Suitable for full coverage phone cases, does not support half coverage phone cases
  • [Quality Service] If you find any damage or other issues with the product upon receipt, please contact us immediately. We will handle it quickly

When MANAGE_EXTERNAL_STORAGE is justified

MANAGE_EXTERNAL_STORAGE grants broad read and write access to shared storage, including MediaStore.Files, USB OTG and SD-card roots, and broad internal-storage write access with exclusions. It still does not let an app enter another app’s app-specific directory.

Android identifies file managers, backup and restore tools, antivirus or security utilities, document-management tools, on-device search, encryption tools, and device-to-device migration as examples of functions that may need this level of access. Google Play evaluates the request against the app’s core functionality. A utility that merely wants easier browsing, import, or export should use SAF, MediaStore, or the photo picker instead.

Request it only after redesigning the normal path

  • Describe the feature that cannot work with SAF, MediaStore, or the photo picker.
  • Confirm that broad access is central to the app rather than an optional convenience.
  • Declare the permission and implement the platform’s special-access flow.
  • Handle denial by disabling only the affected feature, not by blocking unrelated app functions.
  • Document why the permission is necessary when submitting to Google Play.

Migration plan for a legacy path-based app

  1. Inventory every path. Record whether each file is private app data, shared media, a downloadable document, or a user-selected folder. Include files on removable volumes and any assumptions about Android/data or Android/obb.
  2. Move private data first. Put settings, credentials, databases, caches, and private large files in internal storage or the directory returned by getExternalFilesDir(). Plan for uninstall removal and do not promise users that these files are permanent.
  3. Publish shared output correctly. Insert photos, video, and audio into the matching MediaStore collection. For non-media exports, use a user-chosen SAF destination or an app-owned subdirectory of Download when that behavior fits the product.
  4. Replace document browsing. Launch ACTION_OPEN_DOCUMENT, ACTION_CREATE_DOCUMENT, or ACTION_OPEN_DOCUMENT_TREE according to the operation. Keep the returned URI instead of reconstructing a path.
  5. Persist long-term grants. Save URI permissions and verify them after restart, upgrade, volume removal, or account changes. Build a reauthorization path for lost grants.
  6. Isolate path-dependent libraries. Keep path conversion at the integration boundary, and test the same feature with a MediaStore URI, a local SAF document, a removable-volume document, and a cloud-backed provider.
  7. Test Android 11 and newer explicitly. Verify blocked storage roots, Download tree selection, Android/data, and Android/obb. Also test an upgrade from a version that used legacy paths.
  8. Review broad-permission necessity. Request MANAGE_EXTERNAL_STORAGE only if the app’s documented primary function is a qualifying file-management, backup, search, security, encryption, or migration workflow.

Common failures and practical fixes

“I cannot open Android/data”

This is expected on Android 11 and later for normal SAF selection. Move files into an app-specific directory, expose an intentional export through MediaStore or SAF, or redesign the workflow so it does not depend on another app’s private files. Broad access does not turn another app’s private directory into a supported interchange area.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

“The path worked on my test phone but is null or missing elsewhere”

The item may be cloud-backed, on a removed volume, or owned by a provider that does not expose a filesystem path. Keep and reopen the URI with ContentResolver. If a native library requires a path, copy the document into your app-specific cache first, subject to the user’s rights and the file’s size.

Best Value
Anteel 2 Pack Silicone Suction Cup Phone Case Mount Double Sided, Hands-Free Silicon Phone Grip with Higher Suction Power for Selfies and Videos, Non Slip Phone Accessories (LightPink&White)
  • 【PKYAA Double Sided Silicone Suction Phone Case Mount】PKYAA With Double Sided 40 Strong and Reliable individual suction cups, PKYAA provides a thicken and upgraded universal silicon suction mount for your phone.
  • 【Friendly to Content Creators】If you are a content creator or an online influencer, you can create videos anywhere with this suction mount completely hands free with this silicone cell phone mount for cases.
  • 【HANDS-FREE & Adhere to Mirrors】This Double Sided silicone suction phone case mount allows you to stick your phone to the mirror easily. No longer holding your phone in one hand to watch video tutorials while making up.
  • 【Strong Grip on the Smooth Surface】You can easily hang your phone anywhere with a smooth surface. All you do is you clean off your phone and smooth surface. It is STURDY and it not only sticks to mirrors, it also sticks to windows, it sticks to refrigerators, tiles and other clean, flat surfaces.
  • 【Press Down Firmly Every 30 Minutes】Use your palm or fingers to press the phone down firmly and check it's secure before letting go. Apply even pressure for a few seconds to allow the suction cup to adhere properly. To maintain the grip and prevent accidental falls, it's a good practice to periodically reapply pressure to the suction cup.

“My exported file disappeared after uninstall”

That file was likely stored in internal or app-specific storage. Put user-retained exports in MediaStore or ask the user to choose a destination with ACTION_CREATE_DOCUMENT. Treat uninstall cleanup as a feature of private storage, not a data-loss bug.

“The picker does not show my cloud files”

SAF only displays providers installed and enabled on the device. Check that the provider is signed in, request a document rather than a raw path, and handle an empty or unavailable provider without assuming local storage is the only option.

“A persisted URI stopped working”

Persisted grants can be revoked, and removable or remote providers can disappear. Catch permission and I/O failures, remove invalid grants from your database, and ask the user to select the document or folder again. Do not silently substitute a different file.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A durable design pattern for 2026

Represent storage objects in your data model with a type and an authority: private files point to an app-owned relative name, shared media points to a MediaStore URI, and user documents point to an SAF URI plus persisted grant flags. Keep display name, MIME type, size, and last-known location as metadata, but do not make an absolute path the primary key.

Separate import, edit, and export operations. Importing through ACTION_GET_CONTENT can copy bytes into private working storage. Editing an ongoing user document should use ACTION_OPEN_DOCUMENT and write back through its URI. Exporting a finished result should use MediaStore for shareable media or ACTION_CREATE_DOCUMENT when the user must choose the destination. This separation makes uninstall behavior, permissions, and recovery predictable.

Filesystem abstractions remain valuable because Android storage is no longer guaranteed to be local, permanent, or path-addressable. A URI lets the user choose a removable card or a cloud provider without forcing your app to know how that provider stores bytes. Use direct paths where a library genuinely requires them, but let scoped storage, MediaStore, and SAF define the supported behavior of the app.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.