2014-02-10 93 views
1

我遇到了藍牙連接超時接收消息的問題。 我不是建立藍牙連接自己,這是由API中的方法來完成我使用藍牙連接超時:dm_pm_timer失效

的logcat的說:

09-20 10:44:31.270: W/bt-btif(883): dm_pm_timer expires 
09-20 10:44:31.270: W/bt-btif(883): dm_pm_timer expires 0 
09-20 10:44:31.290: W/bt-btif(883): proc dm_pm_timer expires 
09-20 10:44:31.310: E/bt-btif(883): bta_dm_pm_btm_status hci_status=36 

我在其他一些主題閱讀,但發現無解我的問題

這裏除了我的接收線程的一些代碼:

class RxThread extends Thread { 

    Handler myHandler = new Handler(); 

    final Runnable r = new Runnable() { 
     public void run() { 

      demoRxMsg = new MessageStructure(); 
      int progress = 0; 

      generateLogFileOnSD(logData, logText); 

      while (rxChannel.receiveMessage(demoRxMsg) == ReturnCode.SUCCESS) { 

       String data = ""; 
       String format = ""; 


       rxChannel.receiveMessage(demoRxMsg); 

       if (demoRxMsg.frameFormat == API_ADK.STANDARD_FRAME) { 
        format = "SFF"; 
       } else { 
        format = "EFF"; 
       } 

       for (byte i = 0; i < demoRxMsg.dataLength; i++) { 
        data = data + Integer.toHexString(demoRxMsg.data[i]) 
          + " "; 

       } 


       @SuppressWarnings("rawtypes") 
       Map keyMap = ResourceUtils.getHashMapResource(DiagnosisActivity.this, R.xml.hashmap1); 

       @SuppressWarnings("rawtypes") 
       Iterator iter = keyMap.entrySet().iterator(); 

       while(iter.hasNext()) { 
        @SuppressWarnings("rawtypes") 
        Map.Entry mEntry = (Map.Entry) iter.next(); 
        if (data.contains(mEntry.getKey().toString())) { 
         progress = Integer.parseInt(mEntry.getValue().toString()); 
        } 
       } 

     newLogText = format + "; ID=0x" 
          + Integer.toHexString(demoRxMsg.messageID) 
          + " Data=" + data + "\n"; 

        logText = logText + newLogText; 

        writeLogFileOnSD(logData, logText); 
        } 
      } 
      if (progress != -1) { 
       final int newProgress = progress; 

       myHandler.post(new Runnable() { 
        public void run() { 
         mProgressBar.setProgress(newProgress); 
        } 
       }); 
      } 
     } 
    }; 

    public void run() { 
     while (true) { 
      try { 
       Thread.sleep(60); 
       myHandler.post(r); 
      } catch (InterruptedException e) { 
       break; 
      } 
     } 
    } 
+0

有沒有人有線索?在互聯網上找不到有用的東西 – Fraggles

回答

1

恰好碰到了同樣的問題,關閉,然後回藍牙調試爲我做了詭計