Use the storage API that matches who owns the data. Keep private app state in internal or app-specific storage, publish shareable photos and other media through MediaStore, and let users choose documents or folders with the Storage Access Framework (SAF). Scoped storage is the default for apps targeting Android 10 (API 29) and newer, so an unrestricted view of shared storage is no longer the normal contract. Direct filesystem paths still have a role for interoperability, but a path is no longer a reliable identity for every file an Android app can use.
The Android storage model in 2026
Android storage is a purpose-based access model layered over several providers. An app normally gets access to its own private area, selected shared media, or documents and directories that the user explicitly grants. The operating system can therefore enforce isolation without preventing people from sharing photos, opening a PDF from a cloud service, or copying files from removable storage.
As an Amazon Associate I earn from qualifying purchases.
Scoped storage applies by default when an app targets Android 10 (API level 29) or higher. Instead of treating the shared /sdcard namespace as an unrestricted drive, the app works with its app-specific directories and the media or documents allowed by the relevant API. Android recommends staying within scoped storage unless a required file is outside an app-specific directory and outside the collections that MediaStore can handle.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsThe target SDK matters. On Android 11 (API level 30) and later, once an app targets API 30, the system ignores requestLegacyExternalStorage. A legacy path-based design must be migrated rather than kept alive with that flag.
#1 Best Overall
- 【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)
Choose an API by data ownership
| What the data is | Preferred API | Reason |
|---|---|---|
| Private configuration, credentials, or database records | Internal files, preferences, or Room | Other apps are blocked from the app’s internal storage. |
| Private large files used only by your app | App-specific internal or external directory | Modern Android does not require broad storage permission for these locations, and uninstall cleanup is explicit. |
| User photos, videos, audio, or downloads that should remain after uninstall | MediaStore collections | Shared, indexed media survives removal of the creating app. |
| A user-selected PDF, EPUB, archive, or other document | SAF with ACTION_OPEN_DOCUMENT or ACTION_CREATE_DOCUMENT |
The system picker works across local, removable, and cloud-backed document providers. |
| A user-selected folder | SAF with ACTION_OPEN_DOCUMENT_TREE |
The user grants access to the chosen directory subtree. |
| Device-wide file management, backup, migration, search, or security | MANAGE_EXTERNAL_STORAGE only when core functionality requires it |
It is a narrow, policy-sensitive exception, not a general replacement for SAF or MediaStore. |
Private app data: internal and app-specific storage
Use internal storage for secrets and configuration
Internal files, preferences, and a Room database are appropriate for settings, credentials, indexes, and other data that has meaning only to your app. Other apps are blocked from this area, so it is a better default for sensitive information than a shared directory. The same principle applies to caches, although caches should always be treated as disposable.
Use an app-specific directory for large private files
Large downloads, rendered assets, offline maps, and other private payloads can live in the app-specific internal or external directory. On current Android releases, these locations do not require a broad shared-storage permission. The trade-off is lifecycle: app-specific files are removed when the app is uninstalled. If a user expects a file to remain available to other apps or after uninstall, it is not app-private data and should be published through a shared API instead.
MediaStore for shared media and downloads
MediaStore is Android’s indexed abstraction for shared media collections. Use the appropriate collection through ContentResolver: MediaStore.Images for photos, MediaStore.Video for videos, MediaStore.Audio for audio, and MediaStore.Downloads for downloads. Media inserted into these collections remains on the device after the creating app is uninstalled.
Write with collection metadata
When creating or updating an item, provide metadata such as DISPLAY_NAME and RELATIVE_PATH. Those fields let Android place the item in the correct shared collection without forcing your code to manufacture an absolute path. Keep the URI returned by the insert operation as the item’s identity.
Rank #2
- 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.
Understand MediaStore.Files limits
With scoped storage enabled, MediaStore.Files is primarily useful for media your app created. Access to media created by other apps requires the relevant media permissions and a policy-compliant use case. Do not design new code around the legacy DATA column or assume that every MediaStore row maps to a stable path.
Use the photo picker for user-owned media
If the task is simply to let a user choose photos or videos, the system photo picker provides a built-in selection flow without granting the app access to the entire media library. This is a narrower permission boundary than asking for broad media visibility and is usually the right choice for an import or attachment feature.
SAF: the right abstraction for documents and folders
The Storage Access Framework, introduced in Android 4.4 (API 19), puts a system-controlled picker in front of document providers. A provider may represent internal flash storage, a removable card, a USB volume, or a cloud service. Its physical implementation is intentionally hidden behind a provider contract, so a URI can identify content even when no local absolute path exists.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallPick a document for one-time import
ACTION_GET_CONTENT asks the user to choose content for your app to import, usually as a copy. Read the returned URI with ContentResolver streams and copy the bytes into your own app-specific location if the app needs an independent working copy.
Rank #3
- 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.
Keep access to a provider-owned document
ACTION_OPEN_DOCUMENT is for opening a document whose authoritative copy remains with the provider. Request the persistable read or write flag, then call takePersistableUriPermission for the returned URI when the app must edit or reopen it after the current activity ends. Store the URI and provider metadata, not a guessed filesystem path.
Let the user grant a folder
ACTION_OPEN_DOCUMENT_TREE lets the user select a directory and grants access to that subtree. It is the best fit for a folder-based workflow such as choosing an export destination or a project directory. The grant is still bounded by protected-location rules and by the permissions the provider exposes.
Why paths fail for SAF content
A document URI may point to remote bytes, a virtual document, a removable volume that is not mounted later, or a provider that manages its own naming and permissions. Code that requires java.io.File or a native path cannot represent all of those cases. Use ContentResolver.openInputStream(), openOutputStream(), or a provider-specific file descriptor where available. Treat a path as an optimization for a library that demands one, not as the canonical identity.
Scoped-storage boundaries you must test
Other apps’ app-specific directories are off-limits
Scoped storage blocks an app from browsing another app’s external app-specific directory. This remains true even when the other directory is physically visible under shared storage. A file manager-like screen cannot infer that a visible directory is readable merely because it has a familiar name.
Rank #4
- [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
Android 11 restrictions on SAF navigation
On Android 11 and newer, SAF tree selection cannot target the internal-storage root, reliable SD-card roots, or the Download directory as a tree. File selection also cannot target Android/data or Android/obb. These restrictions are enforced by the system picker; changing labels in your app does not bypass them.
Plan migration before raising the target SDK
Apps moving to API 30 or later should inventory every stored path before release. A path that worked under a legacy target can become unreadable, and requestLegacyExternalStorage will not restore it once the app targets Android 11. Migrate files into app-specific storage, MediaStore, or a user-granted SAF location while the old version can still read them.
When direct filesystem paths still make sense
Android 11 permits direct file paths and native APIs such as File and fopen() for shared-media interoperability. This is useful when a third-party codec, image library, or native component accepts only a path. The permission boundary does not disappear: the path must still refer to data your app is allowed to access under scoped storage.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Use a two-layer design when a library needs a path. Keep the MediaStore or SAF URI as the authoritative identity and permission record, resolve or materialize a temporary path only for the operation, and update the URI-backed item rather than treating the temporary path as permanent. Removable volumes can change, providers can own the bytes elsewhere, and users can move or delete content, so a cached absolute path can become stale.
Best Value
- 【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.
All-files access: a narrow exception
MANAGE_EXTERNAL_STORAGE grants broad read and write access to shared storage, access to MediaStore.Files, USB OTG and SD-card roots, and broad internal-storage write access subject to exclusions. It still does not let an app read other apps’ private app-specific directories.
Android identifies file managers, backup and restore tools, antivirus and security utilities, document-management tools, on-device search, encryption utilities, and device-to-device migration as examples of core functions that may justify this permission. Google Play evaluates requests, so the permission must support the app’s primary purpose rather than a convenience feature. The official guidance is to request it only when SAF or MediaStore cannot effectively satisfy the core workflow.
Decision test before requesting it
- Can the feature operate inside your app-specific directory? If yes, keep it private.
- Is the output a photo, video, audio item, or download? If yes, publish it through MediaStore.
- Can the user select each document or folder involved? If yes, use SAF and persist the grants needed for later work.
- Does the app’s defining job require scanning or transforming broad shared storage, removable roots, or USB storage? Document that requirement and verify that it fits an eligible category before requesting all-files access.
A practical migration plan for legacy path-based apps
- Inventory and classify. List every legacy path and label each file as private app data, shared media, or a user document. Include files on removable storage and files your app creates for export.
- Move private data. Put private files in internal storage or the directory returned by
getExternalFilesDir(). For shared non-media output, use an app-owned subdirectory ofDownloador a document location selected through SAF. - Insert shareable media. Create photos, videos, audio, and downloads through the matching MediaStore collection. Save the returned URI and relevant metadata in your database.
- Replace document browsing. Use
ACTION_OPEN_DOCUMENT,ACTION_CREATE_DOCUMENT, andACTION_OPEN_DOCUMENT_TREEinstead of enumerating arbitrary paths. Persist URI permissions for documents or folders that need long-term access. - Refactor readers and writers. Route normal I/O through
ContentResolverstreams. Add a path adapter only at the boundary of a library that cannot consume a URI. - Test Android 11 and newer. Verify behavior when the user selects storage roots,
Download,Android/data, orAndroid/obb; each protected case should fail clearly and offer a supported alternative. - Review permissions and policy. Remove obsolete broad-storage requests. Request
MANAGE_EXTERNAL_STORAGEonly when the app’s documented core function truly needs its scope.
Common failure modes and fixes
The app cannot open a path under Android/data
This is an expected Android 11+ restriction, not a missing string or slash in the path. Redesign the workflow around a user-granted document URI, an app-specific directory, or an exported copy in a supported shared collection.
A saved path works until a file is moved
Store the MediaStore or SAF URI and provider metadata as the durable reference. Re-query or reopen through the provider instead of assuming the old absolute path remains valid.
Uninstall deleted an important file
The file was stored in app-specific storage. Put user-owned media in MediaStore or let the user choose a document destination with SAF when retention outside the app is part of the requirement.
A cloud document has no usable File object
That is normal for a provider-backed URI. Stream the content with ContentResolver; copy it into an app-specific working file only when a library requires local random access.
The durable rule for 2026
Design storage around ownership and lifecycle, not around the directory tree visible on one device. Internal and app-specific storage protects private state, MediaStore publishes indexed media that should survive uninstall, and SAF carries the user’s authority across local, removable, and cloud providers. Filesystem paths remain a useful interoperability escape hatch, but keeping URIs and provider contracts as the source of truth is what makes an Android storage implementation resilient across API levels and devices.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Quick Recap
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.

