Ich melde mich jetzt auch mal wieder zu Wort. Der Titel ist nicht ganz eindeutig, ich will euch hier jetzt nicht den ZXing-Barcode-Scanner vorstellen oder so, sondern ich habe etwas kleines gebastelt, das vielleicht sonst noch jemand nützlich finden könnte.

Und zwar ein kleines Script für den Scripting Layer for Android, mit dem die gescannten Barcodes an einen Client im Netzwerk gesendet werden. Das Script gibt es weiter unten (bzw. nach dem Break) auch als QR-Code, um es direkt mit SL4A abscannen zu können.

import android
import socket

HOST = ''
PORT = 38174

droid = android.Android()

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((HOST, PORT))
sock.listen(1)

droid.makeToast('Waiting for client...')
conn, addr = sock.accept()
droid.makeToast('Client %s:%d connected' % addr)

while True:
	code = droid.scanBarcode()
	if not code:
		break
	conn.send('%s\n' % code.result['extras']['SCAN_RESULT'])

conn.close()

Als Client lässt sich dieser Bash-Einzeiler verwenden:

nc $PHONE_IP 38174 | while read code; do xvkbd -text "$(echo -n $code | head -c -1)\r"; done

barcode_scanner.py als QR-Code

Advertisements