# Example code Source: [https://docs.qualcomm.com/doc/80-PK177-134/topic/rtk_example_code.html](https://docs.qualcomm.com/doc/80-PK177-134/topic/rtk_example_code.html) ## Java **Required Imports** import com.qualcomm.qti.qesdkIntf.IQesdk; import com.qualcomm.qti.qesdk.QesdkStatusException; import com.qualcomm.qti.qesdk.Location.PP_RTKUDT; import com.qualcomm.qti.qesdk.Location.IPP_RTKCBs; import com.qualcomm.qti.qesdk.Location.PP_RTKEnums; import com.qualcomm.qti.qesdk.Location.PP_RTKManager; import com.qualcomm.qti.qesdk.Location.PP_eDGNSSUDT; import com.qualcomm.qti.qesdk.Location.IPP_eDGNSSCBs; import com.qualcomm.qti.qesdk.Location.PP_eDGNSSEnums; import com.qualcomm.qti.qesdk.Location.PP_eDGNSSManager;Copy to clipboard **Declare required objects** private IQesdk mQesdkManager; private PP_eDGNSSManager mPpeEdgnssManager; private PP_RTKManager mPpeRtkManager;Copy to clipboard **Create the QESDK Manager Instance and intialize** mQesdkManager = IQesdk.createInstance(this);Copy to clipboard **Create eDGNSS and RTK Manager Instance**`` mPpeEdgnssManager = new PP_eDGNSSManager(mQesdkManager); int status = PP_eDGNSSManager.init([String license], (opcodes, subsystem) -> { // Handle QESDK event }); mPpeRtkManager = new PP_RTKManager(mQesdkManager); int status = PP_RTKManager.init([String license], (opcodes, subsystem) -> { // Handle QESDK event });Copy to clipboard **Setup callbacks** IQesdkEventCallBack eventCallbackHandler = new IQesdkEventCallBack() { @Override public void onEvent(int opcode, int[] subsys) { // Handle QESDK event } }; private IPP_RTKCBs.ILocationReportCallback rtkLocationReportCallback = new IPP_RTKCBs.ILocationReportCallback() { @Override public void onValues(PP_RTKUDT.Location location) { // Handle RTK location report callback } };Copy to clipboard **Configure the native NTRIP client if required (OEM apps only)** // enable Native NTRIP client mPpeEdgnssManager.enablePPENtripStream( hostNameOrIp, mountPoint, username, password, port, requiresNmeaLocation, useSSL, enableRTKEngine); // Disable Native NTRIP client mPpeEdgnssManager.disablePPENtripStream();Copy to clipboard **Register as correction data provider** mPpeEdgnssManager.registerAsCorrectionDataSource( correctionDataType, streamingControlCallback);Copy to clipboard **Deregister as correction data provider** mPpeEdgnssManager.deRegisterAsCorrectionDataSource();Copy to clipboard **Send request for precise location updates** mPpeRtkManager.requestPreciseLocationUpdates( minIntervalMillis, rtkLocationReportCallback);Copy to clipboard **Remove request for precise location updates** mPpeRtkManager.removePreciseLocationUpdates(rtkLocationReportCallback)Copy to clipboard ## Native **Required includes** #include "qesdk_ndk.h" #include "qesdk_Location_PP_RTK.h" #include "qesdk_Location_PP_eDGNSS.h"Copy to clipboard **Initialize** PP_RTKManager *rtkManager = new PP_RTKManager(); PP_eDGNSSManager *edgnssManager = new PP_eDGNSSManager(); int ret = edgnssManager->init(licenseStr, license_length, [](uint32_t opcodes, uint32_t *subsystems) { // Callback to handle init events }); int ret = rtkManager->init(licenseStr, license_length, [](uint32_t opcodes, uint32_t *subsystems) { // Callback to handle init events });Copy to clipboard **Setup callbacks** void event_callback_handler(uint32_t opcode, uint32_t subsys[]) { // Callback to handle QESDK events } void rtk_LocationReportCallback(pp_rtk_Location location){ // Handle RTK location report callback }Copy to clipboard **Register as correction data provider** pp_edgnss_LocationStatus ret = pp_edgnss_LocationStatus::QESDK_GENERIC_FAILURE; qesdk_transaction_status qesdk_ndk_response = edgnssManager- >registerAsCorrectionDataSource((pp_edgnss_CorrectionDataType)correction_data_ type, edgnss_CorrectionStreamingControlCallback, ret); if(qesdk_ndk_response.is_ok()){ // Use the ret value } else { // Can get error code by get_error_code() }Copy to clipboard **Deregister as correction data provider** qesdk_ndk_response = edgnssManager->deRegisterAsCorrectionDataSource, ret); if(qesdk_ndk_response.is_ok()){ // Use the ret value } else { // Can get error code by get_error_code() }Copy to clipboard **Send request for precise location updates** pp_rtk_LocationStatus ret = pp_rtk_LocationStatus::QESDK_GENERIC_FAILURE; qesdk_ndk_response = rtkManager->requestPreciseLocationUpdates(min_interval_ms, rtk_LocationReportCallback, ret); if(qesdk_ndk_response.is_ok()){ // Use the ret value } else { // Can get error code by get_error_code() }Copy to clipboard **Remove request for precise location updates** qesdk_ndk_response = rtkManager->removePreciseLocationUpdates(rtk_LocationReportCallback, ret); if(qesdk_ndk_response.is_ok()){ // Use the ret value } else { // Can get error code by get_error_code() }Copy to clipboard **Parent Topic:** [RTK](https://docs.qualcomm.com/doc/80-PK177-134/topic/rtk.html) Last Published: Nov 14, 2024 [Previous Topic Location report](https://docs.qualcomm.com/bundle/publicresource/80-PK177-134/topics/location_report_rtk.md) [Next Topic GTP](https://docs.qualcomm.com/bundle/publicresource/80-PK177-134/topics/gtp.md)