Android Bluetooth模块
文件大小: 103k
源码售价: 10 个金币 积分规则     积分充值
资源说明:在SystemServer 启动的时候,会生成一个BluetoothDeviceService 的实例, // Skip Bluetooth if we have an emulator kernel // TODO: Use a more reliable check to see if this product should // support Bluetooth - see bug 988521 if (SystemProperties.get("ro.kernel.qemu").equals("1")) { Log.i(TAG, "Registering null Bluetooth Service (emulator)"); ServiceManager.addService(Context.BLUETOOTH_SERVICE, null); } else if (factoryTest == SystemServer.FACTORY_TEST_LOW_LEVEL) { Log.i(TAG, "Registering null Bluetooth Service (factory test)"); ServiceManager.addService(Context.BLUETOOTH_SERVICE, null); } else { Log.i(TAG, "Starting Bluetooth Service."); bluetooth = new BluetoothDeviceService(context); bluetooth.init(); ServiceManager.addService(Context.BLUETOOTH_SERVICE, bluetooth); int bluetoothOn = Settings.System.getInt(mContentResolver, Settings.System.BLUETOOTH_ON, 0); if (bluetoothOn > 0) { bluetooth.enable(null); } } BluetoothDeviceService 会生成一个BluetoothEventLoop 实例,它们两者均通过DBUS 来和 BlueZ 通信。BluetoothDeviceService 是通过DBUS 向BlueZ 发送命令,而命令的返回结果则 是由BlueZ 通过DBUS 传回给BluetoothEventLoop 的(具体交互请参见BlueZ 的 dbus_api.txt ) ,BlueZ 也会通过DBUS 向BluetoothEventLoop 发送一些事件通知。 BluetoothEventLoop 和外部的接口是通过预先定义的Intent, 初始的时候蓝牙是没有使能的,要通过BluetoothSettings 或者WirelessSettings 来打开蓝牙设 备,然后通过BluetoothSettings 去查找附近的其他蓝牙设备,找到后可以建立RFCOMM 连 接和配对。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。