2012-12-26 55 views
1

的时候,当我运行我的手机上下面的代码我得到黑屏说有未捕获的异常,但整个块被包裹在try/catch块所以很奇怪,反正当我执行的代码只是得到继续崩溃要在这一行的“获取设备。”因此很明显失败:MIDlet的调用蓝牙API

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); 
      } 
} 

任何想法?

回答

1

看起来我使用的设备不支持J2ME Midlets使用蓝牙所需的J2ME蓝牙API(这是内置于手机中,无法“安装”它的)的JSR-82,这里是代码片段检查JSR-82支持:

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

请注意,我得到了未捕获的异常试图上面的代码中运行,但也许会一些其他的设备上运行。