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, все последние версии.
Спасибо
Джейсон