1

当我在手机上运行以下代码时,我得到黑屏,说有未捕获的异常,但整个块被包裹在 try/catch 块中,所以这很奇怪,无论如何,当我继续执行代码时,只会进入“获取设备..”所以它显然在这条线上失败了:

   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

看起来我使用的设备不支持 JSR-82,它是 J2ME 蓝牙 API(这是内置在手机中,无法“安装”它)需要使用来自 J2ME Midlets 的蓝牙,这是应该检查 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 回答