Skip to content

Mobile and Embedded

The forum for developing everything embedded: Linux, WinCE, Symbian, MeeGo... you name it.
14.0k Topics 62.1k Posts
QtWS25 Last Chance
  • Qt safe rendering for yocto

    Unsolved about 3 hours ago
    0 Votes
    1 Posts
    8 Views
    No one has replied
  • 0 Votes
    3 Posts
    24 Views
    Android 12 (API 31) and Later Required permissions: BLUETOOTH (normal permission - granted at install time) BLUETOOTH_CONNECT (runtime permission - must be requested) BLUETOOTH_SCAN (runtime permission - if scanning for devices) Android 6.0 (API 23) to Android 11 (API 30) Required permissions: BLUETOOTH (normal permission) BLUETOOTH_ADMIN (normal permission - if you need to scan/pair) ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION (runtime permission - required for scanning)
  • Qt6.8 for Android,Unable to create the template

    Unsolved a day ago
    0 Votes
    2 Posts
    21 Views
    @ljxiango said in Qt6.8 for Android,Unable to create the template: What should I do? Check whether you have write permission and drive E: is not mounted read-only.
  • Deployment AVD cannot be started

    Unsolved 3 days ago
    0 Votes
    1 Posts
    32 Views
    No one has replied
  • Mobile development

    Unsolved 3 days ago
    0 Votes
    2 Posts
    46 Views
    Hi and welcome to devnet, Did you already went through the Qt for Androïd Getting Started guide ?
  • Building for iOS: fatal error: 'fp.h' file not found

    Unsolved 9 days ago
    0 Votes
    4 Posts
    287 Views
    Ah that makes sense. Thanks @patrickkidd
  • 0 Votes
    3 Posts
    78 Views
    @jsulm Thanks for the feedback. I think that at least Qt5.15 is required to supports Android 13 (see https://medium.com/@shmilysyg/set-android-target-sdk-level-33-in-qt-38bb9049924c). I prefer using Qt5.15.2 since I am using .pro files. Also, I suppose that I need higher JDK and NDK versions. While I do not think that the issue is related to the code (I tested Qt example and did not work), here is my formatted code: void MainWindow::deviceDiscovered(const QBluetoothDeviceInfo &device) { qDebug() << "[BLE] Raw: " << device.name() << device.address().toString(); if(device.coreConfigurations()&QBluetoothDeviceInfo::LowEnergyCoreConfiguration) { qDebug() << "Discovered:" << device.name() << device.address().toString(); if(BLE_liste->findItems(device.name()+"\n"+device.address().toString(),Qt::MatchExactly).count()==0) { BLE_liste->addItem(device.name()+"\n"+device.address().toString()); *dev_info=device; QBluetoothDeviceInfo* temp_info=new QBluetoothDeviceInfo; *temp_info=device; dev_info_list.append(temp_info); } } } void MainWindow::searchCharacteristic() { if(BLE_service){ foreach (QLowEnergyCharacteristic c, BLE_service->characteristics()) { if(c.isValid()){ if (c.properties() & QLowEnergyCharacteristic::WriteNoResponse || c.properties() & QLowEnergyCharacteristic::Write) { m_writeCharacteristic = c; if(c.properties() & QLowEnergyCharacteristic::WriteNoResponse) m_writeMode = QLowEnergyService::WriteWithoutResponse; else m_writeMode = QLowEnergyService::WriteWithResponse; } if (c.properties() & QLowEnergyCharacteristic::Read) m_readCharacteristic = c; if(c.properties() & QLowEnergyCharacteristic::Notify) { m_notificationDesc = c.descriptor( QBluetoothUuid::ClientCharacteristicConfiguration); if (m_notificationDesc.isValid()) { BLE_service->writeDescriptor(m_notificationDesc, QByteArray::fromHex("0100")); } } } } } } void MainWindow::on_listWidget_itemClicked(QListWidgetItem *item) { string = item->text(); string = string.split("\n").at(0); //get the 1st word in string *dev_info=*(dev_info_list.at(BLE_liste->row(item))); BLE_controlleur=new QLowEnergyController(*dev_info,this); connect(BLE_controlleur, SIGNAL(connected()),this,SLOT(device_connected())); connect(BLE_controlleur, SIGNAL(discoveryFinished()),this,SLOT(service_discovered())); BLE_controlleur->connectToDevice(); } void MainWindow::device_connected() { BLE_controlleur->discoverServices(); } void MainWindow::service_discovered() { services_discovered=1; m_servicesUuid = BLE_controlleur->services(); int maxl=m_servicesUuid.length(); for(int i=0;i<maxl;i++) { if(m_servicesUuid.at(i).toString()=="{6e400001-b5a3-f393-e0a9-e50e24dcca9e}") { BLE_service= BLE_controlleur->createServiceObject(m_servicesUuid.at(i), this); connect(BLE_service, SIGNAL(stateChanged(QLowEnergyService::ServiceState)), this, SLOT(onServiceStateChanged(QLowEnergyService::ServiceState))); connect(BLE_service, SIGNAL(characteristicWritten(QLowEnergyCharacteristic,QByteArray)), this, SLOT(update_com_state_(QLowEnergyCharacteristic,QByteArray))); connect(BLE_service, SIGNAL(error(QLowEnergyService::ServiceError)), this, SLOT(error_slot(QLowEnergyService::ServiceError))); connect(Comm_timer, SIGNAL(timeout()),this, SLOT(update_com_state())); if(BLE_service->state() == QLowEnergyService::DiscoveryRequired) { BLE_service->discoverDetails(); } else searchCharacteristic(); BLE_liste->setStyleSheet("QListWidget{background-color: rgba(0,0,0,0);color:rgb(202,233,250);font-weight:bold;font-family:Myriad Pro Regular;font-size:64px;border:4px solid rgb(249,159,65);border-radius:12px;} QListWidget::item:selected{background:rgb(249,159,65);color:rgb(0,0,0);}"); } } } void MainWindow::onServiceStateChanged(QLowEnergyService::ServiceState s) { if (s == QLowEnergyService::ServiceDiscovered) { searchCharacteristic(); } } void MainWindow::BLE_search_slot() { if(agent!=nullptr) { delete agent; } if(ble_widget->isHidden()==false) { if(localDevice.hostMode()==QBluetoothLocalDevice::HostPoweredOff) {localDevice.powerOn(); QTimer::singleShot(2000, this, SLOT(BLE_search_slot())); } BLE_liste->clear(); dev_info_list.clear(); QtAndroid::requestPermissionsSync({ "android.permission.ACCESS_FINE_LOCATION", "android.permission.BLUETOOTH_SCAN", "android.permission.BLUETOOTH_CONNECT" }); agent = new QBluetoothDeviceDiscoveryAgent(); // create an object in ctors connect(agent, SIGNAL(deviceDiscovered(QBluetoothDeviceInfo)),this, SLOT(deviceDiscovered(QBluetoothDeviceInfo))); agent->start(QBluetoothDeviceDiscoveryAgent::LowEnergyMethod); } }
  • Camera on Android how to adjust the brightness ?

    Solved 7 days ago
    0 Votes
    4 Posts
    66 Views
    @LZHD OK, if supportedFeatures says exposure compensation is not supported then it will not work with Qt. What Qt version do you use?
  • Keeping the UI alive

    Unsolved 11 days ago
    0 Votes
    8 Posts
    355 Views
    Thanks @jsulm I'll give it a go immediately!
  • how to open file ? qt for ios?

    Unsolved 8 days ago
    0 Votes
    5 Posts
    93 Views
    @kkgg said in how to open file ? qt for ios?: I don't need to access the contents of the album You're trying to open a file and for this your app needs permissions. Also consider what @J-Hilk wrote.
  • 0 Votes
    1 Posts
    49 Views
    No one has replied
  • This topic is deleted!

    Unsolved 9 days ago
    0 Votes
    0 Posts
    30 Views
    No one has replied
  • Boot2Qt Waveshare Display is not Working

    Unsolved 10 Jan 2022, 05:27
    0 Votes
    3 Posts
    377 Views
    hey @Jacob-Chafin ! Did you ever make it work ?
  • Need quick 4 testers for Android App help please. Will test back!

    Unsolved 10 days ago
    0 Votes
    2 Posts
    77 Views
    Up! just need 4 more testers ;)
  • Compiling Qt6 with wayland support

    Unsolved 14 days ago
    0 Votes
    2 Posts
    153 Views
    Any one know where this file can be found?
  • Is there infrared port (IrDA) support for Android apps?

    Solved 14 days ago
    0 Votes
    3 Posts
    114 Views
    @SGaist Thank you, your answer helped me!
  • 0 Votes
    4 Posts
    220 Views
    Interesting, I received complaints from some users that this happens with and Android app I developed. They experience a grey screen on Android 15 (Qt 6.8.3) on Pixel phones. I have not experienced this myself on Android 14 on a Samsung Galaxy S22.
  • Unable to debug the Android Application Waiting for Debugger

    Unsolved 30 Jul 2023, 11:27
    0 Votes
    15 Posts
    3k Views
    Qt is very sensitive to the environment, and releases often contain bugs. The main conditions for successful assembly and debugging in my case: Android build-tool version: should be the latest, i.e. the maximum with which the build is successful. If the build is not successful, then the version should be downgraded. Android build platform SDK: should be the latest, i.e. the maximum, with which the build is successful. If the build is not successful, then you should downgrade the version (https://doc.qt.io/qt-6/android.html + select your Qt release on the page). By the way, on 04/02/2025, the application using API 35 is not built and you should select the previous API version (34). Android NDK must be exactly the one specified in the documentation for the Qt version used (https://doc.qt.io/qt-6/android.html + select your Qt release on the page). For example, for version Qt 6.8.3 and Qt creator version 16.0.0, successful building and debugging were provided by the following set of components: -build-tool version: 35.0.1 -build platform SDK: 34 or 33 -android NDK: 26.1.10909125 [image: 43d9a4f8-0edc-40c9-8c1b-a2ef980b3505.PNG] [image: 10b3d856-52fb-4088-8969-2115ba09579e.PNG]
  • 0 Votes
    1 Posts
    47 Views
    No one has replied
  • library "libssl.so.1.1" not found

    Solved 26 Jul 2020, 10:24
    1 Votes
    20 Posts
    4k Views
    @Shrinidhi-Upadhyaya hello,I followed the same method to test, and the test has been successful, but it still reminds me that some libraries are missing,why is this? library "libcrypto.so.1.1" not found library "libcrypto" not found library "crypto.so.1.1" not found library "crypto" not found library "libmaliinstr.so" not found library "libresolv.so" not found library "libresolv" not found : library "resolv.so" not found library "resolv" not found