2013-04-24 8 views
1

Моя проблема в том, что я не могу найти класс устройств и устройств на моем собственном устройстве Bluetooth. Хотя я могу найти состояние соединения, MAC-адрес и другую информацию с помощьюAndroid Strange bluetooth проблема либо в API, либо мне что-то не хватает

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 

Я даже пытался получить доступ к папке Bluetooth в SYS> Устройства> виртуальный путь, но эта папка не находится в каждом устройство.

Может ли быть какой-либо способ получить информацию о bluetooth, обратившись к файловой системе proc, если да, пожалуйста, помогите.

Это действительно странно, что я в состоянии класса, поддерживающих Bluetooth удаленных устройств, запрашивая в

btAdapter.getBondedDevices(); // Retruns набор класса BluetoothDevice

, но я Я не могу получить класс устройства по умолчанию (собственный) bluetooth.

ответ

0

Наконец, после многого боев я нашел способ найти услуги собственного устройства Bluetooth. Sdptool предоставляет интерфейс для выполнения SDP-запросов на устройствах Bluetooth и администрирования локального sdpd. Ниже приведен фрагмент кода для него: Этот код будет работать только в устройствах с корневым доступом.

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

и в случае, если вы хотите открыть для себя услуги другого устройства Bluetooth, то вы можете заменить «локальный» с MAC-адрес удаленного устройства.

Или вы можете также попробовать запустить SDP инструмент usinf ADB оболочки следующим образом:

> ADB оболочки sdptool просмотреть местные