Для работы с файлами создайте приложение «FileActivity», в котором используются методы, реализованные в модуле FileConnectorApi.
Приложение позволяет скачивать файлы на мобильное устройство с файлового сервера или отправлять файлы на него. Приложение работает аналогично приложению Яндекс.Диск или Google.Drive.
Перед созданием приложения «FileActivity» добавьте настройку подключения к папке на файловом сервере.
Приложение «FileActivity» состоит из одного экрана и кнопок:
«FILEGET». Получение файла;
«FILEGETMETA». Получение метаинформации файла;
«FILEPUT». Отправление файла;
«FILEDELETE». Удаление файла на сервере;
«DIRECTORYGET». Получение списка файлов указанной директории.
Для просмотра результата работы приложения используйте интерактивный пример:
Нажмите любую кнопку
public class FileActivity extends AppCompatActivity {
private static final String MY_URL = "http://testmasterfmp.fsight.cloud/";
private static final VersionAPI MY_VERSION_API = VersionAPI.V_1;
private static final String MY_ENVIRONMENT = "Leonid_environment";
private static final String MY_PROJECT = "Leonid_project";
private static final String MY_VERSION = "v1";
private static final String MY_LOGIN = "Leonid";
private static final String MY_PASSWORD = "123123";
private static final String MOUNT_NAME = "nfs4";
private static final String TAG = "FileActivity";
private HyperHive hyperHive;
private EditText editText;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_file);
editText = findViewById(R.id.edit_text_file);
editText.setText("123.txt");
textView = findViewById(R.id.text_view_file);
Handler uiHandler = new Handler();
hyperHive = new HyperHiveState(getApplicationContext())
.setHostWithSchema(MY_URL)
.setApiVersion(MY_VERSION_API)
.setEnvironmentSlug(MY_ENVIRONMENT)
.setProjectSlug(MY_PROJECT)
.setVersionProject(MY_VERSION)
.setHandler(uiHandler)
.buildHyperHive();
authentication();
}
public void authentication() {
boolean status = hyperHive.authAPI.auth(MY_LOGIN, MY_PASSWORD, true).execute().isOk();
showStatus(status);
}
private void showStatus(boolean status) {
Log.d(TAG, "status: " + status);
Toast.makeText(this, String.valueOf(status), Toast.LENGTH_SHORT).show();
}
//1. Запросим разрешение на чтение и запись
private void getPermissions() {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
}
}
//2. Создадим файл по указанному пути «/storage/emulated/0/Download/»
private void createFile() {
String fullPath = "/storage/emulated/0/Download/" + editText.getText().toString();
getPermissions();
File file = new File(fullPath);
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
//3. Получим файл
public void fileGet(View view) {
createFile();
boolean status = hyperHive.fileConnectorApi.fileGet("/storage/emulated/0/Download/" + editText.getText().toString(), editText.getText().toString(), MOUNT_NAME).execute().isOk();
showStatus(status);
}
//4. Получим метоинформацию
public void fileGetMeta(View view) {
boolean status = hyperHive.fileConnectorApi.fileGetMeta(editText.getText().toString(), MOUNT_NAME).execute().isOk();
showStatus(status);
}
//5. Отправим файл
public void filePut(View view) {
getPermissions();
boolean status = hyperHive.fileConnectorApi.filePut("/storage/emulated/0/Download/" + editText.getText().toString(), editText.getText().toString(), MOUNT_NAME).execute().isOk();
showStatus(status);
}
//6. Удалим файл
public void fileDelete(View view) {
boolean status = hyperHive.fileConnectorApi.fileDelete(editText.getText().toString(), MOUNT_NAME).execute().isOk();
showStatus(status);
}
//7. Получим список файлов
public void directoryGet(View view) {
BaseStatus baseStatus = hyperHive.fileConnectorApi.directoryGet(".", MOUNT_NAME).execute();
textView.setText(baseStatus.toString());
showStatus(baseStatus.isOk());
}
}
См. также: