请问各位大神,QN920x如何获取当前设备状态?

包括在广播,或者在扫描?或者即未广播又未扫描?或者其他状态?像TI的CC2541蓝牙就可以,如下图

1.函数ke_state_get(TASK_APP)可以获取到app的当前状态,TASK_APP一共有四种状态,init、idle、adv、scan,论坛早有讨论四种状态的帖子,附上传送门http://developer.t-firefly.com/thread-1425-1-2.html。
2.idle是无法区分是否连接成功的,区分连接是否成功的一个方法是判断主服务是否enable,例如:

                if(APP_IDLE == ke_state_get(TASK_APP))
                {
                    struct app_proxr_env_tag *app_proxr_env = &app_env.proxr_ev;
                    if(!app_proxr_env->enabled)
                    {
                        // start adv
                        app_gap_adv_start_req(GAP_GEN_DISCOVERABLE|GAP_UND_CONNECTABLE,
                                app_env.adv_data, app_set_adv_data(GAP_GEN_DISCOVERABLE),
                                app_env.scanrsp_data, app_set_scan_rsp_data(app_get_local_service_flag()),
                                GAP_ADV_FAST_INTV1, GAP_ADV_FAST_INTV2);

#if (QN_DEEP_SLEEP_EN)
                        // prevent entering into deep sleep mode
                        sleep_set_pm(PM_SLEEP);
#endif
                    }
                }

当然gap层有提供很多方法判断连接是否成功,此法较方便。