2012-06-07 3 views
1

У меня есть требование перечислить все доступные устройства на bluetooth и передать любой файл с устройства Android на выбранное устройство. Я пытался использовать код нижеОбмен файлами Android через Bluetooth

private void sharefile(String deviceAddress,String filePath){ 
     File f = new File(filePath); 
     BluetoothAdapter objBluetoothAdapter = BluetoothAdapter 
         .getDefaultAdapter(); 

       BluetoothDevice device = objBluetoothAdapter 
         .getRemoteDevice(deviceAddress); 
       Log.v("Device", "" + device.getName()); 

       final UUID uuid = UUID 
         .fromString("00001101-0000-1000-8000-00805F9B34FB"); 

       try { 
        byte[] buffer = new byte[(int) f.length()]; 
        FileInputStream fis = new FileInputStream(f); 
        BufferedInputStream bis = new BufferedInputStream(fis); 
        bis.read(buffer, 0, (int) f.length()); 

        BluetoothSocket socket = device 
          .createRfcommSocketToServiceRecord(uuid); 

        OutputStream os = socket.getOutputStream(); 
        os.write(buffer, 0, buffer.length); 
        os.flush(); 
        os.close(); 
        socket.close(); 
       } catch (SecurityException e) { 
        e.printStackTrace(); 
       } catch (IllegalArgumentException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

    } 

При выполнении приведенной выше коды показано транспорта конечной точка не подключены сообщений на LogCat.

06-11 18: 26: 49,960: Вт/System.err (9812): java.io.IOException: Транспорт конечная точка не подключена 06-11 18: 26: 49,960: Вт/System.err (9812): at android.bluetooth.BluetoothSocket.writeNative (родной метод) 06-11 18: 26: 49.960: W/System.err (9812): на android.bluetooth.BluetoothSocket.write (BluetoothSocket.java:346) 06-11 18: 26: 49.960: W/System.err (9812): at android.bluetooth.BluetoothOutputStream.write (BluetoothOutputStream.java:85) 06-11 18: 26: 49.960: W/System.err (9812)): at com.cit.bt.ShareMessageActivity.connectDevice (ShareMessageActivity.java:138) 06-11 18: 26: 49.960: W/System.err (9812): at com.cit.bt.ShareMessageActivity.shareFile (ShareMessageActivity .java: 83) 06-11 18: 26: 49.960: W/System.err (9812): at com.cit.bt.ShareMessageActivity.onListItemClick (ShareMessageActivity.java:73) 06-11 18: 26: 49.960: W/System. err (9812): at android.app.ListActivity $ 2.onItemClick (ListActivity.java:319) 06-11 18: 26: 49.960: W/System.err (9812): at android.widget.AdapterView.performItemClick (AdapterView .java: 284) 06-11 18: 26: 49.960: W/System.err (9812): at android.widget.ListView.performItemClick (ListView.java:3736) 06-11 18: 26: 49.960: W /System.err(9812): at android.widget.AbsListView $ PerformClick.run (AbsListView.java:1974) 06-11 18: 26: 49.960: W/System.err (9812): at android.os.Handler .handleCallback (Handler.java:587) 06-11 18: 26: 49.960: W/System.err (9812): at android.os.Handler.dispatchMessage (Handler.java:92) 06-11 18:26 : 4 9.960: W/System.err (9812): at android.os.Looper.loop (Looper.java:130) 06-11 18: 26: 49.960: W/System.err (9812): at android.app. ActivityThread.main (ActivityThread.java:3687) 06-11 18: 26: 49.960: W/System.err (9812): at java.lang.reflect.Method.invokeNative (собственный метод) 06-11 18:26 : 49.960: W/System.err (9812): при java.lang.reflect.Method.invoke (Method.java:507) 06-11 18: 26: 49.960: W/System.err (9812): at com .android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:867) 06-11 18: 26: 49.960: W/System.err (9812): at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:625) 06-11 18: 26: 49.960: W/System.err (9812): at dalvik.system.NativeStart.main (родной метод)

, а также попытался использовать ниже альтернативный код для подключения устройства, он подключил устройство, но не смог передать файл.

BluetoothDevice hxm = BluetoothAdapter.getDefaultAdapter() 
       .getRemoteDevice(deviceAddress); 
     Method m; 

      m = hxm.getClass().getMethod("createRfcommSocket", 
        new Class[] { int.class }); 
      BluetoothSocket socket = (BluetoothSocket) m.invoke(hxm, 
        Integer.valueOf(1)); 
      socket.connect(); 

Я также предоставил требуемое разрешение в манифесте android, но он не смог подключиться. Помогите мне решить эту проблему.

Можете ли вы предоставить мне логику передачи файлов Bluetooth с Android-рынка.

Спасибо!

ответ

0

Это устройство Bluetooth HMX случайно не будет монитором сердечного ритма? В любом случае мы опубликовали хороший пример (основанный на примере Google Bluetooth Chat). Это немного более урезано, чем в примере, и, надеюсь, вы найдете его полезным.

http://ww2.cs.fsu.edu/~sposaro/mobile/resources/BeatConnect.zip

+0

Спасибо за ваш ответ ... Я не хочу, чтобы приложение, чтобы быть установлены на обоих устройствах, таких как модуль клиент-сервер. можете ли вы предоставить мне образец для обнаружения соседнего устройства Bluetooth и совместного использования файлов. без клиент-серверного модуля. Как и передача файлов Bluetooth с Android-рынка. –

+0

Вы подключили устройство Bluetooth с устройством Android? – Proxy32

+0

Да. Мне жаль, что я не помню, как все произошло. Я знаю, что код, который я предоставил, подключается к монитору BlueTooth HeartRate. –

Смежные вопросы