0

私はこのコードを使用します luugiathuy.com/2011/02/android-java-bluetooth/
サーバー側はPC
であり、クライアントはデバイスであり、アプリはBluetoothチャットの例に基づいています

デバイス (galaxy tab 7.0) は、PC との接続を確立できます。ただし、何も接続されていないため、PC サーバー (java と bluecove で記述) は何もしませんでした。

接続されたデバイスを見つけようとするループは

while(true) {
        try {
            System.out.println("waiting for connection...");
            connection = notifier.acceptAndOpen();

            Thread processThread = new Thread(new ProcessConnectionThread(connection));

            processThread.start();

        } catch (Exception e) {
            e.printStackTrace();
            return;
        }

Output on PC: uuid: 0000110100001000800000805f9b34fb waiting for connection... 編集: ソースのダウンロードhttps://github.com/luugiathuy/Remote-Bluetooth-Android

4

3 に答える 3

1

Linuxで試していたときに同じ問題が発生しました。しかし、ブルーコーブを使用して Java サーバーをオンにせずに bluetooth android アプリケーションを実行すると、既にインストールされている bluetooth ソフトウェアに接続しようとする理由 (まだわかりません)。モバイル デバイスへのアクセス許可を求める Bluetooth アイコンが表示される場合があります。

これを解決するために、サーバーとアプリケーションのuuidを変更し(たとえば、1103から1101に、またはその逆)、最初にサーバーを起動し、次にAndroidアプリケーションを起動しました。Java サーバー部分がリッスンを開始しました。

ブルーコーブスタックサービスサーバーが見つからなかったときのuuidが原因であると私が思う理由は、同じuuidでリッスンしているデバイスサーバーに接続されたことです。そのため、uuid を変更し、Android アプリケーションを起動する前にサーバーが実行されていることを確認すると、問題が解決するはずです。

Java bluecove サーバーではなく、Bluetooth システム アプリケーションに接続している場合は、

1) First change the uuid both server and android application.
2) Second make sure your server is running and listening on same uuid.
3) Launch the android application which try to communicate on same rfcomm connection uuid.

サーバー部分のコード: http://www.jsr82.com/jsr-82-sample-spp-server-and-client/ ライブラリ: http://code.google.com/p/bluecove/downloads/list

于 2014-07-23T12:01:53.857 に答える
0

プログラムからの出力は、UUID0x1101でリッスンしていることを示しています。本当?参照するサンプルは、別のUUIDでリッスンしていることを示しています。そのサービスクラスIDは0x04c6093bであり、次のように設定されます。

34  UUID uuid = new UUID(80087355); // "04c6093b-0000-1000-8000-00805f9b34fb"
35  String url = "btspp://localhost:" + uuid.toString() + ";name=RemoteBluetooth";
36  notifier = (StreamConnectionNotifier)Connector.open(url); 

この2つは、クライアントとサーバーで一致する必要があります。

于 2012-09-06T09:40:47.073 に答える
0

はい、それは私にも起こります。待機中の接続が表示されたら、シェルで次のコマンドを起動することをお勧めします。

hcitool cc 58:C3:8B:D7:FA:F4

これ58:C3:8B:D7:FA:F4は私のデバイスの Bluetooth アドレスです。これは、あなたのデバイスの Bluetooth アドレスに置き換える必要があります。

デバイスの bluetooth アドレスを取得するには、デバイスで bluetooth を検出可能モードで起動し、hcitool scanコマンドを実行するだけで、すべてのアクティブなデバイスが名前と bluetooth アドレスとともに表示されます。

hcitool cc 58:C3:8B:D7:FA:F4上記のコマンドは、次のように Java コードを介して実行できます。

try
{
     Process p=Runtime.getRuntime().exec("hcitool cc 58:C3:8B:D7:FA:F4"); 
}
catch ( Exception e )
{

}
于 2012-08-31T03:59:39.667 に答える