zxing-android-minimal使ってみる

とりあえず、build.gradle の設定もできたので、後は README やらソースコードを見ながら使ってみた。

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final Activity activity = this;
        Button button = (Button)findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                IntentIntegrator.initiateScan(activity);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
        if (scanResult != null) {
            Log.d("qrtest", "code = " + scanResult.getContents());
            Log.d("qrtest", "format = " + scanResult.getFormatName());
        }
    }
}

超簡単!
とりあえず id を button にしたボタンをレイアウトに貼付けて、それをクリックしたら zxing-android-minimal が intent で起動。
読み込んだら onActivityResult に読み込んだ結果(コードとフォーマット)が返ってくる。
下記ページにある QRCode を読むと

code = http://www.touch4smart.com/download/10/
format = QR_CODE

こんな感じ。


とにかく楽をして実装したい場合には良いかも。
1つ気になるのは「ランドスケープ」でしか機能しないこと。
この件は Issues にしっかり書かれているのだけど、Android のカメラって何か問題あったりするの???