java - Android 通过蓝牙从 HC-06 发送/接收数据

标签 java android android-studio arduino bluetooth

我正在制作一个 Android Studio 应用程序来通过蓝牙控制我的 Arduino 项目。我已成功将 HC-06 模块连接到具有以下类的应用程序:

class ConnectBT extends AsyncTask<Void, Void, Void>{
private boolean ConnectSuccess = true;

@Override
protected void onPreExecute() {

}

@Override
protected Void doInBackground(Void... devices)
{
    try
    {
        if (Drive.btSocket == null || !Drive.isBtConnected)
        {
            Drive.myBluetooth = BluetoothAdapter.getDefaultAdapter();
            BluetoothDevice dispositivo = Drive.myBluetooth.getRemoteDevice(Drive.BTaddress);
            Drive.btSocket = dispositivo.createInsecureRfcommSocketToServiceRecord(Drive.myUUID);
            BluetoothAdapter.getDefaultAdapter().cancelDiscovery();
            Drive.btSocket.connect();
        }
    }
    catch (IOException e)
    {
        ConnectSuccess = false;exception here
    }
    return null;
}
@Override
protected void onPostExecute(Void result)
{
    super.onPostExecute(result);

    if (!ConnectSuccess)
    {
        msg("Connection Failed. Is it a SPP Bluetooth? Try again.");
    }
    else
    {
        msg("Connected.");
        Drive.loadingScreen.setVisibility(View.GONE);
        System.out.println("Connected");
        Drive.isBtConnected = true;
    }
    //Drive.progress.dismiss();
}
private void msg(String s)
{
    //Toast.makeText(Drive.class.,s,Toast.LENGTH_LONG).show();
}

}

但是现在,当我尝试从应用程序发送和接收数据时,事情变得很困难,所以我陷入了困境。我在谷歌上搜索了如何发送和接收数据,但我主要找到了有关如何从头开始制作 BT 应用程序的教程。如何在 Android 应用程序中通过蓝牙从 HC-06 发送和接收数据?有代码 fragment 吗?

最佳答案

用以下代码 fragment 解决了这个问题:

void sendData(String data){
            if (isBtConnected){
                try {
                    Drive.btSocket.getOutputStream().write((data).getBytes());
                } catch (IOException e) {
                    e.printStackTrace();
                    msg("Failed to send Bluetooth data");
                }
            }
        }

关于java - Android 通过蓝牙从 HC-06 发送/接收数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57039243/

相关文章:

java - 提示用户输入3个数字,添加最大的2个数字(无法调用方法)

java - 带有 Java 8 Streams 分离对象的 Spring Data JPA 存储库?

android - android中的旋转问题

Android 应用程序从后台导航到启动 Activity

android studio gradle同步错误

用于操作栏和通知的 Android 图标生成器不起作用(灰色形状)

java - 权限对话框

java - Android:通过 RTP (G.711 PCMU) 将 .wav 发送到 SIP 电话,基于 SipDroid/MjSIP,声音非常嘈杂、噼啪作响

android - 使用现有 token 的 Facebook SDK 登录

java - 使用 TYPE 通过 Inheritance.table_per_class 策略仅选择特定类