1

携帯電話で次のコードを実行すると、キャッチされない例外があったという黒い画面が表示されますが、ブロック全体がtry / catchブロックでラップされているため、奇妙です。とにかく、実行コードを続行すると、「Gettingdevice..」になります。明らかにこの行で失敗します:

   LocalDevice local = LocalDevice.getLocalDevice();

これが全体の方法です:

 public void startBT() 
            {
            try 
                    {
                        f.append("Getting device..");
                        LocalDevice local = LocalDevice.getLocalDevice();
                        f.append("Got local device..");
                        DiscoveryAgent agent = local.getDiscoveryAgent();
                        f.append("Got local discovery agent..");
                        connString = agent.selectService(new UUID(
                                "86b4d249fb8844d6a756ec265dd1f6a3", false),
                                ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false);
                        f.append("Got connection string - >" + connString);
            } 
                    catch (Exception ex) 
                    {
                        Alert message = new Alert("info");
                        message.setString(ex.getMessage());
                        Display.getDisplay(this).setCurrent(message);
            }
}

何か案は?

4

1 に答える 1

1

私が使用したデバイスは、J2MEMidletsからBluetoothを使用するために必要なJ2MEBluetoothAPI(これは電話に組み込まれており、「インストール」する方法はありません)であるJSR-82をサポートしていないようです。これはJSRをチェックする必要があるスニペットです- 82サポート:

 public static boolean IsBtJsrComaptible() {
        try {
            Class.forName("javax.bluetooth.LocalDevice");
            return true;
        } catch (Exception e) {
            return false;
        }
    }

上記のスニペットを実行しようとすると、キャッチされない例外が発生したことに注意してください。ただし、他のデバイスでも機能する可能性があります。

于 2012-12-26T18:36:45.087 に答える