我有一个与蓝牙设备有问题的应用程序。当我断开连接或重新连接蓝牙设备时,应用程序似乎重新加载,或者我会说重新加载webview。它不会使应用程序崩溃,因为我正在使用接收器捕获连接和断开连接。这是我正在使用的代码和我坚持的地方。吐司正在工作,我无法弄清楚为什么它刷新整个视图。
public class MyBTReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("android.bluetooth.device.action.ACL_CONNECTED"))
{
Toast.makeText(context, "BT connect", Toast.LENGTH_SHORT).show();
}else if(intent.getAction().equals("android.bluetooth.device.action.ACL_DISCONNECTED"))
{
Toast.makeText(context, "BT disconnect", Toast.LENGTH_SHORT).show();
}
}
}
<receiver android:name=".MyBTReceiver">
<intent-filter>
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
<action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />
</intent-filter>
</receiver>
如果蓝牙设备是HID,则它触发“键盘”配置改变事件,其重新开始活动,类似于方向改变。将configChanges =“keyboard | screenSize”添加到AndroidManifest.xml。我还有用于滑出式键盘的keyboardHidden,以及方向,因为我不想在旋转设备时重新加载页面。