I’m testing Storage Access Framework (SAF) on Fire TV:
-
On Fire OS 7 → SAF works, I can select USB/external storage normally
-
On Fire OS 8 → SAF picker does not show and app has crashed
Is SAF fully supported on Fire OS 8 or any above OS?
Are there any restrictions (scoped storage, permissions, or Fire TV limitations) that prevent accessing external storage via SAF?
Any workaround to allow exporting data to USB/NAS on Fire OS 8 and above if SAF not supported?
Hi @Kiet_Vo_A
SAF is not reliably supported on Fire TV devices running Fire OS 8+. SAF on Fire TV was never officially guaranteed, and Fire OS 8 effectively breaks it. The recommended path is direct file I/O for USB and network protocols for NAS.
On Fire OS 7 it may have worked incidentally, but Fire OS 8 (based on Android 11, API 30) enforces scoped storage and the SAF picker activity is not present - which is why your app will crash with an ActivityNotFoundException.
Workarounds for exporting data to USB/NAS on Fire OS 8+:
- Direct file I/O via scoped storage - Use
context.getExternalFilesDirs(null) to discover mounted USB storage and write directly to your app’s scoped directory on it (/storage//Android/data/<your.package>/). No special permissions or SAF needed.
- Network export for NAS - Use SMB (via jcifs-ng library) or FTP/SFTP to
write files to a NAS directly. Only requires INTERNET permission.
- Guard SAF intents to prevent crashes - If you still want to attempt SAF on devices that might support it, always check
intent.resolveActivity(getPackageManager()) != null before launching. Fall back to direct file I/O or network export if it returns null.
- Version branching - Use
Build.VERSION.SDK_INT >= 30 to branch between SAF
(Fire OS 7 and below) and direct file I/O / network export (Fire OS 8+).
Warm Regards,
Ivy
Dear @Ivy_Mahajan
Thank you very much for your advice.
I will check and raise more question if any issue happen.