- All Known Implementing Classes:
AndroidStorageService,DesktopStorageService,IOSStorageService
public interface StorageService
The storage service provides access to the private and public storage locations for
the application offered by the native platform.
Example
File privateStorage = StorageService.create()
.flatMap(StorageService::getPrivateStorage)
.orElseThrow(() -> new FileNotFoundException("Could not access private storage."));
);}
Android Configuration
The permissions android.permission.READ_EXTERNAL_STORAGE and
android.permission.WRITE_EXTERNAL_STORAGE are required if you want to access the external
storage on the device for read and/or write operations respectively. Defining write permissions implicitly
activate read permissions as well.
<manifest ...>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
...
<activity android:name="com.gluonhq.impl.attach.android.PermissionRequestActivity" />
</manifest>
iOS Configuration: none
- Since:
- 3.0.0
-
Method Summary
Modifier and TypeMethodDescriptionstatic Optional<StorageService>create()Returns an instance ofStorageService.Get a storage directory that is private to the environment that is calling this method.getPublicStorage(String subdirectory) Get a public storage directory location.booleanChecks if external storage is available for read access.booleanChecks if external storage is available for read and write access.
-
Method Details
-
create
Returns an instance ofStorageService.- Returns:
- An instance of
StorageService.
-
getPrivateStorage
Get a storage directory that is private to the environment that is calling this method. In the case of iOS or Android, the returned directory is private to the enclosing application.- Returns:
- an optional with a private storage directory for an application
-
getPublicStorage
Get a public storage directory location.Note that on Android the public location could be mapped to a removable memory device and may not always be available. Users of this method are advised to call
isExternalStorageWritable()orisExternalStorageReadable()to avoid surprises.Note also that on Android, permissions will need to be set to access external storage. See: https://developer.android.com/training/basics/data-storage/files.html.
- Parameters:
subdirectory- under the root of public storage that is required. On Android the supplied subdirectory should not be null.- Returns:
- an Optional of a File representing the requested directory location. The location may not yet exist. It is the responsibility of the programmer to ensure that the location exists before using it.
-
isExternalStorageWritable
boolean isExternalStorageWritable()Checks if external storage is available for read and write access.- Returns:
- true if the externalStorage is writable (implies readable), false otherwise
-
isExternalStorageReadable
boolean isExternalStorageReadable()Checks if external storage is available for read access.- Returns:
- true if the externalStorage is at least readable, false otherwise
-