Я новичок в разработке для Android, и я использую намерение выбрать файл локально, чтобы я мог загрузить его в какое-то облачное хранилище.Я часто осознавал, что возвращаемые имена файлов имеют вид image:b
для некоторого числа b
.Например, для файла я получаю path = /document/image:91
и filename = image:91
.Значит ли это, что мой результат неверен?Я ожидал получить фактическое имя файла.Я просто хочу знать, правильный ли мой код.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d(TAG, "requestCode: " + requestCode);
Log.d(TAG, "resultCode: " + resultCode);
Log.d(TAG, "Actiity.RESULT_OK: " + Activity.RESULT_OK);
Log.d(TAG, "intent data: " + data);
if (requestCode == CHOOSE_FILE_REQUESTCODE && resultCode == Activity.RESULT_OK && null != data) {
Uri image = data.getData();
String path = image.getPath();
this.file = new File(path);
String filename = image.getLastPathSegment();
//File destination = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/CustomFolder/" + filename);
Log.d(TAG, "file name: " + filename);
Log.d(TAG, "file path: " + path);
this.fileName.setText(filename);
}
}
Start Intent.
public void onClickSelectPhoto(View v){
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
startActivityForResult(intent, CHOOSE_FILE_REQUESTCODE);
}