Как получить данные камеры для загрузки на PHP-сервер в Android

Я пытаюсь создать загрузку файлов Android на php-сервер, все работает, за исключением того, что когда я выбираю камеру, чтобы сделать снимок для загрузки, он не получает данные, я перепробовал все, что мог, но не смог заставить его записать. Использую андроид gotev https://github.com/gotev/android-upload-service для загрузки моего файла.

Я думаю, что моя проблема от onActivityResult получать данные с камеры, но я не знаю, как это сделать.

private Bitmap bitmap;
private Uri filePath;
private String CAM_MESSAGE;
private ValueCallback<Uri> FILE_MESSAGE;

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == IMAGE_REQUEST_CODE){
if (resultCode == FileUploadActivity.RESULT_OK && data != null && data.getData() != null) {
filePath = data.getData();
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
tvPath.setText("Path: ".concat(getPath(filePath)));
imageView.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
} else {
Uri[] camfilePath = null;
if (CAM_MESSAGE != null) {
try {
camfilePath = new Uri[]{Uri.parse(CAM_MESSAGE)};
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), camfilePath);
tvPath.setText("Path: ".concat(getPath(camfilePath)));
imageView.setImageBitmap(bitmap);
//Toast.makeText(getApplicationContext(), "CAM MESSAGE:"+CAM_MESSAGE, Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
}
}else{
Toast.makeText(getApplicationContext(), "Empty data", Toast.LENGTH_SHORT).show();
}
}
}else{
Toast.makeText(getApplicationContext(), "Not Request Code", Toast.LENGTH_SHORT).show();
}
}

Мой файл выбора

private void showFileChooser(){
File  photoFile = null;
Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT);
contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);
contentSelectionIntent.setType(APP_FTYPE);
Intent[] intentArray;
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

if (takePictureIntent.resolveActivity(FileUploadActivity.this.getPackageManager()) != null) {
try {
photoFile = createImage();
takePictureIntent.putExtra("PhotoPath", CAM_MESSAGE);
} catch (IOException ex) {
Log.e(TAG, "Image file creation failed", ex);
}
if (photoFile != null) {
CAM_MESSAGE = "file:" + photoFile.getAbsolutePath();
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
} else {
takePictureIntent = null;
}
}
if (takePictureIntent != null) {
intentArray = new Intent[]{takePictureIntent};
} else {
intentArray = new Intent[0];
}

Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);
chooserIntent.putExtra(Intent.EXTRA_TITLE, "Choose an action");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
startActivityForResult(chooserIntent, IMAGE_REQUEST_CODE);
}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]