6

私はある教授から、Android で小さな Bluetooth デモ アプリを開発するように依頼されました。2 週間前に彼から挑戦を受けるまで、私は Android 向けの開発について何も知りませんでした。また、Java プログラミング全般についてもまったくの初心者なので、まったくの初心者です。とにかく...

そこで、チュートリアルのほとんどを完了し、Android の Bluetooth について読み、Bluetooth チャットのサンプル コードを確認し、小さなアプリを実行しようとしています。したがって、私のデモでは、実際の電話と Bluetooth マウスの間の接続を確立しようとします。マウスの動きに応じて、携帯電話の画面上の図形を移動したいと考えています。

多くの問題に遭遇しましたが、これまでのところ、私の主な問題は、安全でないマウスでソケットを開くことです。メソッドを使用しようとするlistenUsingRfcommWithServiceRecordと、パラメーターとして UUID が要求されます。しかし、私のマウスには応答する UUID がない可能性が高いため、この方法は適切ではないと思います。

この方法に関するドキュメントを読むと、マウスなどのデバイスで安全でないサーバー ソケットを開くには、この方法を使用する必要があると書かれていますlistenUsingInsecureRfcommWithServiceRecord。しかし、このメソッドを呼び出すと、このメソッドは使用できません。赤で下線が引かれ、Eclipse は BluetoothAdapter タイプに対して未定義であると表示します。

private BluetoothServerSocket connectDevice(BluetoothAdapter adapter, BluetoothDevice device){
    BluetoothServerSocket socket = null;
    try{
        socket = adapter.listenUsingInsecureRfcommWithServiceRecord(device.getName(), UUID.randomUUID());
    }
    catch(IOException e){
        Toast.makeText(this, "Connection failed.\n" + e.getMessage(), Toast.LENGTH_SHORT);
    }

    return socket;
}

私がそれをすべて間違っているとしても、私を怒らせないでください。これは私の最初の質問であり、私は Java プログラミングを始めています。

4

3 に答える 3

4
listenUsingInsecureRfcommWithServiceRecord()

これは、API レベル 10 以降、つまり Android v2.3.3 以降でのみ使用できます。

それより前のバージョン用にビルドしている場合、それが問題になる可能性があります。

ドキュメントの灰色のバーの右側を参照してください

編集: BluetoothAdapterを拡張することは不可能であるという事実に照らして、listenUsingInsecureRfcommWithServiceRecord()単にこれを行います...

return createNewRfcommSocketAndRecord(name, uuid, false, false);

createNewRfcommSocketAndRecord() (BluetoothAdapter のプライベート メソッド) のソースは、ここにあります... createNewRfcommSocketAndRecord

役立つかどうかはわかりませんが、その機能を再現できる可能性があります。

于 2011-04-09T19:42:13.467 に答える
0

市販のマウスと通信しようとしている場合 - Android で SPP ソケット API を使用しても役に立ちません。マウスは HID Bluetooth プロファイルを使用し、電話機で HID プロファイル ホスト ロールを使用できるようにする必要があります。標準の Android リリースは現在 HID をサポートしていません。そのため、自分で追加し、BlueZ から HID を統合してアプリケーションに接続する Android を構築する必要があります。

于 2011-04-10T06:30:43.380 に答える
-1

Bluetooth プロファイルのサポートを Android に実装するために、「Sybase-iAnywhere-Blue-SDK-for-Android」というプロジェクトがあり、これは Android のバージョンを置き換え、基礎となる Bluetooth プロファイルとプロトコルへのすべてのインターフェイスを提供します。これを使用すると、この SDK によって提供される BPP プロファイルを使用して、Android フォンを使用して Bluetooth 経由で印刷することが可能になります。

詳細については、以下のリンクを参照してください。リンク 1: http://www.sybase.com/detail?id=1064424

リンク 2: http://www.sybase.com/products/allproductsa-z/mobiledevicesdks/bluetoothsdks

于 2011-05-26T10:53:46.933 に答える