# Example code

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

The following sample code snippets can be used as reference.

## Get QESDK SensorsManager instance

    qesdkManager = IQesdk.createInstance(getApplicationContext());
    SensorsManage sensorsManager = new SensorsManager(qesdkManager);
    int status = sensorsManager.init([String license], (opcodes, subsystem) -> { 
    // Callback handle
    });Copy to clipboard

## Session creation

    sensor_session_id = sensorsManager.create_session();Copy to clipboard

## Register event callback 

    try {
         sensorsManager.register_event_callback(sensor_session_id, (msg, id)-> {
             byte[] message = Arrays.copyOf(msg, msg.length);
             String[] events = ProtobufAPI.decodeEvent(message);	
             if(events.length > 0 && events[0] != null){
                showOnUI(“events received:%s”, Arrays.toString(events));
                if(events[0].contains(“SNS_SUID_EVENT”))
                   suid = ProtobufAPI.decodeSUIDEvent(message);
                else if(events[0].contains(“SNS_AR_EVENT”)){
                   String event = ProtobufAPI.decodeAREvent(message);
                   updateData(event, events[1]);
                }
             }
         });
    }catch (QesdkStatusException e) {
      Log.e("QesdAPP", "Session id: " + sessionId + "Error:" + e);
    }Copy to clipboard

## Get available sensors

    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

## Send request

    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:** [Sensor API](https://docs.qualcomm.com/doc/80-PK177-134/topic/qesdk_sensor_apis.html)

Last Published: Nov 14, 2024

[Previous Topic
Decoding message](https://docs.qualcomm.com/bundle/publicresource/80-PK177-134/topics/decoding_message.md) [Next Topic
Performance API](https://docs.qualcomm.com/bundle/publicresource/80-PK177-134/topics/performance_api_qape.md)