java - 通过蓝牙接收的消息在android应用程序中拆分
问题描述
我正在开发一个 Android APP,它在 Android 设备和微控制器(Raspberry Pi)之间进行蓝牙通信,我正在使用这个库来实现这一点。我可以正常发送数据而没有任何问题,但是,当我尝试从微控制器接收数据时,字符串被拆分为 2,例如:当我发送“Hello world!”时 从树莓派,我应该得到:
你好世界!
但我得到:
H
你好世界!
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
import com.ahmedabdelmeged.bluetoothmc.BluetoothMC;
import com.ahmedabdelmeged.bluetoothmc.ui.BluetoothDevices;
import com.ahmedabdelmeged.bluetoothmc.util.BluetoothStates;
import com.google.android.material.bottomnavigation.BottomNavigationView;
public class MainActivity extends AppCompatActivity {
public BluetoothMC mBluetoothmc = new BluetoothMC();
private final HomeFragment mHomeFragment = new HomeFragment();
private final MapFragment mMapFragment = new MapFragment();
private final LogFragment mLogFragment = new LogFragment();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BottomNavigationView BottomNav = findViewById(R.id.bottom_navigation);
BottomNav.setOnNavigationItemSelectedListener(navListener);
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
mHomeFragment).commit();
mBluetoothmc.setOnDataReceivedListener(new BluetoothMC.onDataReceivedListener() {
@Override
public void onDataReceived(String data) {
log.e("Main", data);
}
});
}
我之前使用过这个库,它工作正常,唯一的区别是我使用的是 linux 机器而不是 windows。图书馆的开发人员也处于非活动状态,所以我不能问他
解决方案
您好,您可以通过 Rfcomm 或 Gatt 接口连接到蓝牙设备,而无需使用任何第三方库。
当数据量较大时,首选 Rfcomm。当设备之间的距离较远时,首选蓝牙 Gatt
推荐阅读
- r - 如何在 Twitter 文本数据上使用 unnest_token?
- sqlalchemy - SQL 炼金术和日期时间
- java - 计步器/健身应用程序的圆形进度条
- java - 无法将数据持久保存到多对多映射实体中
- linux - 为csv文件linux中的列数据添加标题
- asp.net - Orchard CMS 无法与 PayPal IPN + GA 搭配使用?
- javascript - 使用 SUM 或 MINUS MySQL 插入重复键更新
- vue.js - Nuxt 应用加载时将异步数据加载到 vuex 存储中
- python - Python - 使用 .exe 依赖项编译 .py 程序
- json - 无法在 dotnet core 3.1 中将多维数组序列化为 JSON