Самый простой способ использовать функцию камеры при использовании Webview - это использовать Intent.
Если вы используете API, вам придется самостоятельно создавать большую часть пользовательского интерфейса. Это хорошо или плохо, в зависимости от того, что вам нужно делать в приложении и насколько вам нужно контролировать процесс фотосъемки. Если вам просто нужен быстрый способ сфотографировать фотографию и использовать ее в своем приложении, Intent - это то, что нужно.
Пример намерения:
private Uri picUri;
private void picture()
{
Intent cameraIntent = new Intent("android.media.action.IMAGE_CAPTURE");
File photo = new File(Environment.getExternalStorageDirectory(), "pic.jpg");
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
picUri = Uri.fromFile(photo);
startActivityForResult(cameraIntent, TAKE_PICTURE);
}
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode){
case TAKE_PICTURE:
if(resultCode == Activity.RESULT_OK){
Uri mypic = picUri;
//Do something with the image.
}
}
Я позаимствовал части этого примера из другого ответа, чтобы построить это изначально. Но у меня больше нет URL.
В приложении, которое я пишу сейчас, я конвертирую это изображение в Base64, а затем передаю его в Javascript, который затем публикует его на моем сервере. Но это, вероятно, больше, чем вам нужно было знать. :)
здесь - это ссылка, чтобы заставить его работать в webView