Skip to content Skip to sidebar Skip to footer

Bluetooth Socket Connection

I'm creating an application that uses an android to send and receive data via bluetooth. but I'm having problems when creating the socket. He gets caught in that line mmSocket btse

Solution 1:

The code is below. He finds devices but does not open the communication socket.

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    bluetooth = BluetoothAdapter.getDefaultAdapter();
    msg = (TextView) findViewById(R.id.msg);

    if (bluetooth.isEnabled()) {
       String address = bluetooth.getAddress();
       String name = bluetooth.getName();
       toastText = name + " : " + address;
    }
    else
       toastText = "Bluetooth is not enabled";

    Toast.makeText(this, toastText, Toast.LENGTH_LONG).show();
    msg.append("Bluetooth is not enabled");

    enableBT = BluetoothAdapter.ACTION_REQUEST_ENABLE;
    startActivityForResult(new Intent(enableBT), 0);

    String aDiscoverable = BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE;
    startActivityForResult(new Intent(aDiscoverable),DISCOVERY_REQUEST);

    registerReceiver(new BroadcastReceiver() {
        public void onReceive(Context context, Intent intent) {
            String prevScanMode = BluetoothAdapter.EXTRA_PREVIOUS_SCAN_MODE;
            String scanMode = BluetoothAdapter.EXTRA_SCAN_MODE;
            int scanMode1 = intent.getIntExtra(scanMode, -1);
            int prevMode1 = intent.getIntExtra(prevScanMode, -1);
        }
    },
    new IntentFilter(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED));

    BroadcastReceiver discoveryResult = new BroadcastReceiver() {
        public void onReceive(Context context, Intent intent) {
            remoteDeviceName = intent.getStringExtra(BluetoothDevice.EXTRA_NAME);
            remoteDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
            Toast.makeText(getApplicationContext(),
            "Discovered: " + remoteDeviceName,
            Toast.LENGTH_SHORT).show();
            msg.append("\n"+remoteDeviceName);
            msg.append("\n"+remoteDevice);
     }
    };

    BroadcastReceiver discoveryMonitor = new BroadcastReceiver() {
        String dStarted = BluetoothAdapter.ACTION_DISCOVERY_STARTED;
        String dFinished = BluetoothAdapter.ACTION_DISCOVERY_FINISHED;

        public void onReceive(Context context, Intent intent) {
           if (dStarted.equals(intent.getAction())) {

              Toast.makeText(getApplicationContext(),
              "Discovery Started . . . ", Toast.LENGTH_SHORT).show();
          }
          else if (dFinished.equals(intent.getAction())) {
             Toast.makeText(getApplicationContext(),
            "Discovery Completed . . . ", Toast.LENGTH_SHORT).show();
         }
       }
    };
    registerReceiver(discoveryMonitor,
        new IntentFilter(dStarted));

    registerReceiver(discoveryMonitor,
        new IntentFilter(dFinished));

    startActivityForResult(new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE),  DISCOVERY_REQUEST);
    try {
        btserver = bluetooth.listenUsingRfcommWithServiceRecord(name, uuid);
    } catch (IOException e1) {
      e1.printStackTrace();
    }
    Thread acceptThread = new Thread(new Runnable() 
    {
        public void run()
        {
            try {
               btserver.accept();
            } catch (IOException e){
         Log.d("BLUETOOTH", e.getMessage());
         }
         }
    });
    acceptThread.start();
}     
}
}

Post a Comment for "Bluetooth Socket Connection"