Перейти к содержанию
Fire Monkey от А до Я
  • 0

TBluetoothManager


Konoplaud

Вопрос

Здравствуйте господа-товарищи.

Пытаюсь завести по примеру Classic Bluetooth используя классы TBluetoothManager, TBluetoothAdapter и так далее. В чем суть, не запускается сканирование устройств. 

  btManager->OnDiscoveryEnd = DevicesDiscoveryEnd;
  btManager->StartDiscovery(5000);

Вообще ничего не происходит. Причем пробовал его компилить на C++ Builder 10.4 Architect - работало. Перенес проект к себе на C++ Builder 10.3 Community - не работает. Прям пример использования классического Bluetooth завожу, и не переходит в функцию окончания сканирования. С чем может быть связано? Кто-нибудь сталкивался? HELP ME PLEASE!!!

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
4 часа назад, duke2003 сказал:

привет! разобрался? у меня такая же проблема на процедуру doDiscoveryEnd не попадает

Привет. Разобрался, у меня не было включено разрешения на доступ к местоположению в устройстве. Проштудировал хелпарь для баркадеры и решил вопрос следующим образом:

void __fastcall TAppForm::FormCreate(TObject *Sender)
{
  DynamicArray<String> permissions;
  permissions.Length = 1;
  permissions[0] = JStringToString(TJManifest_permission::JavaClass->ACCESS_FINE_LOCATION);

  PanelFailPermissions->Enabled = false;
  PanelFailPermissions->Visible = false;

  PermissionsService()->RequestPermissions(permissions,
    [this](const DynamicArray<String> APermissions,
           const DynamicArray<TPermissionStatus> AGrantResults)
    {
      if ((AGrantResults.Length == 1) and(AGrantResults[0] == TPermissionStatus::Granted))
      {
        PermissionGranted = true;
      }
      else
      {
        PermissionGranted = false;
      }
    });

  if(PermissionGranted)   //< Если требуемое разрешение есть...
  {
    ActiveFrame = FrameConnection;
    ActiveFrame->Visible = true;
    ActiveFrame->StyleName = this->StyleName;
  }
  else  //< Иначе разрешения нет, работать не сможем
  {
    PanelFailPermissions->Enabled = true;
    PanelFailPermissions->Visible = true;
  }
}

И еще надо сделать такие включения:

#ifdef __ANDROID__
#include <AndroidApi.JNI.JavaTypes.hpp>
#include <Androidapi.Helpers.hpp>
#endif

#include <System.Permissions.hpp>

Вот как-то так, вроде ничего не упустил... 

Короче начиная не помню с какой версии андройда, разрешения для устанавливаемого приложения во время установки не спрашиваются. Их надо запрашивать самому во время выполнения программы. Ну и соответствующие разрешения надо устанавливать в свойствах проекта. Кинь адрес e-mail, я сброшу тебе литературку кое какую. Чиркни мне на Konoplaud@yandex.ru

Изменено пользователем Konoplaud
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...