file-type

Android蓝牙广播接收器:状态监听与动作解析

ZIP文件

下载需积分: 50 | 3.19MB | 更新于2024-12-21 | 138 浏览量 | 6 下载量 举报 收藏
download 立即下载
它能够监听多种动作,这些动作包括蓝牙搜索设备的开始与结束,蓝牙状态的改变,以及蓝牙设备的连接与断开连接。具体动作有: 1. ACTION_DISCOVERY_STARTED: 当蓝牙开始搜索任何设备时触发的广播动作。 2. ACTION_DISCOVERY_FINISHED: 当蓝牙完成搜索任何设备时触发的广播动作。 3. ACTION_STATE_CHANGED: 当蓝牙开启或关闭时触发的广播动作。 4. ACTION_ACL_CONNECTED: 当蓝牙传感器连接任何设备时触发的广播动作。 5. ACTION_ACL_DISCONNECTED: 当蓝牙传感器与已配对的设备断开连接时触发的广播动作。 这个Android-Bluetooth-Receiver通过监听上述动作,可以实时地获取到蓝牙状态的变化,并根据这些变化执行相应的功能或反馈给用户。例如,当蓝牙搜索到新设备时,应用程序可以通过这种方式得知,并提示用户是否要连接该设备;当蓝牙状态改变时,应用程序可以自动关闭或开启与蓝牙相关的服务。 为了开发这样的广播接收器,通常会用到Android的Intent广播机制,以及相关的BluetoothAdapter类和BluetoothProfile接口。开发者需要在AndroidManifest.xml中注册上述动作对应的广播接收器,并在接收器类中重写onReceive方法来处理接收到的广播。 标签中提到的Java是开发Android应用程序的主要编程语言,它被广泛用于实现各种Android组件和服务。在这个案例中,Java代码会被用来编写处理蓝牙状态变化的逻辑。 压缩包子文件的文件名称列表中的Android-Bluetooth-Receiver-master可能是指源代码的压缩文件包,通常这样的文件包含了一个项目的所有必要文件,允许开发者下载并导入到Android Studio或其他IDE中,直接进行项目构建和运行。"

相关推荐

filetype

解释下 行 35494: 03-19 10:53:28.245863 5819 27215 I SppApiCall: internalConnect() called 行 35502: 03-19 10:53:28.248262 5819 27215 I SppClient: connect() called with: mac = [14:16:9E:B3:9D:1D], isConnected = false, readStatus = false, forceBond = true 行 35511: 03-19 10:53:28.250837 5819 27215 I SppClient: connect createBond 行 35512: 03-19 10:53:28.250928 5819 27215 I SppClient: registerBondStateReceiver() called 行 35667: 03-19 10:53:28.266950 5819 5819 I SppClient: mBondStateReceiver intent = [XX:XX:XX:XX:9D:1D], state = 11, preState = 10, mAddress = 14:16:9E:B3:9D:1D 行 36120: 03-19 10:53:28.392621 5819 5819 I SppClient: spp connect = 14:16:9E:B3:9D:1D 行 36153: 03-19 10:53:28.395557 4264 4264 I AIVS : BluetoothBase:onReceive: ACTION_ACL_CONNECTED, device : BluetoothDeviceInfo{ mCurrentOpType: 3 Device Ble='Xiaomi Watch S3 eSIM 9D1D; 14:16:9E:B3:9D:1D Device Edr ='Xiaomi Watch S3 eSIM 9D1D; 14:16:9E:B3:9D:1D vid:0xffff pid:0xffff MandatoryUpgrade:false channelStatus:0bleStatus:0 sppStatus:0 authStage:0 PowerMode:0 mBackUpMode:-1 isDeviceInfoUpdated:false authCmd:false FailedReason:0x0} 行 36520: 03-19 10:53:28.578832 11606 11606 I AIVS : BluetoothBase:onReceive: ACTION_ACL_CONNECTED, device : BluetoothDeviceInfo{ mCurrentOpType: 1 Device Edr ='Xiaomi Watch S3 eSIM 9D1D; 14:16:9E:B3:9D:1D vid:0xffff pid:0xffff MandatoryUpgrade:false channelStatus:0bleStatus:0 sppStatus:0 authStage:0 PowerMode:0 mBackUpMode:-1 isDeviceInfoUpdated:false authCmd:false FailedReason:0x0} 行 40552: 03-19 10:53:31.976034 5819 5819 I SppClient: mBondStateReceiver intent = [XX:XX:XX:XX:9D:1D], state = 12, preState = 11, mAddress = 14:16:9E:B3:9D:1D 行 40553: 03-19 10:53:31.976082 5819 5819 I SppClient: mBondStateReceiver BOND_BONDED 行 40554: 03-19 10:53:31.976090 5819 5819 I SppClient: unregisterBondStateReceiver() called 行 40820: 03-19 10:53:31.985213 5819 5819 I SppApiCall: onUnauthConnectFailure() called with: callback = [com.xiaomi.wearable.core.IConnectionCallback$Stub$Proxy@2824aaf] 行 40872: 03-19 10:53:31.988240 5819 5819 I SppClient: unregisterBondStateReceiver() called 行 40874: 03-19 10:53:31.988299 5819 5819 I SppClient: unregisterBondStateReceiver() Receiver not registered: m8.d$a@ffb3f24 行 40886: 03-19 10:53:31.988455 5819 5819 I SppClient: unregisterBondStateReceiver() called 行 40887: 03-19 10:53:31.988485 5819 5819 I SppClient: unregisterBondStateReceiver() Receiver not registered: m8.d$a@ffb3f24

filetype

03-16 12:32:57.511 18324 18324 W BtGatt.ScanManager: exception when invoking removeOnUidImportanceListener 03-16 12:32:57.511 18324 18324 W BtGatt.ScanManager: java.lang.IllegalArgumentException: Listener not registered: com.android.bluetooth.le_scan.ScanManager$2@a5c7225 03-16 12:32:57.511 18324 18324 W BtGatt.ScanManager: at android.app.ActivityManager.removeOnUidImportanceListener(ActivityManager.java:4734) 03-16 12:32:57.511 18324 18324 W BtGatt.ScanManager: at com.android.bluetooth.le_scan.ScanManager.cleanup(ScanManager.java:329) 03-16 12:32:57.511 18324 18324 W BtGatt.ScanManager: at com.android.bluetooth.le_scan.TransitionalScanHelper.cleanup(TransitionalScanHelper.java:283) 03-16 12:32:57.511 18324 18324 W BtGatt.ScanManager: at com.android.bluetooth.gatt.GattService.cleanup(GattService.java:407) 03-16 12:32:57.511 18324 18324 W BtGatt.ScanManager: at com.android.bluetooth.btservice.AdapterService.stopGattProfileService(AdapterService.java:1284) 03-16 12:32:57.511 18324 18324 W BtGatt.ScanManager: at com.android.bluetooth.btservice.AdapterService.bringDownBle(AdapterService.java:1173) 03-16 12:32:57.511 18324 18324 W BtGatt.ScanManager: at com.android.bluetooth.btservice.AdapterState$TurningBleOffState.enter(AdapterState.java:430) 03-16 12:32:57.511 18324 18324 W BtGatt.ScanManager: at com.android.internal.util.StateMachine$SmHandler.invokeEnterMethods(StateMachine.java:1042) 03-16 12:32:57.511 18324 18324 W BtGatt.ScanManager: at com.android.internal.util.StateMachine$SmHandler.performTransitions(StateMachine.java:888) 03-16 12:32:57.511 18324 18324 W BtGatt.ScanManager: at com.android.internal.util.StateMachine$SmHandler.handleMessage(StateMachine.java:828) 03-16 12:32:57.511 18324 18324 W BtGatt.ScanManager: at android.os.Handler.dispatchMessage(Handler.java:112) 03-16 12:32:57.511 18324 18324 W BtGatt.ScanManager: at android.os.Looper.loopOnce(Looper.java:288) 帮我解决下这个报错