2

ラップトップで python-bluez を使用し、電話で android-bluetooth API を使用して、ラップトップ (クライアントとして) を Android フォン (リスナーとして) に接続しようとしています。

私は自分の電話に次のコードを使用しています。

BluetoothServerSocket tmp = badapter.listenUsingRfcommWithServiceRecord(
    badapter.getName(), MY_UUID);
BluetoothServerSocket bserversocket = tmp;
if(bserversocket != null)
{
    BluetoothSocket acceptsocket = bserversocket.accept(timeout);   
}
//timeout is set to about 15 sec
if(acceptsocket != null)
{
    out.append("got the connection...\n");   
}

私のラップトップクライアント用のpythonで以下:

from bluetooth import *

btooth_addr = "38:EC:E4:57:1F:1B"

sock = BluetoothSocket(RFCOMM)
sock.connect((btooth_addr, 2))

print "Connected"
sock.close()

リスナーはラップトップからの接続を確認せずにタイムアウトしますが、送信者はさまざまなポートでのすべての試行で「接続済み」を出力します。

問題は、Androidフォンがリッスンしているポート/チャネルがわからず、設定できないことと、「接続」の2番目の引数としてポート番号を入力する必要があることです(このスニペットの2) .

助けてください - 現時点での私の唯一の目標は、電話で接続試行を確認することです。

4

1 に答える 1

1

クライアント接続の確立については、pybluez のドキュメント (ソース コード) を参照してください。

find_serviceを使用して、提供された Bluetooth アドレスと UUID の正しいポートを取得できます。次に、コードで行うのと同じようにソケットを接続し、ハードコードされたポート値を正しい値に置き換えます。

投票することを忘れないでください!

于 2012-05-22T09:58:23.797 に答える