2016-11-16 5 views
0

私は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(); 
     }); 
    } 
} 

私はこのコードは良い作品、ネクサス5としてみてくださいました。しかし、Sony Xperia Z3コンパクトでは、常にエラーがありますcamerafocusfailed

どうすればよいですか?

答えて

0

どのように送信者をブールに投げ入れることができるのか分かりませんが、カメラがオートフォーカスをサポートしているかどうかを調べることができます。

var autoFocus = PackageManager.HasSystemFeature("android.hardware.camera.autofocus"); 
+0

Nexus 5では、私のコードが動作しています。非常に近い面に焦点を合わせようとしましたが、フォーカスが失われました。 「通常の」距離では動作します。コンパクトなZ3では、失敗しました。プレビューは変更中(フォーカスしようとしています)でも常に失敗します。 –

関連する問題