• CtsVerifier-Bluetooth-LE-SEcure-ClientServer-Test测试pass但是无法选择PassButton


    【问题描述】

    CtsVerifier-Bluetooth-LE-SEcure-ClientServer-Test测试pass但是无法选择Pass-Button
    工具版本:9.0-r11
    其他信息:
    上个版本正常,verifier版本相同
    分析过程中结合代码咨询测试,印证只有Client无法选中,Server正常

    【问题结论】

    蓝牙驱动修改引入,已定位回退,需要bsp进一步修改

    verifier的该项测试流程:
    Client测试pass后做出先关闭mAdapter.disable()后打开mAdapter.enable()的动作,
    经梳理蓝牙框流程发现,蓝牙关闭后再次打开超时失败,由此导致verifier的该项测试Activity无法收到广播将按钮设置为可选enable

    AuthBlog:秋城https://www.cnblogs.com/houser0323

    【分析详细】

    Bluetooth-LE-SEcure-ClientServer-Test

    流程概述
    1.启动BleSecureClientStartActivity
    该测试页面只是一个activity-ui。主要的方法实现和流程动作都在父类Activity中,重点关注父类。
    2.调用父类BleClientTestBaseActivity的onCreate()完成:
    页面显示
    设置底部pass-fail-button按键的监听
    设置pass-button为disable不可选
    初始化页面的测试项ListView
    回到子类继续onCreate():
    显示info提示信息的dialog
    启动BleClientService准备测试

    3.调用父类BleClientTestBaseActivity的onResume():
    注册测试服务BleClientService的广播监听BroadcastReceiver mBroadcast

    4.开始测试
    这个测试是俩设备Server-Client配对测试,自动触发,细节略,和Server端之间的蓝牙通信有关
    listview每一条测试结束都会有广播发出,接收广播后将mPassed做或运算,如果一切顺利mPassed的运算结果是PASS_FLAG_ALL
    这代表测试项全部通过

    private static final int PASS_FLAG_ALL = 0x3FFFF;
    

    然后Client端将蓝牙关闭mAdapter.disable()再打开mAdapter.enable(),打开成功情况下Activity才会将Pass-Button设置为可选择
    由于驱动代码出问题,遂enable()失败,无法设置按钮可选

    测试代码
    1.测试Activity,提供ui无业务代码
    cts/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth/BleSecureClientStartActivity.java
    2.上面(1)的父类,测试结果处理
    cts/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth/BleClientTestBaseActivity.java
    3.测试Service,真正的测试项执行
    cts/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth/BleClientService.java

    关键日志

    测试All-PASS

    04-21 16:52:05.901 D/BluetoothGatt( 6338): onClientConnectionState() - status=0 clientIf=6 device=7B:D0:42:AC:47:B6
    04-21 16:52:05.901 D/BleClientService( 6338): onConnectionStateChange: status= 0, newState= 0
    04-21 16:52:05.901 D/BluetoothGatt( 6338): close()
    04-21 16:52:05.901 D/BluetoothGatt( 6338): unregisterApp() - mClientIf=6
    04-21 16:52:05.915 D/BleClientTestBase( 6338): Processing com.android.cts.verifier.bluetooth.BLE_BLUETOOTH_DISCONNECTED
    04-21 16:52:05.921 D/BleClientTestBase( 6338): Passed Flags has changed from 0x0003FDFF to 0x0003FFFF. Delta=0x00000200
    04-21 16:52:05.921 D/BleClientTestBase( 6338): All Tests Passed.
    

    蓝牙正常关闭

    04-21 16:52:06.931 D/AdapterProperties( 3406): Setting state to TURNING_OFF
    04-21 16:52:07.038 I/AdapterState( 3406): BLE_TURNING_OFF : entered 
    04-21 16:52:07.057 I/bt_btif_core( 3406): btif_disable_bluetooth finished
    

    蓝牙开启超时

    04-21 16:52:17.051 D/BluetoothManagerService( 3297): enable(com.android.cts.verifier):  mBluetooth =null mBinding = false mState = OFF
    04-21 16:52:17.288 D/BluetoothAdapterService( 7058): bleOnProcessStart()
    04-21 16:52:17.290 D/BluetoothManagerService( 3297): MESSAGE_BLUETOOTH_STATE_CHANGE: OFF > BLE_TURNING_ON
    04-21 16:52:17.290 D/BluetoothManagerService( 3297): Sending BLE State Change: OFF > BLE_TURNING_ON
    ......
    04-21 16:52:21.292 E/AdapterState( 7058): BLE_TURNING_ON : BLE_START_TIMEOUT
    04-21 16:52:21.293 I/AdapterState( 7058): BLE_TURNING_OFF : entered 
    
  • 相关阅读:
    【刷题】面筋-mysql-如何对数据库进行备份
    【刷题】面筋-数据库-mysql的优化
    【刷题】面筋-MySQL中char、varchar和text三者的区别
    【刷题】面筋-sql-学生成绩单里两门成绩>80的学生名字
    【刷题】面筋-网络-无效链接,死链接,错误链接
    【刷题】面筋-算法-在海量IP中找出访问次数最多的100个IP
    【刷题】面筋-shell:统计一个文件中重复的行和重复次数
    【刷题】面筋-linux-如何查找出现频率最高的100个ip地址
    【刷题】面筋-linux 如何将文件从一台服务器转移到另一台服务器
    【刷题】面筋-Linux-vi显示或关闭行号:set number
  • 原文地址:https://www.cnblogs.com/houser0323/p/12819097.html
Copyright © 2020-2023  润新知