Я создаю приложение BLE в Xamain.Forms. Я использую адаптер, который вызывает целый ряд методов, основанных на событиях, например adapter.DeviceDiscovered
и т.д. Процесс идет:Ссылка на объект не установлена на экземпляр объекта, работающего вокруг
- Scan для устройств
- Подключение к выбранному устройству
- Scan для
Services
присутствует на устройстве - Выберите
Service
- отсканировать для
Characteristics
на устройстве
Я работаю на шаге 5 сейчас и следующий код:
ChosenService.CharacteristicsDiscovered += (object sender, EventArgs e) => {
Debug.WriteLine("service.CharacteristicsDiscovered");
if (characteristics.Count == 0)
Device.BeginInvokeOnMainThread(() => {
foreach (var characteristic in ChosenService.Characteristics) {
characteristics.Add(characteristic);
}
});
};
Однако, как ChosenService
является нулем до шага 4 не будет завершена, на открытии приложения, этот метод бросает Object reference not set to an instance of an object
исключение. Как я могу обойти это? В идеале, я полагаю, мне нужно прочитать метод после того, как я установил ChosenService
, как мне это сделать?
Благодарим за это. К сожалению, для этого не существует жизненного цикла приложения. для меня. Тем не менее, я широко знаком с задачами, но не имею большого опыта с ними. Как вы предлагаете мне это реализовать? –
После того, как функция, которая заполняет 'ChosenService' с' CharacteristicsDiscovered', запускает ваш код, как в коде, который у меня есть, пожалуйста, обновите свой вопрос с помощью большего количества кода (где этот код должен быть реализован первым?), Чтобы быть более точным – CDrosos