我可以使用默认相机应用拍照。 但是在获得onActivityResult方向内的图像数据后,更改并且所有数据都消失(图像数据)。我不想强迫用户在横向模式下使用应用程序。
那么即使方向发生变化,如何存储来自相机意图的图像路径
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK) {
if (requestCode == CAPTURE) {
if(Build.VERSION.SDK_INT<21){
lastPath=data.getStringExtra("path");
}else{
lastPath=getRealPathFromURI(data.getData()) // set lastPath
}
}
然后我尝试存储 lastPath
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
if(lastPath!=null){
outState.putString("path",lastPath);
}
}
最后我尝试在重新启动应用后从onSaveInstanceState发送 lastPath
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
String path=savedInstanceState.getString("path");
Log.v("path",path);
// --> throws NullPointerException
}
如你所见它抛出异常