{"id":193,"date":"2010-03-16T10:45:14","date_gmt":"2010-03-16T09:45:14","guid":{"rendered":"http:\/\/www.webmaid.de\/?p=193"},"modified":"2010-03-16T10:51:35","modified_gmt":"2010-03-16T09:51:35","slug":"barcode-scannen-in-eigener-android-app","status":"publish","type":"post","link":"https:\/\/www.webmaid.de\/2010\/03\/barcode-scannen-in-eigener-android-app\/","title":{"rendered":"Barcode scannen in eigener Android App"},"content":{"rendered":"

Wenn man in seiner Android-Applikation einen Barcode (oder QR-Code) scannen will, kann man auf das Zebra Crossing (ZXing<\/a>) – Projekt von Google zur\u00fcckgreifen. Die Integration in die eigene Anwendung ist mit ein paar Codezeilen erledigt.
\n<\/p>\n

Voraussetzung<\/h2>\n

Auf dem Handy (oder Emulator) muss die Anwendung selbst installiert sein. ZXing findet man als APK unter Downloads<\/a> oder im Market, wenn man auf einem richtigen Handy entwickelt. Entwickelt man im Emulator, so l\u00e4dt man sich das APK herunter und installiert es mit der Android Debug Bridge (adb) mittels <\/p>\n

adb install BarcodeScanner3.2.apk<\/code><\/pre>\n

Nutzung<\/h2>\n

Will man den Komfort genie\u00dfen, dass ein Installationsdialog kommt, wenn ZXing auf dem Zielsystem noch nicht vorhanden ist, dann sollte man den IntentIntegrator<\/a> des Projektes nutzen (und auch das IntentResult als Abh\u00e4ngigkeit). Auf unserem Layout gibt es lediglich einen Button mit dem Namen ScanButton, um das Beispiel zu vereinfachen.<\/p>\n

public class ScanActivity extends Activity {\r\n    public void onCreate(Bundle savedInstanceState) {\r\n        super.onCreate(savedInstanceState);\r\n        setContentView(R.layout.scan);\r\n        registerButtonHandler();\r\n    }\r\n    \r\n    private void registerButtonHandler() {\r\n        \/\/ Capture our button from layout\r\n        Button button = (Button)findViewById(R.id.ScanButton);\r\n        \/\/ Register the onClick listener with the implementation above\r\n        button.setOnClickListener(new ScanButtonClickListener());\r\n    }    \r\n    \r\n    class ScanButtonClickListener implements OnClickListener {\r\n    \t@Override\r\n    \tpublic void onClick(View v) {\r\n    \t\tIntentIntegrator.initiateScan(ScanActivity.this);\r\n    \t}\r\n    }  \r\n    \r\n    public void onActivityResult(int requestCode, int resultCode, Intent intent) {\r\n    \tIntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);\r\n    \tif (scanResult != null) {\r\n    \t    \/\/ Tue etwas mit dem Resultat.\r\n    \t} \r\n    }    \r\n}<\/code><\/pre>\n

In 28 Zeilen hat man so sein Android-Phone dazu gebracht Barcodes\/QR-Codes einzuscannen und kann Sie entsprechend verarbeiten.<\/p>\n

\n