Gast
#4715075
Hallo ich wollte oben genannte Konstellation zum Laufen bekommen.
Das momentane Problem ist, dass beim Aufruf von socket.connect() eine
Exception ausgelöst wird: "read failed, socket might closed or timeout,
read ret: -1"
code ist erst einmal folgender:
package com.example.rpeglow.bttest;
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.os.ParcelUuid;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.io.IOException;
import java.util.UUID;
import java.util.Vector;
public class MainActivity extends AppCompatActivity {
TextView textView;
Button button;
BluetoothAdapter bluetoothAdapter;
BluetoothDevice device;
Vector<BluetoothDevice> vector = new Vector<BluetoothDevice>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.tv1);
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
bluetoothAdapter.enable();
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
device =
intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
bluetoothAdapter.cancelDiscovery();
textView.setText(device.getName() + " " +
device.getAddress());
}
}
};
// Register the BroadcastReceiver
IntentFilter filter = new
IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(receiver, filter); // Don't forget to
unregister during onDestroy
bluetoothAdapter.startDiscovery();
}
public void click(View v) {
BluetoothSocket socket=null;
try {
socket = device.createRfcommSocketToServiceRecord(new
UUID(0xFFE1, 0x0815));
} catch (IOException ex) {
}
try {
socket.connect();
//socket.close();
} catch (IOException ex) {
textView.setText(ex.getLocalizedMessage());
}
//bluetoothAdapter.disable();
}
}
was läuft da falsch? über die benutzeroberfläche zu verbinden klappt
super.