本文主要是介绍[Android源码分析]蓝牙搜索过程分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在完成打开蓝牙的分析之后,我们就正式进入到蓝牙使用的阶段了。毫无疑问,我们第一个对蓝牙的操作当然就是扫描设备了。那就是这样一个点击“扫描设备”究竟干了些什么,晓东和大家来仔细分析一下。
1、扫描设备按键的处理
代码的实现看起来很清晰,
@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case MENU_ID_SCAN://点击搜索,首先检查是否打开BTif (mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_ON) {//开始扫描startScanning();}return true;所以,就是调用 startScanning来进行真正的扫描操作。该函数的代码实现如下:private void startScanning() {//这里就是若是开始没有搜索过,第一次搜索需要显示那个搜索到的设备的那个组的uiif (!mAvailableDevicesCategoryIsPresent) {getPreferenceScreen().addPreference(mAvailableDevicesCategory);}//这里的true,就是强制扫描,强制扫描和不强制扫描的差别,我们后面来看mLocalAdapter.startScanning(true);}void startScanning(boolean force) {// Only start if we're not already scanning//先检查是否正在扫描。if (!mAdapter.isDiscovering()) {if (!force) {// Don't scan more than frequently than SCAN_EXPIRATION_MS,// unless forced//不是强制扫描,则5分钟之内再次搜索不响应 if (mLastScan + SCAN_EXPIRATION_MS > System.currentTimeMillis()) {return;}// If we are playing music, don't scan unless forced.//若是在听音乐,也不会扫描A2dpProfile a2dp = mPro
这篇关于[Android源码分析]蓝牙搜索过程分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!