我正在制作一个应用程序,它与特定的 Arduino HC06 蓝牙模块进行通信。
我一直在用 Marshmallow 在我的三星 S5 Neo 上测试这个应用程序,现在当我完成大部分工作时,我想在我的主要手机上试用运行 Android Oreo 的小米红米 5。但它不起作用。我的奥利奥手机成功连接到 HC06 模块,但它无法连接。
到目前为止我做了什么:
我已确保我的奥利奥手机和 HC06 模块已配对。我通过运行时添加了一些额外的权限。到目前为止,我拥有这些权限:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
我不明白为什么这适用于我拥有的旧手机,但不适用于新手机。我希望有人能指导我正确的方向,谢谢。
这是我用来查找蓝牙并连接到蓝牙的方法
void findBT() {
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if(mBluetoothAdapter == null) {
Toast errore = makeText(MachineReady.this, "Error, enable bluetooth", Toast.LENGTH_LONG);
errore.show();
}
if(!mBluetoothAdapter.isEnabled()) {
Intent enableBluetooth = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBluetooth, 0);
}
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
if(pairedDevices.size() > 0) {
for(BluetoothDevice device : pairedDevices) {
mmDevice = device;
break;
}
}
Log.e("Bluetooth", "Bluetooth device found01");
//Toast found = makeText(MachineReady.this, "Bluetooth device found", Toast.LENGTH_LONG);
//found.show();
}
在日志中我收到一个异常说:“无法找到或连接到蓝牙”,这是来自这个
try {
findBT();
openBT();
} catch (IOException e) {
Log.e("Bluetooth", "Couldn't find or connect to bluetooth");
}
饮歌长啸
相关分类