最后经过一番挣扎,我找到了一种找到自己的蓝牙设备服务的方法。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,如下所示:
>> adb shell sdptool 浏览本地