安卓奇怪的蓝牙问题无论是在API还是我都缺少一些东西

时间:2013-04-24 15:30:19

标签: android bluetooth procfs

我的问题是我无法找到我自己的蓝牙设备的设备和设备服务类。虽然我能够使用

找到连接状态,MAC地址和其他信息
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

我甚至尝试访问sys>设备>虚拟路径中的Bluetooth文件夹,但此文件夹并非位于每个设备中。

有没有办法通过访问proc文件系统获取蓝牙信息,如果是,请帮助。

通过获取

,能够进入蓝牙类远程设备真的很奇怪
  

btAdapter.getBondedDevices(); //重新设置一套BluetoothDevice类

但是我无法获得默认(自己的)蓝牙的设备类。

1 个答案:

答案 0 :(得分: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地址。

或者您也可以尝试运行sdp工具usinf adb shell,如下所示:

<强>&GT; adb shell sdptool浏览本地