2013-04-24 59 views
1

我的問題是,我無法找到我自己的藍牙設備的設備和設備服務的類。雖然我能夠使用Android奇怪的藍牙問題,無論是在API或我錯過東西

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 

我甚至嘗試訪問在sys>設備>虛擬路徑上的藍牙文件夾,但此文件夾不是位於每一個找到的連接狀態,MAC地址等信息設備。

有沒有辦法通過訪問proc文件系統來獲取藍牙信息,如果是的話請幫忙。

它通過取得

btAdapter.getBondedDevices()是真正奇怪的是,我能夠在藍牙Class遠程設備; // Retruns設定BluetoothDevice類類的

但我我無法獲得默認(自己)藍牙設備類。

回答

0

最後經過很多努力,我找到了一種方法來找到自己的藍牙設備的服務。 Sdptool提供用於在藍牙設備上執行SDP查詢以及管理本地sdpd的界面。代碼片段如下:此代碼僅適用於具有root訪問權限的設備。

try { 
      System.setOut(new PrintStream(new FileOutputStream("/mnt/sdcard/abc.txt"))); 
      System.out.println("HelloWorld1"); 
      Process p; 
      p = Runtime.getRuntime().exec(new String[] { "su", "-c","sdptool", "browse", "local" }); 
      BufferedReader stdInput = new BufferedReader(new InputStreamReader(
        p.getInputStream())); 
      String s; 
      String res = ""; 
      while ((s = stdInput.readLine()) != null) { 
       if(s.contains("")) 
       System.out.println(s); 
       Log.e("above -----", s); 
      } 
      p.destroy(); 
      return res; 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

,並在情況下,你要發現另一個藍牙設備的服務,那麼你可以將「本地」與遠程設備的MAC地址。

或者你也可以嘗試運行usinf亞行外殼的SDP工具如下:

>亞行外殼瀏覽的sdptool當地