[[← 3 節に戻る|Palm OS Programmer's Companion Volume II/6-3]] [[↑6 章トップへ|Palm OS Programmer's Companion Volume II/6]] ---- !!! 6-4 Bluetooth 交換ライブラリのサポート   Bluetooth ライブラリには Bluetooth 交換ライブラリが伴います。これはアプリケーションが標準交換マネージャ API を使って Bluetooth をサポートできるようにするものです。Bluetooth 交換ライブラリは、オブジェクトプッシュとジェネリックオブジェクト交換プロファイルに適応します。 交換マネージャについて詳しくは、''Palm OS Programmer's Companion'' の 「[[オブジェクト交換|Palm OS Programmer's Companion Volume II/1]]」 章を参照して下さい。 !!Bluetooth 交換ライブラリの検知 Bluetooth 交換ライブラリの存在をチェックするためには、{{span style='color:blue;font-family:monospace;',FtrGet}} を使用します。 err = FtrGet(btexgFtrCreator, btexgFtrNumVersion, &btExgLibVersion); もしBluetooth交換ライブラリが存在するなら、{{span style='color:blue;font-family:monospace;',FtrGet}} は {{span style='color:blue;font-family:monospace;',errNone}} を戻します。この場合、{{span style='color:blue;font-family:monospace;',btExgLibVersion}} によって示される値は Bluetooth 交換ライブラリのバージョン番号を含んでいます。バージョン番号のフォーマットは {{span style='color:blue;font-family:monospace;',0xMMmfsbbb}} です。{{span style='color:blue;font-family:monospace;',MM}} はメジャーバージョン、{{span style='color:blue;font-family:monospace;',m}} はマイナーバージョン、{{span style='color:blue;font-family:monospace;',f}} はバグフィックスレベル、{{span style='color:blue;font-family:monospace;',s}} はステージ、{{span style='color:blue;font-family:monospace;',bbb}} はビルド番号です。ステージ 3 はライブラリのリリースバージョンであることを示します。ステージ 2 はベータリリース、ステージ 1 はアルファリリース、ステージ 0 は開発リリース、となります。よって、例えば、{{span style='color:blue;font-family:monospace;',0x01013000}} という値は、Bluetooth 交換ライブラリのリリースバージョン 1.01 ということです。 !!Bluetooth で交換マネージャを使用する Bluetoothで交換マネージャを使用することは、IRDA や SMS で交換マネージャを使用するのとほぼ同じです。違いは以下の通りです。 *Bluetooth特有の特殊フィールドを持つオブジェクトを送るとき、URL を使います。 *アプリケーションは通信中のデバイスの URL を知りたいかもしれません。交換マネージャはその情報を取得する方法を提供します。 *{{span style='color:blue;font-family:monospace;',ExgGet}} 関数と {{span style='color:blue;font-family:monospace;',ExgRequest}} 関数は、Bluetoothではサポートされません。 これらの違いについて、以下のセクションで更に説明します。 !Bluetooth 交換 URL もしBluetooth交換ライブラリおよびURLを使ってオブジェクトを送信するなら、URLの整形方法に依存して、オブジェクトを単一または複数のデバイスに一度に送ることができます。Bluetooth 交換ライブラリ URL は、以下のどれかの形式になります。  {{span style='color:blue;font-family:monospace;',_btobex:}}{{span style='color:blue;font-family:monospace;font-style:italic;',filename}}  {{span style='color:blue;font-family:monospace;',_btobex://}}{{span style='color:blue;font-family:monospace;font-style:italic;',filename}}  {{span style='color:blue;font-family:monospace;',_btobex://?_multi/}}{{span style='color:blue;font-family:monospace;font-style:italic;',filename}}   デバイス問合せを行ない、ユーザが利用できるデバイスを示し、ユーザが一つ以上のデバイスを選択できるようにします。選択された全デバイスにオブジェクトを送信します。  {{span style='color:blue;font-family:monospace;',_btobex://?_single/}}{{span style='color:blue;font-family:monospace;font-style:italic;',filename}}   デバイス問合せを行ない、ユーザが利用できるデバイスを示し、ユーザが一つだけデバイスを選択できるようにします。そのデバイスにオブジェクトを送信します。  {{span style='color:blue;font-family:monospace;',_btobex://}}{{span style='color:blue;font-family:monospace;font-style:italic;',"address1[,address2, ..]/filename"}}   指定された Bluetooth デバイスアドレスでオブジェクトをデバイスに送信します。アドレスは 「{{span style='color:blue;font-family:monospace;',"xx:xx:xx:xx:xx:xx"}}」 形式です。 これらの URL 形式を結合しないで下さい。予期しない結果になります。 !リモートデバイスの URL を取得する データを受け取るリモートデバイスを示す URL を知る必要のあるアプリケーションがあります。これは特にゲームで有用です。以下のコードが示すように、{{span style='color:blue;font-family:monospace;',ExgControl}} 関数を使って {{span style='color:blue;font-family:monospace;',ExgAccept}} をコールしたあとに URL を得ることができます。 ExgCtlGetURLType getUrl; UInt16 getUrlLen; // First get the size of the URL getUrl.socketP = exgSocketP; getUrl.URLP = NULL; getUrl.URLSize = 0; getUrlLen = sizeof(getUrl); ExgControl(exgSocketP, exgLibCtlGetURL, &getUrl, &getUrlLen); // Now get the URL getUrl.URLP = MemPtrNew(getUrl.URLSize); ExgControl(exgSocketP, exgLibCtlGetURL, &getUrl, &getUrlLen); // getUrl.URLP points to a null-terminated URL string // describing the remote device, for example, // "_btobex://01:23:45:67:89:ab/" ... // Free the URL after you're done with it MemPtrFree(getUrl.URLP); !!ExgGet と ExgRequest Bluetooth 交換ライブラリは、{{span style='color:blue;font-family:monospace;',ExgGet}} や {{span style='color:blue;font-family:monospace;',ExgRequest}} で提供されるプル関数をサポートしません。もしこれらの関数を実行したいなら、一般的な Bluetooth ライブラリ API を使用します。「[[Bluetooth 利用可能なアプリケーションの開発|Palm OS Programmer's Companion Volume II/6-2]]」を参照して下さい。   ---- [[← 3 節に戻る|Palm OS Programmer's Companion Volume II/6-3]] [[↑6 章トップへ|Palm OS Programmer's Companion Volume II/6]]