по щелчкуПолучить URI от намерения камеры в андроида
takePic.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent m_intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
imageUri = getImageUri();
m_intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(m_intent, REQUEST_IMAGE_CAPTURE);
}
});
На Результат:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_IMAGE_CAPTURE
&& resultCode == RESULT_OK) {
Log.d("test1",""+imageUri);
Intent shareIntent = new Intent(this, SharePicForm.class);
shareIntent.putExtra("photo",""+imageUri);
startActivity(shareIntent);
}
}
getImageUri()
private Uri getImageUri(){
Uri m_imgUri = null;
File m_file;
try {
SimpleDateFormat m_sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
m_curentDateandTime = m_sdf.format(new Date());
m_imagePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + m_curentDateandTime + ".jpg";
m_file = new File(m_imagePath);
m_imgUri = Uri.fromFile(m_file);
} catch (Exception p_e) {
}
return m_imgUri;
}
То, что я хотел бы достичь очень просто, вызов камеры и получить uri результата фото. Но похоже, что существует несовместимое устройство, и на моем устройстве он вообще не работает. Я попытался сохранить путь в общедоступной переменной, но когда я его извлечу, он равен нулю, есть ли формальный и стандартный способ его реализации и должен работать на любом устройстве? Кроме того, есть ли способ не предоставлять настраиваемый путь, но получить путь uri по умолчанию от намерения камеры?
Спасибо за помощь
использовать onSavedInstance() и onRestoreInstanceState() для сохранения и восстановления пути изображения. –