У меня есть гибридное приложение, которое открывает родную камеру андроида.
Мой код:
public class CameraFunActivity extends Activity {
OpenCamera openCamera;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView webView=(WebView)findView ById(R.id.webkitWebView1);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDatabaseEnabled(true);
openCamera=new OpenCamera(webView,CameraFunActivity.this);
webView.addJavascriptInterface(openCamera,"camera");
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode== 0 && resultCode == Activity.RESULT_OK){
System.out.println("!!!!!!!!!!!!!!!!!!!!Camera Working...........");
String imagePath = "file:/"+openCamera.getPath();
System.out.println("Image Pathhhhhhhhhh :::::::::::: " + imagePath);
openCamera.setPath(imagePath);
..
}
HTML:
function captureImage1 () {
camera.startCamera ();
var path = "file: //" + camera.getPath ();
// предупреждение (путь);
. Document.getElementById ( "image1") SRC = путь;
}
публичная OpenCamera (приложение WebView, контекст действия) {
this.mAppView = appView;
this.context = контекст;
}
public void setPath(String path){
_path=path;
}
public String getPath(){
return _path;
}
public void setBitmap(Bitmap bitmap){
System.out.println("setting bitmap");
this.bitmap=bitmap;
}
public Bitmap getBitmap(){
System.out.println("getting bitmap");
return bitmap;
}
public void startCamera(){
/*
Camera camera = Camera.open();
Camera.Parameters parameters = camera.getParameters();
parameters.setPictureFormat(PixelFormat.JPEG);
camera.setParameters(parameters);*/
Date dt = new Date();
int date=dt.getDate();
int hours = dt.getHours();
int minutes = dt.getMinutes();
int seconds = dt.getSeconds();
String curTime = date+"_"+hours + "_"+minutes + "_"+ seconds;
_path=Environment.getExternalStorageDirectory() +"/"+curTime+".jpg";
File file = new File( _path );
Uri outputFileUri = Uri.fromFile( file );
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
// System.out.println("Paramssssssssssssss " + camera.getParameters().toString());
context.startActivityForResult(intent,0);
Иногда выводит изображение в тег img src, иногда - нет. Нужна помощь, чтобы выяснить проблему.
Кроме того, это связано с изменением ориентации?
Спасибо