2014-08-29 59 views

回答

1

像這樣的東西可能就足夠了:

DataOutputStream os; 

BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter(); 

BroadcastReceiver discoveryResult = new BroadcastReceiver() { 
    public void onReceive(Context context, Intent intent) { 
     String remoteDeviceName = intent.getStringExtra(BluetoothDevice.EXTRA_NAME); 
     BluetoothDevice remoteDevice; 

     remoteDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 

     Toast.makeText(getApplicationContext(), "Discovered: " + remoteDeviceName + " address " + remoteDevice.getAddress(), Toast.LENGTH_SHORT).show(); 

     try{ 
      BluetoothDevice device = bluetooth.getRemoteDevice(remoteDevice.getAddress()); 

      Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class}); 

      BluetoothSocket clientSocket = (BluetoothSocket) m.invoke(device, 1); 

      clientSocket.connect(); 

      os = new DataOutputStream(clientSocket.getOutputStream()); 

      new clientSock().start(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
      Log.e("BLUETOOTH", e.getMessage()); 
     } 
    } 
}; 

registerReceiver(discoveryResult, new IntentFilter(BluetoothDevice.ACTION_FOUND)); 

bluetooth.enable(); 
if (!bluetooth.isDiscovering()) { 
    bluetooth.startDiscovery(); 
} 

public class clientSock extends Thread { 
    public void run() { 
     try { 
      os.writeBytes("anything you want"); // anything you want 
      os.flush(); 
     } catch (Exception e1) { 
      e1.printStackTrace(); 
      return; 
     } 
    } 
} 

您還需要大量進口,如這些的:

import java.io.DataInputStream; 
import java.io.DataOutputStream; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.lang.reflect.Method; 
import java.net.ServerSocket; 
import java.net.Socket; 
import java.net.UnknownHostException; 
import java.util.List; 
import java.util.UUID; 

import android.os.Bundle; 
import android.os.StrictMode; 
import android.app.Activity; 
import android.bluetooth.BluetoothAdapter; 
import android.bluetooth.BluetoothDevice; 
import android.bluetooth.BluetoothSocket; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.content.IntentFilter; 
import android.util.Log; 
import android.view.Menu; 
import android.widget.Toast; 

注意,並不是所有的進口是必要的這個例子的代碼,你的IDE可能會幫助你爲你排序。

os.writeBytes("anything you want"); // anything you want行上傳遞數據。

您還需要Permissions

+0

謝謝,但是在哪裏傳遞數據?以及如何服務器UUID? – ashokgujju 2014-08-30 00:35:01

+0

更新後的答案,UUID實際上並不是我所需要的,但我認爲它是舊的代碼..大約一歲,所以我實際上並沒有記住,你也必須爲自己制定溝通的另一面。 – 19greg96 2014-08-30 01:02:33

相關問題