enableLDM() вызывает исключение?

Я вызываю enableLDM() перед registerApp(), чтобы установить режим локальных данных, но он не работает и вызывает исключение.

Исключение составляет

Попытайтесь вызвать виртуальный метод void java.util.concurrent.atomic.AtomicBoolean.set (boolean) для пустой ссылки на объект.

Вот объяснение кода

    // create LDMManager
    final LDMManager _LDMManager = DJISDKManager.getInstance().getLDMManager();
    // Get reference to LDMManager OK


    // set LDMManager callback
    _LDMManager.setCallback(new LDMManager.LDMCallback() {
    @Override
    public void onLDMEnabledChange(boolean isEnabled) {
        // debug
        Toast.makeText(getApplicationContext(), "onLDMEnabledChange : isEnabled=" + isEnabled, Toast.LENGTH_LONG).show();
    }

    @Override
    public void onLDMSupportedChange(boolean isSupported) {
        // debug
        Toast.makeText(getApplicationContext(), "onLDMSupportedChange : isSupported=" + isSupported, Toast.LENGTH_LONG).show();
    }
    });
    // Is never fired, as enableLDM does'nt work!


    // check if LDM is supported
    if (_LDMManager.isLDMSupported()) {

    // debug
    Toast.makeText(getApplicationContext(), "isLDMSupported=True", Toast.LENGTH_LONG).show();

    // debug
    Toast.makeText(getApplicationContext(), "isLDMEnabled=" + _LDMManager.isLDMEnabled(), Toast.LENGTH_LONG).show();

    // check if LDM is disabled
    if (_LDMManager.isLDMEnabled() == false) {

        // enable LDM
        DJIError _enableLDM = null;
        try
        {
            _enableLDM = _LDMManager.enableLDM();
        }
        catch (Exception ex)
        {
            // debug
            Toast.makeText(getApplicationContext(), "enableLDM.Exception : " + ex.getMessage(), Toast.LENGTH_LONG).show();
            new AlertDialog.Builder(this)
                    .setTitle("enableLDM")
                    .setMessage(ex.getMessage())
                    .show();
        }

        // check result
        if (_enableLDM == null) {

            // debug
            Toast.makeText(getApplicationContext(), "LDM was Enabled!", Toast.LENGTH_LONG).show();

            // start registration process
            startRegistrationProcess();
        }
        else {
            // debug
            Toast.makeText(getApplicationContext(), "LDM Failed to Enabled! : " + _enableLDM.getDescription(), Toast.LENGTH_LONG).show();
        }
    }
    else {
        // debug
        Toast.makeText(getApplicationContext(), "LDM Already Enabled!", Toast.LENGTH_LONG).show();

        // start registration process
        startRegistrationProcess();
    }
}
    else {
    // debug
    Toast.makeText(getApplicationContext(), "isLDMSupported=False", Toast.LENGTH_LONG).show();
}
// Says isLDMSupported=true, isLDMEnabled=false and get exception of enableLDM line.

Это известная ошибка или я ее неправильно использую??

startRegistrationProcess () выполняет фактический вызов registerApp, который работает и т. д., только без включенного режима локальных данных.

Кто-нибудь с рабочим примером? Я использую DSK 4.5.1 на устройстве CrystalSky, все последние версии.

Спасибо

Джейсон

0 ответов

Другие вопросы по тегам