@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
filePath = getOutputMediaFile(FileColumns.MEDIA_TYPE_IMAGE);
File file = new File(filePath);
Uri output = Uri.fromFile(file);
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra(MediaStore.EXTRA_OUTPUT, output);
startActivityForResult(i, RETURN_FILE_PATH);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//data is always null here.
//requestCode = RETURN_FILE_PATH;
//resultCode = Activity.RESULT_OK;
}
Sprawdziłem wartości pliku i wyjściu Uri, oba są w porządku, a schwytany obraz rzeczywiście istnieje w tym miejscu.onActivityResult zwraca dane zerowe dla obrazu przechwytywania
Ale dane zwrócone w onActivityResult
są zawsze null
nawet po przechwyceniu obrazu.
EDIT:
Sprawdziłem to pytanie:
onActivityResult returns with data = null
który mówi:
Kiedykolwiek zapisać obraz przekazując EXTRAOUTPUT z kamery zamiarem parametr dane wewnątrz funkcji onActivityResult zawsze zwracana jest wartość null. Tak więc, zamiast używać danych do pobrania obrazu, użyj ścieżki do pliku , aby pobrać mapę bitową.
i może to rozwiązanie będzie dla mnie skuteczne. Ale powyższy kod był działającym kodem do tej pory dla tego samego scenariusza.
Tak, widziałem ten post. Ale ten sam kod działał przez ostatnie 6 miesięcy, dlaczego nagle zachowuje się w ten sposób :( –
Niestety nie jestem ekspertem w tym temacie, zakładam, że jest to specyficzna dla urządzenia funkcjonalność związana ze sprzętem. na urządzeniach Samsung występuje inne zachowanie: http://stackoverflow.com/q/8248327/1965084 – alex