你好,我在OnePlus6上遇到问题,该设备被检测为没有蓝牙
这是激活蓝牙的方法:
protected void onResume(){
super.onResume();
boolean fAdapterEnabled = BluetoothAdapter.getDefaultAdapter().isEnabled();
try {
if (!fAdapterEnabled) {
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivity(intent);
}
}catch (Exception e){
Log.d("bgx_dbg", "Exception caught while calling isEnabled.");
Toast.makeText(this,"Exception caught", Toast.LENGTH_LONG).show();
}
}
我想澄清一下这段代码可以与其他智能手机完美配合
这是我的错误:
2019-01-25 14:16:57.571 28761-28761 /? E / BluetoothAdapter:蓝牙 活页夹为空2019-01-25 14:16:57.590 28761-28761 /? E / AndroidRuntime: 致命异常:主要 流程:com.clj.blesample,PID:28761 java.lang.NullPointerException:尝试在null上调用虚拟方法'boolean android.bluetooth.BluetoothAdapter.isEnabled()' 对象引用
清单:
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
<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.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
答案 0 :(得分:0)
从上面给出的代码来看,这似乎是蓝牙适配器的问题,如果您没有在下面显示的清单中给应用程序以正确的权限,或者蓝牙被损坏,则可能发生。我在下面添加了代码,您应该使用它来考虑出现故障的蓝牙,并创建一个实用程序类,您可以从中进行调用。
注意:它的蓝牙适配器null不是isEnabled
权限:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
代码:
public static boolean isBluetoothEnabled() {
final BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
return (bluetoothAdapter != null && bluetoothAdapter.isEnabled());
}