1
我需要發送一個字符串到藍牙設備。但在發送時,我在java.io.OutputStream.write(byte[])
方法上得到了一個Exeption java.io.IOException: Transport endpoint is not connected
。android java.io.IOException:傳輸端點未連接
代碼如下所示。該代碼僅從配對設備列表中搜索特定設備併發送字符串。
public class MainActivity extends Activity {
TextView out;
private static final int REQUEST_ENABLE_BT = 1;
private BluetoothAdapter btAdapter;
private ArrayList<BluetoothDevice> btDeviceList = new ArrayList<BluetoothDevice>();
private ArrayAdapter<String> mPairedDevicesArrayAdapter;
private ArrayAdapter<String> mNewDevicesArrayAdapter;
BluetoothDevice device1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
out = (TextView) findViewById(R.id.out);
btAdapter = BluetoothAdapter.getDefaultAdapter();
ListpairedDevices();
}
/* This routine is called when an activity completes. */
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_ENABLE_BT) {
CheckBTState();
}
}
public void ListpairedDevices() {
Set<BluetoothDevice> pairedDevices = btAdapter.getBondedDevices();
// If there are paired devices, add each one to the ArrayAdapter
if (pairedDevices.size() > 0) {
out.append("\nPaired Devices \n");
for (BluetoothDevice device : pairedDevices) {
out.append("\n Device123: " + device.getName() + "," + device);
//mPairedDevicesArrayAdapter.add("\n Device123: " + device.getName() + "," + device);
String dv=device.toString();
if(dv.contains("00:1B:EE:82:31:1E"))
{
device1=device;
}
}
} else {
out.append("\nNo Pared Device");
}
out.append("\nDiscovered Devices");
}
public void sendtext(View v) {//button click
Set<BluetoothDevice> bd=btAdapter.getBondedDevices();
sendDataToPairedDevice("message1");
}
private void sendDataToPairedDevice(String message){
byte[] toSend = message.getBytes();
try {
UUID applicationUUID = UUID.fromString("8ce255c0-200a-11e0-ac64-0800200c9a66");
BluetoothSocket socket = device1.createInsecureRfcommSocketToServiceRecord(applicationUUID);
OutputStream mmOutStream = socket.getOutputStream();
mmOutStream.write(toSend);
} catch (IOException e) {
Log.e("Exception during write", e.toString());
}
}
}
()函數 – 2013-03-08 08:47:09
這是集 pairedDevices = btAdapter.getBondedDevices() ;你的listpaireddevice()方法中的第一行 –
Pragnani
2013-03-08 08:47:56
你已經使用過adatper,但是當時你還沒有拿到適配器 – Pragnani 2013-03-08 08:48:22