packages\apps\Settings\src\com\android\settings\bluetooth\BluetoothSettings.java
SwitchBar BluetoothEnabler 开关
frameworks\base\packages\SettingsLib\src\com\android\settingslib\bluetooth\LocalBluetoothAdapter.java
setBluetoothEnabled
frameworks\base\core\java\android\bluetooth\BluetoothAdapter.java
enable()
frameworks\base\services\core\java\com\android\server\BluetoothManagerService.java
packages\apps\Bluetooth\src\com\android\bluetooth\btservice\AdapterService.java
private static class AdapterServiceBinder extends IBluetooth.Stub {
packages\apps\Bluetooth\jni\com_android_bluetooth_btservice_AdapterService.cpp
static bool initNative(JNIEnv* env, jobject obj) {
int ret = sBluetoothInterface->init(&sBluetoothCallbacks);
}
static bt_callbacks_t sBluetoothCallbacks = {
sizeof(sBluetoothCallbacks),
adapter_state_change_callback,
adapter_properties_callback,
remote_device_properties_callback,
device_found_callback,
discovery_state_changed_callback,
pin_request_callback,
ssp_request_callback,
bond_state_changed_callback,
acl_state_changed_callback,
callback_thread_event,
dut_mode_recv_callback,
le_test_mode_recv_callback,
energy_info_recv_callback,
NULL
};
sJniAdapterServiceObj == AdapterService.this
sJniCallbacksObj == AdapterService.mJniCallbacks
system\bt\btif\include\btif_dm.c
HAL_CBACK(bt_hal_cbacks, adapter_properties_cb, BT_STATUS_SUCCESS, 1, &prop);
.....
//sBluetoothInterface === system\bt\btif\src\bluetooth.c
BT_HARDWARE_MODULE_ID
static int init(bt_callbacks_t *callbacks) {
stack_manager_get_interface()->init_stack();
}
system/bt/btif/src/stack_manager.c
static const stack_manager_t interface = {
init_stack,
start_up_stack_async,
shut_down_stack_async,
clean_up_stack,
get_stack_is_running
};
btif_init_bluetooth();
Android BlueDroid(二):BlueDroid蓝牙开启过程init
http://blog.youkuaiyun.com/xubin341719/article/details/40393285