android - 当蓝牙断开连接或重新连接时,我的 webview 会重新加载

标签 android bluetooth broadcastreceiver android-webview

我有一个应用程序与蓝牙设备有问题。当我断开或重新连接蓝牙设备时,应用程序似乎重新加载,或者我会说重新加载 webview。它不会使应用程序崩溃,因为我正在使用接收器捕获连接和断开连接。这是我正在使用的代码以及我遇到的问题。 toast 正在工作,我不明白为什么它会刷新整个 View 。

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,则它会触发“键盘”配置更改事件,该事件会重新启动 Activity,类似于方向更改。将 configChanges="keyboard|screenSize"添加到您的 AndroidManifest.xml。我还有用于滑出式键盘的 keyboardHidden,以及方向,因为我不想在设备旋转时重新加载我的页面。

关于android - 当蓝牙断开连接或重新连接时,我的 webview 会重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23311748/

相关文章:

android - 如何接收启用/禁用的GPS?

android - 动态更改 ViewPager 中的 fragment 内容

安卓 Espresso Intent

ios - iBeacon 是专有的吗?

android - 如何取消配对蓝牙设备使用 android 2.1 sdk

c++ - 如何将 Windows SOCKADDR_BTH 的 C++ 转换复制到 Rust 中的 SOCKADDR?

android - 服务不从 BroadcastReceiver 运行? - 安卓

android - 检查当前是否显示 XML 布局?

java - 如何为 ListView 中的每个项目设置更新和删除按钮

android - 如何在第二个java文件中显示 toast ?