Android+Bluetoothを使ってPC側からテキストの入力を行う

2012-07-29T12:00:00+09:00 Android Java Python

んまぁAndroidのKeyboard APIを使って独自のキーボードを作って、それをBluetoothのRFCOMMを介してPCからAndroidスマートフォン側に入力をさせるというしょうもない事をやってみてる。まぁ実際やったのはかなーり前の話なんですが今更ながらネタにしてみようかと

まぁ入力方式のダイアログを出すとBluetoothKeyboardっていうのが出るようになる

でこれを選択するとAndroidスマートフォン側でRFCOMMポートを開放してくれるので、そこにデータを送ったりしてキーボードに入力させるという仕様方式になっている。なのでPCからはPythonを使ってデータを送る(python-bluezが別途で必要)

接続出来るとこんな感じでメッセージが出る。んでデータ入力なカーソルが保持されるので

んまぁ適当にニャル子さんの言葉でも送っとく。で書いたらEnter。するとスマートフォン側では

んな感じでPCから送信したデータをキーボードでフォーカスがあるテキストボックスとかに送信データがぶちこまれるという感じ

とりあえず今回は(ソース)コードは無しで(あまりにも恐ろしいコードな為に自重)

追記

(適当な)Pythonなクライアントだけとりあえずソースをうp

from bluetooth import find_service, RFCOMM, BluetoothSocket, BluetoothError

host = None
port = 0

for service in find_service():
    if service["protocol"] == "RFCOMM" and service["name"] == "RFCOMM Service":
        host = service["host"]
        port = service["port"]

if host is not None:
    sock = BluetoothSocket(RFCOMM)
    sock.connect((host, port))

    print "Connected: %s:%d" % (host, port)

    while True:
        data = raw_input("message: ")

        if data is not None and len(data) > 0:
            try:
                sock.send("%sn" % data)
            except BluetoothError, e:
                break

    sock.close()

Chrome Extension開発を勉強してみる (12) - コンテキストメニューでブックマークを高階層で表示する - Chrome Extension開発を勉強してみる (11) - 多階層なcontextMenus -