# 示例代码

Source: [https://docs.qualcomm.com/doc/80-PK177-134Y/topic/example_code_2.html](https://docs.qualcomm.com/doc/80-PK177-134Y/topic/example_code_2.html)

以下示例代码片段可用作参考。

## 获取 QESDK SensorsManager 实例

    qesdkManager = IQesdk.createInstance(getApplicationContext());
                    if (qesdkManager != null) {
                    sessionId = doInit();
                    sensorsManager = new SensorsManager(qesdkManager);
                    Log.e("QesdAPP", "Returned Session id: " + sessionId);
                    if (sensorsManager == null) { 
                    Log.e("QesdAPP", "sensorsManager is NULL");
                    }
                    }

              Copy to clipboard

## 创建会话

    if (sensorsManager != null) {
                    int ret = 0;
                    try {
                    sensor_session_id = sensorsManager.create_session();
                    } catch (QesdkStatusException e) {
                    Log.e("QesdAPP", "Session id: " + sessionId + "Error:" + e);
                    }
                    }
                Copy to clipboard

## 注册事件回调

    try {
                    sensorsManager.register_event_callback(sensor_session_id, new ISensorsCBs.Ievent_callback_type() {
                    @Override
                    public void onValues(byte[] bytes, int size, int sensor_session_id) {
                    byte[] proto_event_message = new byte[size];
                    proto_event_message = Arrays.copyOf(bytes, size);
                    String events = ProtobufTest.decodeEvent(proto_event_message);
                    updateData(events);	}
                    });
                    }catch (QesdkStatusException e) {
                    Log.e("QesdAPP", "Session id: " + sessionId + "Error:" + e);
                    }
                Copy to clipboard

## 获取可用传感器

    try {
                    sensors_list = sensorsManager.get_sensors_list();
                    } catch (QesdkStatusException e) {
                    Log.e("QesdAPP", "fail to get API result Session id: " + sessionId + "Error:" + e);
                    }
                Copy to clipboard

## 发送请求

    byte[] proto_message = null;
                    try {
                    proto_message = getRequest(); //This function returns protobuf encoded
                    //request message, refer section 4.2.1.1
                    } catch (InvalidProtocolBufferException e) {
                    e.printStackTrace();
                    Log.e("QesdAPP", "protobuf exeption happens");
                    return;
                    } catch (IOException e) {
                    e.printStackTrace();
                    Log.e("QesdAPP", "IO exeption happens");
                    return;
                    }
                    int proto_message_size = proto_message.length;
                    Log.d("QesdAPP", "trying to call send_request sessionId = " + sessionId + "sensor_session_id = " + sensor_session_id + "protobuf size = " + proto_message_size);
                    try {
                    ret = sensorsManager.send_request(sensor_session_id, proto_message, proto_message_size);
                    } catch (QesdkStatusException e) {
                    Log.e("QesdAPP
                    , "fail to get API result Session id: " + sessionId + "sensor_session_id = " + sensor_session_id + "Error:" + e);
                    }
                Copy to clipboard

**Parent Topic:** [传感器 API](https://docs.qualcomm.com/doc/80-PK177-134Y/topic/qesdk_sensor_apis.html)

Last Published: Jun 22, 2023

[Previous Topic
解码消息](https://docs.qualcomm.com/bundle/publicresource/80-PK177-134Y/topics/decoding_message.md) [Next Topic
性能 API (QAPE)](https://docs.qualcomm.com/bundle/publicresource/80-PK177-134Y/topics/qape_api_2.md)