eclipse / WTK 2.5.2 で J2ME プログラムを開発していますが、Bluetooth を使用して 2 つのエミュレーターを接続する際に問題があります。1 つのサーバーと 1 つの .client が 2 つの異なるエミュレーターで実行されています。
問題は、クライアント プログラムが Bluetooth デバイスを検出できないことです。サーバーとクライアントのコードは次のとおりです。
public Server()
{
try
{
LocalDevice local = LocalDevice.getLocalDevice();
local.setDiscoverable(DiscoveryAgent.GIAC);
server = (StreamConnectionNotifier)
Connector.open("btspp://localhost:"
+ UUID_STRING + ";name=" + SERVICE_NAME);
Util.Log("EchoServer() Server connector open!");
}
catch (Exception e)
{}
}
Connector.open を呼び出した後、コンソールに次の警告が表示されます。これは関連していると思われます。
警告: 未登録のデバイス: 未指定
デバイスを検索するクライアント コード:
public SearchForDevices(String uuid, String nm)
{
UUIDStr = uuid;
srchServiceName = nm;
try
{
LocalDevice local = LocalDevice.getLocalDevice();
agent = local.getDiscoveryAgent();
deviceList = new Vector();
agent.startInquiry(DiscoveryAgent.GIAC, this); // non-blocking
}
catch (Exception e)
{}
}
システムは deviceDiscovered を呼び出すことはありませんが、inquiryCompleted() を INQUIRY_COMPLETED パラメータで呼び出すため、クライアント プログラムは正常に動作すると思います。
エミュレータの設定で Bluetooth が有効になっています。