Я разрабатываю приложение для Android с Xamarin. Мне нужно зафиксировать код QR с телефоном. Когда пользователь нажимает на экран, камера выполняет автоматическую фокусировку.Невозможно выполнить автоматическую фокусировку с помощью камеры
Существует мой код:
public class MainActivity
{
TextureView _textureView;
Camera _camera;
protected override void OnCreate(Bundle bundle)
{
_camera = Camera.Open();
_textureView = FindViewById<TextureView>(Resource.Id.previewView);
_textureView.SurfaceTextureListener = this;
_textureView.Click += new EventHandler(clickFocus);
}
private void clickFocus(object sender, EventArgs e)
{
try
{
_camera.AutoFocus(this);
}
catch (Exception ex)
{
}
}
}
На другой класс:
private void _mainactivity_onFocus(object sender, EventArgs e)
{
bool focus = (bool)sender;
if (!focus)
{
Activity.RunOnUiThread(() =>
{
// _ma is the MainActivity
Toast.MakeText(_ma, Resource.String.camerafocusfailed, ToastLength.Short).Show();
});
}
}
Я стараюсь с Nexus 5, этот код работает хорошо. Но с Sony Xperia Z3 compact всегда есть ошибка camerafocusfailed
Что я могу сделать?
На Nexus 5 мой код работает, я стараюсь сосредоточиться на очень близкой поверхности, и фокус не удался. С «нормальным» расстоянием он работает. С компакт-диском Z3 он не прошел. Предварительный просмотр изменяется (пытается сфокусироваться), но всегда терпит неудачу. –