2010-11-18 30 views
2

Android携帯とリモートデバイスの間でBluetooth通信を確立したいと考えています。リモートデバイスのクラスは、単純なBluetoothアダプタの基本的なものです。 Bluetoothスキャンデバイス機能を使用すると、電話機は異なるクラス(コンピュータ、電話、Bluetoothヘッドセットなど)のデバイスを認識しますが、このデバイスは認識しません。 Android 2.1搭載のSamsung Galaxy TheosとHTC Wildfireで試しましたが、両方で同じ結果が得られました。 携帯電話メーカーまたはAndroidが特定のクラスのデバイスをフィルタリングする可能性はありますか?それ以外の場合は、このデバイスを検出可能にする別の方法はありますか?Bluetoothデバイスが検出できない

ありがとうございます。

一部の携帯電話メーカーがすることを決めたようだ(私は他のバージョンのために知っていない2.1エクレア上でテスト)のAndroidのBluetoothアプリケーションを開発したい人のためのウェブ上でいくつかの研究の後に[OK]を

+0

あなたのリモートデバイスがdiscovarableであることを確認しましたか?私は過去にBluetoothヘッドセットに問題があった。右ボタンを押すだけで、それを一般に見えるようにする必要がありました。 – dorzey

+0

こんにちはdorzey、私に返信してくれてありがとう。これにはボタンがありません。これは、RJ45ケーブルを搭載した非常に基本的なBluetoothアダプタです。緑色のライトは、電源が供給され、結果的に他のデバイスから見えることに気付きます。実際に私は前に埋め込まれたJ2MEとノキア3109で試してみて、それは問題なくリモートデバイスを認識した。だから私は問題がリモートデバイスから来ていないと思う。あなたの助けをありがとう – lorenth

+0

他に誰かがアイデアを持っていますか? – lorenth

答えて

3

lorenth クラス0×00と宣言しているBluetoothデバイスを無視して、接続を許可しないで、インテントを検出したり、Bluetooth設定ページにリストしたりすることはできません。ここではどのようなそれは私がサムスンギャラクシー3 TEOSとHTC Wildfireの上でそれを試してみましたEclipseの

DTUN_HCID Device [00:09:EF:58:04:38] class is 0x00 - skip it 

のLogCatセクションでデバッグモードでのように見えます。明らかに、Nexus Oneでは正常に動作します。あまりにも悪いGoogleはそれを販売を停止しました。あなたの一部が他の携帯電話でテストして動作している場合は、私たちにお知らせください。

Lorenth

私はこれらの結果と、アンドロイドのいくつかの異なる味のシリアル(クラスは0x00)デバイスにBluetooth接続をテストしている
0

のAndroid 2.1(オレンジまたはO2、remmeberすることはできません)。ペアのAndroid 2.2を実行し、[OK] 東芝のネットブック:ペアOK HTCの欲望、ボーダフォン、アンドロイド2.2:デバイス HTCの欲望HD、ボーダフォン、アンドロイド2.2を発見するために失敗します。デバイス

を発見するために失敗したので、それは一部の携帯電話という、かなり可能です企業はブロックしているd 0x00アクセス。私はボーダフォンと連絡を取り合ってa)明確化し、b)可能であればこれを解決するように説得する。便利なものがあれば投稿します。

デビッド

+0

こんにちはDavid。申し訳ありません、それはしばらくありました。情報のおかげで。前回からこのことについていくつかのニュースがありましたか? – lorenth

0

UPDATE:このソリューションは、あなたのアプリの中からlogcatを読み取るためのアクセスに依存しているので、(約3.0>)のAndroidの最近のバージョンでは動作しません。誰かがAndroid v2.xを使用している場合のために、更新されたリンクをここに残しておいてください。

あなたの携帯電話用のアプリを書いていると仮定すると、私はこの問題を回避しますクラスを書かれている:

http://zornsoftware.codenature.info/blog/pairing-spp-bluetooth-devices-with-android-phones.html

私はLGオプティマスワンを確認し、また、サムスンのギャラクシーS(することができます両方のAndroid 2.2)がこの問題を抱えています。私はそれについてLGとサムスンに連絡し、私が聞いた結果を返信する。

+0

こんにちはMr. Bungle。いい物!あなたのソリューションを共有していただきありがとうございます;)私はこのようにするとは思わなかった!実際には、私がAndroidで作業していたときに私は初心者でした。だから私はそれを動作させるために私のBluetoothデバイスのクラスを変更しなければならなかった!とにかく、0x00クラスを避けるためにコードの中に明示的に書いているのは本当にバグではないと私は確信しています。私はメーカーがコードを書き直すことによってそれを省略したと思う。いかなる理由で?私は分かりませんが、NexusのGoogleがそれをしていない唯一の人物であることは奇妙です。彼らから何か答えがある場合は、私たちに知らせてください。ありがとう。 – lorenth

+1

変更したクラスを共有して使用できるようになりますか?または、あなたの答えを更新し、ここにコメントを残してください。 –

+0

@Bungleあなたのリンクは間違って見える、http://talsit.info/にリダイレクトされる –

4

私はこの問題を、Android側で変更するのではなく、Bluetoothアダプタのクラスを変更することで回避することができました。私はこれがクラス0x00デバイスのブロックされている元の問題を解決しないが、少なくともあなたはバグにもかかわらずアンドロイドでBTシリアルデバイスを使用することができます知っている。

私はeBayからBluetoothシリアルコンバータを購入しました(リンクはhttp://www.ebay.co.uk/itm/Bluetooth-RS232-serial-Converter-Module-Adapter-Board-/190508188703?pt=LH_DefaultDomain_0&hash=item2c5b2c441f)、これは期待どおり、HTC Desireがデフォルト設定で認識していませんでした。

私は、上記のZornソフトウェアでアプリを試したがっていませんでした。なぜなら、一部の人々は、HTC携帯電話を台無しにしていると報告していたからです。代わりに、BTデバイスのATコマンドのデータシートから、他のパラメータの中で、UART接続と端末プログラムを使用してデバイスのクラス番号を変更できることがわかりました。

コンフィギュレーションインターフェイスにアクセスするためにBluetoothシリアル接続を使用することはできませんが、代わりにデバイスの物理的なRXピンとTXピンを使用する必要があります。コマンドモードを有効にするには、 "Key"というピンをVccに接続する必要もあります。そこで私はAVRシリアルプログラマーデバイスのRS232/UARTインターフェースを使ってRX/TXピンに接続し、ターミナルプログラムとしてRealtermを使用しました。これは、私が正しいボーレート38400を持っていれば、ATコマンドインターフェースを動作させ、最初に間違った方法で接続したRXとTXのスワップを入れ替えました。

私は(私は0x100104になるオブジェクト転送/コンピュータ/デスクトップワークステーションを使用)、有効な非ゼロクラス番号を取得するために http://bluetooth-pentest.narod.ru/software/bluetooth_class_of_device-service_generator.html ここで発電機を使用し、コマンド

でデバイスに入力されました

at + class = 100104 \ r \ n

ここで、\ r \ nはEnter(データシートを参照)を示します。

BTアダプタの電源を切った後、「Key」ピンを外して再びスイッチを入れると、通常の方法で電話機とペアリングすることができました。データ転送も機能しました。もう一度AVRプログラマのUARTとRealtermを使って、アダプタのRX/TXピンにいくつかのデータ(ASCII形式のHello Worldメッセージ)を送信しました。 Android側では、SENA Btermアプリを使用してデータを受信しました。

私はこれが、携帯電話や組み込みシステムで面白いことをするのに役立つことを願っています。

関連する問題