J 2 meブルートゥース印刷開発


Javaコード
  • Stringurl=servRecord.getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT,false);
  • StreamConnectionconn=(StreamConnection)Connector.open(url);
  • DataOutputStreamdos=conn.openDataOutputStream();
  • dos.writeUTF("XXXXXXXXXXXXX");
  • String url = servRecord.getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT,false);
    StreamConnection conn = (StreamConnection)Connector.open(url);
    DataOutputStream dos = conn.openDataOutputStream();
    dos.writeUTF("XXXXXXXXXXXXX");

    携帯こっちのConnetor.Open()にはどのように書けば通信できますか?
    J 2 MEでは、クライアントがBluetoothを使用する場合、予め定義されたインタフェースDiscoveryListenerによって実現され、Connectorに至るまで多くのステップが必要である.Open(url)のステップ.このステップで接続されるのは、実際には選択されたデバイスの選択されたサービスです.まずインタフェースについて話します.このインタフェースは4つの関数を実装する必要がある.1番目のデバイスDiscovered(RemoteDevicebtDevice,DeviceClass cod)は、1つのデバイスが発見されるたびに2番目のinquiryCompleted(int discType)が自動的に呼び出され、デバイスの検索が終了すると3番目のデバイスDiscovered(int transID,ServiceRecord[]servRecord)が自動的に呼び出される.この方法では、4番目のサービスSearchCompleted(int transID,int respCode)が自動的に呼び出され、デバイスのサービス検索が完了すると自動的に呼び出されます.
    DiscoveryListenerインタフェースに加えて、クライアント接続にはいくつかのクラスが重要です.第一に、接続エージェントDiscoveryAgent、コマンドデバイスが周辺デバイスのstartInquiry()の検索を開始し、コマンドが選択したデバイスサービスの検索を開始するsearchService()が通過します.2つ目は、ローカルデバイス、つまりこのクライアント自身のLocalDeviceであり、接続エージェントはそれによって取得されます.3つ目はRemoteDeviceで、Bluetooth機能を備えた周辺機器です.4つ目はデバイスが提供するサービスで、最後に接続するのはそれです.
    インタフェースの方法が実現すると、ServiceRecordのgetConnectionURL()で接続を取得し、接続を接続することができる.Open(url)は接続を開き、通話を行います.
    ここでは、デバイス管理に関する3つのクラスについて説明します.この3つのクラスは、デバイス管理をサポートするために使用されます.デバイスクラス:DeviceClass
    DeviceClassオブジェクトは、プリンタや電話などのデバイスのデバイスクラス(CoD)を表します.CoDは、プライマリクラス、セカンダリクラス、およびサービスタイプまたはサービスクラスを含む
    ローカルデバイスクラス:LocalDevice
    LocalDeviceクラスはローカルBluetoothデバイスを識別しています.BluetoothアプリケーションとLocalDeviceの関係は典型的な一対一の関係です
    リモートデバイスクラス:RemoteDevice
    RemoteDeviceの例は、リモートBluetoothデバイスを表します.Bluetoothクライアントアプリケーションがサービスを行い、消費する前に、リモートデバイスを発見するためにデバイス要求を送信する必要があります.典型的なBluetoothアプリケーションとリモートデバイスの関係は、1対複数です.
    UUIDについて
    まず次の問題を見てください.
    JavaEye初級会員nj_firstは
    最近、携帯電話の情報をBluetoothプリンタに出力する機能を書きます.しかし、携帯電話でBluetoothデバイスがプリンタなのか、それとも他のデバイスなのか、よくわかりません.......private UUID[] uuidSet; private static final UUID ECHO_SERVER_UUID = new UUID( "F0E0D0C0B0A000908070605040302010", false); uuidSet = new UUID[2];//我々の応答サービスを示すUUIDセットuuidSet[0]=new UUID(0 x 1101);uuidSet[1] = ECHO_SERVER_UUID; .............. transIDs[i] = discoveryAgent.searchServices(null, uuidSet, rd, this); そのUUID配列はどういう意味ですか.
    UUID~は、先のUUIDがユーザ固有IDであることを説明する、ユーザ固有IDに基づいてリンクを作成する.Bluetoothでは、各サービスおよびサービス属性は、「グローバル一意識別子」(UUID)によって一意に検証されます.その名前が示すように、このような識別子は時空的に一意であることを保証しなければならない.UUIDクラスは、短整形(16または32ビット)および長整形(128ビット)UUIDとして表現され得る.Stringと16ビットまたは32ビットの値をそれぞれ利用してクラスを作成するコンストラクション関数を提供し、2つのUUID(両方が128ビットの場合)を比較できる方法と、1つのUUIDを1つの文字列に変換できる方法を提供した.UUIDインスタンスは変更不可能であり、UUIDによって示されたサービスのみが発見される.Linuxでは、コマンドuuidgen-tを使用してUUID値を生成できます.Windowsでは、コマンドuuidgenを実行します.UUIDは、2 d 266186-01 fb-47 c 2-8 d 9 f-10 b 8 ec 891363のように見えます.生成されたUUIDを使用してUUIDオブジェクトを作成すると、ハイフンを削除できます.
    Bluetoothデバイスがプリンタであるか、または他のデバイスであるかを識別する方法について説明する.対応するAPIを参照することができ、デバイス管理のクラスには対応する方法が提供されている.より詳細な部分や、サーバがBluetoothサービスをどのように提供するかなどについては、WTKインストールディレクトリのappsで見つけられるJ 2 MEが提供するルーチンをよく見たほうがいいです.
    以下にJ 2 MEブルートゥース開発の資料J 2 MEワイヤレスBluetooth(Bluetooth)アプリケーションの開発を添付します(この文章の原文アドレスは見つかりませんでした)
    そのページの紛失を防ぐために転載します.
    J 2 MEワイヤレスBluetooth(Bluetooth)アプリケーションの開発
    ますます多くの携帯電話がjavaアプリケーションをサポートし始めましたが、知っていますか?他の多くのデバイスもjava 2マイクロ版(J 2 EE)のアプリケーションを実行することができます.ワイヤレスBluetooth技術標準に応用されるjava APIs(JABWT)は、JSR 82規格によって定義されており、迅速な開発が容易で、安全で、用途が広いBluetoothアプリケーションをサポートしています.無線機器メーカーはJABWT規格に反応し、携帯電話や他の製品がJABWTアプリケーションをサポートすると発表した.本稿では,まずモバイルデバイス上でjava開発を行う基本原理を紹介し,次にBluetooth通信のためにjavaアプリケーションを記述する方法について説明する.Java Bluetooth API Java Bluetooth APIはjava汎用接続フレームワークに依存し、java Bluetooth APIアプリケーションの限界となっている.しかし、GCFをJ 2 SEに加入することを提案されている.Java Bluetooth APIは、より多くのシステムへのアクセスを可能にします.JavaブルートゥースAPIは2つのパッケージを定義した:1つはJavaブルートゥースAPIのコアjavaxである.bluetooth、もう一つはオブジェクト交換プロトコルのjavaxである.obex(OBEX). JSR 82の仕様に従って、すべての潜在的なBluetoothシステムはBluetoothコントロールセンター(BCC)をサポートする必要があります.このコントロールセンターは、スタック内の特定の構成パラメータに対してユーザーまたはOEMが特定の価値のあるアプリケーションを定義できるようにするコントロールパネルであり、特にスタック初期化に適用されます.いずれのBluetoothアプリケーションにも、スタック初期化コンポーネント、デバイス管理コンポーネント、デバイス発見コンポーネント、サービス発見コンポーネント、通信コンポーネントがあります.スタック初期化ワイヤレス通信を開始する前に、販売者が予約する方法でBluetoothデバイスを初期化する必要があります.(特定のスタック初期化ステップは、Bluetooth API仕様の範囲を超えています.)JavaとBluetooth技術についてスタートしたjava.Net記事では、Bruce Hopkins(javaとBluetooth技術の著者)が、Atinav java Bluetooth開発プラットフォームで一連の設定で初期化作業を完了する方法を紹介しています.JSR 82仕様ではこれらの呼び出しは含まれていないことが重要である.これは、他のJSR 82実装が他の初期化スタックを含む可能性があるためである.デバイス管理JSR 82仕様では、デバイス管理に使用される2つのクラスを紹介しています.LocalDeviceとRemoteDeviceです.LocalDeviceでは、Bluetoothデバイスの静的情報を要求できます.javaxに依存します.bluetooth.DeviceClassクラスは、デバイスタイプとその提供するサービスタイプを取得します.RemoteDeviceは、Bluetooth隣接領域のデバイス情報(例えば、リモートBluetoothデバイスのアドレス)を取得するために使用することができる.これは、遠隔デバイス(例えば、到達可能な範囲内のデバイス)を代表し、Bluetoothアドレスおよび名前を含むデバイスに関する情報を取得するための対応する方法を提供することができる.各Bluetoothデバイスには、コンピュータのMACアドレスのような一意のハードウェアアドレスがあります.デバイス検出のレベルを設定することができます.LocalDeviceオブジェクトのsetDiscoverable()メソッドを呼び出すことで、他のBluetoothデバイスが現在のデバイスを発見し、無線デバイスを発見するには、他のデバイスを発見し、それらの機能にアクセスできるメカニズムが必要です.コアBluetooth APIのDiscoveryAgentクラスとDiscoveryListenerインタフェースは、必要な検出サービスを提供します.アクセス可能なデバイスのリストを取得するには、3つの方法があります.DiscoveryAgent.startInquiry()メソッドでは、デバイスをクエリー・モードに設定できます.このモードを十分に利用するためには、クエリーに関連するイベントに反応するイベント・リスナーを指定する必要があります.クエリが完了またはキャンセルされるとDiscoveryListenerが呼び出されます.inquiryCompleted()メソッド.1台のデバイスが他のデバイスの発見を待たない場合はDiscoveryAgentを使用することができる.retrieveDevices()メソッドは、既存のリストを取得します.この方法は、前のクエリで発見されたデバイスのリストを返すか、ローカルデバイスがBluetooth制御センターに事前に連絡しているデバイスであることを通知する予知されたデバイスのリストを返す.そのリストを返すのは、渡されたパラメータに依存します.最も簡単な方法は、新しいBluetoothデバイスが検出された場合、オブジェクトはDiscoveryAgentを使用してDiscoveryListenerインタフェースを通じて通知する必要があります.サービス発見サービス発見は、どのデバイスが提供するサービスであっても、近くのサービスを発見することができます.DiscoveryAgentが提供する方法は、Bluetoothサービスデバイス上のサービスを検出し、サービス発見トランザクションを初期化するために使用できます.サービスが発見される前に、サービスは、まずBluetoothサービス装置に登録またはブロードキャストされなければならない.サービスデバイスは、提供されたサービスを記述するサービスレコードの作成、クライアントからの接続の受信、サービスデバイスのサービス発見データベース(SDDB)に新しいサービスレコードの追加など、多くのタスクを完了する責任を負う.要するに、その仕事はwebサーバに似ています.通信2台の設備は共通の通信プロトコルを共有しなければ通信できない.より多くのBluetoothサービスにアクセスできるように、Bluetooth java APIは、RFCOMM、L 2 CAP、またはOBEXプロトコルを使用する任意のサービスに接続できるようにするメカニズムを提供する.サービスがTCP/IPのような上記のプロトコルの上にある他のプロトコルを使用している場合、このサービスにアクセスできるのは、アプリケーションにおいてCLDC汎用接続フレームワークを使用して追加のプロトコルを実装している場合に限られる.サービスレコード用のURLには、数字と記号が含まれています.btspp://508031205080110F1B1B1D1C100:8.これは、お客様がBluetoothシリアルポートフレームワークを使用して、アドレス50803,1205080110 F 1 B 1 B 1 D 1 C 100のデバイスの8番のサービスを確立する必要があることを意味します.デバイスアドレスはコンピュータの物理アドレスと似ています