Я Java изучаю только месяц и никак не могу понять, как правильно отправить audio, файл кодируется в base64 не верно и файл на сервере не открывается. Как это сделать правильно?
fileTextAdd.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
Intent intent1 = new Intent();
intent1.setType("audio/*");
intent1.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent1, 3);
}
});
@RequiresApi(api = Build.VERSION_CODES.Q)
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 2 && resultCode == RESULT_OK && data != null){
Uri path = data.getData();
try {
bitmap_add = MediaStore.Images.Media.getBitmap(getContext().getContentResolver(), path);
imageViewAdd.setImageBitmap(bitmap_add);
} catch (IOException e) {
e.printStackTrace();
}
}else if(requestCode == 3 && resultCode == RESULT_OK && data != null){
pathUri = data.getData();
try {
if(pathUrl.getScheme().equals("file")) {
fileName = pathUrl.getLastPathSegment();
}else {
Cursor cursor = null;
try {
cursor = getContext().getContentResolver().query(pathUrl, new String[]{
MediaStore.Files.FileColumns.DISPLAY_NAME
}, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
fileName = cursor.getString(cursor.getColumnIndex(MediaStore.Files.FileColumns.DISPLAY_NAME));
}
fileTextAdd.setText(fileName);
} finally {
if (cursor != null) cursor.close();
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
private String EncodeFile(Uri contentURI){
String result = "";
try {
InputStream inputStream = getContext().getContentResolver().openInputStream(contentURI);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
inputStream.close();
String bb = stringBuilder.toString();
byte[] bytes = bb.getBytes();
result = Base64.encodeToString(bytes, Base64.DEFAULT);
}catch (IOException ex){
ex.printStackTrace();
}
return result;
}
private void UpLoadImage() {
final ProgressDialog dialog1 = new ProgressDialog(getActivity());
dialog1.setMessage("Loading...");
dialog1.show();
StringRequest stringRequest = new StringRequest(Request.Method.POST, new urlWeb().AddFileResourse,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
dialog1.hide();
Toast.makeText(getContext().getApplicationContext(), response, Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
dialog1.hide();
Toast.makeText(getContext().getApplicationContext(), error.toString(), Toast.LENGTH_LONG).show();
}
}) {
@RequiresApi(api = Build.VERSION_CODES.O)
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("user", getStringPrefs("userToken"));
params.put("image", EncodeFile(bitmap_add));
params.put("audio", EncodeFile(pathUri));
params.put("name", editNameAdd.getText().toString());
params.put("name_file", fileName);
return params;
}
};
MySingle.getInstance(getActivity()).addToRequestQue(stringRequest);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Для автоматической генерации id записи в базу oracle, используется встроенный триггер, ранее использовалась последовательность
как скрыть #fp-nav, когда гамбургер активен, и показать снова, когда гамбургер закрыт циклично? Я набросал немного и сделал функцию, она выполняет...
Не могу решить проблему с маркерами на картеС сервера приходят объекты с одинаковыми координатами