Skip to content

Mobile and Embedded

The forum for developing everything embedded: Linux, WinCE, Symbian, MeeGo... you name it.
14.3k Topics 63.1k Posts
Qt 6.11 is out! See what's new in the release blog
  • Custom Camera on Android

    Unsolved
    3
    0 Votes
    3 Posts
    152 Views
    Ronel_qtmasterR
    @Andy314 solution one is the right answer but you're missing few things. You should not process the camera streams on the main thread, you need to create another thread for gettig the camera frames and sending them to the Ui Moreover, after getting the camera frame and display it, you should free the memory space consumed by it. otherwise it will be slower and take too much ram
  • Why does we have problem with gradle? Do you have?

    Unsolved
    4
    0 Votes
    4 Posts
    221 Views
    Nils SjobergN
    ./gradlew clean build --refresh-dependencies
  • This topic is deleted!

    Unsolved
    1
    0 Votes
    1 Posts
    9 Views
    No one has replied
  • 0 Votes
    3 Posts
    167 Views
    B
    @Nils-Sjoberg Thx a lot. Will try it today.
  • 0 Votes
    3 Posts
    190 Views
    T
    @Nils-Sjoberg Thanks for the suggestion! I tested with: OPENSSL_armcap=0 Unfortunately, it doesn't change the behaviour. The application still crashes on the Raspberry Pi 3, so it doesn't appear to be an OpenSSL CPU capability detection issue. However, I have an interesting update that may help narrow down the problem. Originally, my WebEngineProfile was configured like this: property string tmpDir: session.getPlatform() == "windows" ? "C:/Temp/xx" : "/tmp" WebEngineProfile { offTheRecord: false persistentStoragePath: tmpDir + "/xx-webengine-" + content.uuid() cachePath: tmpDir + "/xx-webcache-" + content.uuid() } So every WebEngineView was using a profile stored under /tmp, with a directory name based on content.uuid(). I then changed only the profile/cache location to a persistent directory under the user's home instead of /tmp, for example: persistentStoragePath: "/home/xx/.local/share/xx/NeoPlayer/WebEngine/profile" cachePath: "/home/xx/.local/share/xx/NeoPlayer/WebEngine/cache" (or an equivalent persistent location). Since this change: the application progresses much further during startup, several crashes no longer occur, the remaining crash is now consistently inside QtWebEngineCore, typically in a thread named CacheThread_Blo, with a backtrace ending in malloc() / operator new() inside libQt5WebEngineCore.so. In other words, changing only persistentStoragePath and cachePath significantly changes the failure mode. What puzzles me is that the original code works perfectly on a Raspberry Pi 5, while it crashes on the Raspberry Pi 3. Some additional comparison between the two systems: Both run Debian 13 (Trixie). /tmp is a tmpfs on both systems. Both use the same application source code. Both are built from the same Qt 5.15.17 build system (with architecture-specific binaries). The Raspberry Pi 5 runs AArch64 (64-bit), while the Raspberry Pi 3 runs ARMv7 (32-bit). This makes me wonder whether the issue is not /tmp itself, but rather how QtWebEngine/Chromium initializes and manages a WebEngineProfile on 32-bit ARM. Changing the profile location seems to alter the internal initialization sequence enough that the crash either disappears or occurs much later during startup. Am I overlooking something about how WebEngineProfile is expected to be used? In particular: Is storing a WebEngineProfile under /tmp considered bad practice or unsupported? Is creating profile directories dynamically using content.uuid() likely to expose issues or race conditions inside QtWebEngine? Would you instead recommend creating a single long-lived WebEngineProfile and reusing it across all WebEngineView instances? Has anyone seen similar behaviour where changing only persistentStoragePath or cachePath changes or eliminates crashes in QtWebEngine? If there are other diagnostics that would help identify the root cause, I'd be happy to run them and share the results.
  • Without native code, how to get iOS and Android device id?

    Unsolved
    2
    0 Votes
    2 Posts
    142 Views
    Nils SjobergN
    Write a small native JNI layer for Android, Objective-C++ for iOS to access Android ID / identifierForVendor, because QSysInfo::machineUniqueId() is not implemented on mobile platforms in Qt
  • 0 Votes
    4 Posts
    245 Views
    SGaistS
    Nice, thanks !
  • Using RevenueCat with Qt 6 ios/android applications. How?

    Unsolved
    2
    0 Votes
    2 Posts
    128 Views
    Nils SjobergN
    There is no official Qt module for RevenueCat, so you need to write a bridge layer yourself - Objective-C++ for iOS and JNI for Android - that connects the native SDK to the C++/QML code, or alternatively check if QtPurchasing (the old built-in module) is sufficient for your needs.
  • Programatically iterate over public Files in Android

    Unsolved android file permissions
    6
    0 Votes
    6 Posts
    479 Views
    B
    Will next look into: https://www.qt.io/blog/qt-for-android-storage-updates
  • Qt6.11.1: Qt Multimedia not working on iOS device

    Solved
    6
    0 Votes
    6 Posts
    412 Views
    SGaistS
    While it works, it still means that there might be something broken with ffmpeg which would be good to find what it is.
  • Add Qt 6 mobile application to sharing application list. How?

    Unsolved
    4
    0 Votes
    4 Posts
    632 Views
    Nils SjobergN
    emericg/MobileSharing and similar
  • QTBUG-141579 deadlock protector crashes the app.

    Unsolved
    6
    0 Votes
    6 Posts
    392 Views
    Andy314A
    Open() instead of exit() breaks former simple code logic - all becomes more complicated. A quick YesNo-Question for code branching is not so simple as before. Open waits not for the answer. How can I do it: Open a dialog at top (switch it to modal) and connect via slots the f.e. Ok-Button (resp. a special signal, what is triggered by the OK-Button) to a slot of the calling dialog/methode ? That would be a lot of work for all my dialogs. I there a simpler universal way for it ? In my code I have a loop, that opens multiple dialogs depends on the input until all questions are answerend. Now, I have tried to use singleShot for exec a dialog, what solved some problems. That needs logic changed too, but I must not change my called dialogs.
  • QFileDialog::getOpenFileContent on Android

    Unsolved
    8
    1 Votes
    8 Posts
    2k Views
    S
    @beku2 Thank you for the reference beku2. This works perfect in python. Not so much in android. I was just hoping someone might have found an easy alternative.
  • Qt 6 Android and iOS status bar text color. How?

    Unsolved
    2
    0 Votes
    2 Posts
    808 Views
    B
    Ekke has a QML example: https://github.com/ekke/ekkesTestStatusBar
  • Boot Partition Path Boot2qt

    Unsolved
    2
    0 Votes
    2 Posts
    210 Views
    SGaistS
    Hi, Since Boot2Qt is a commercial offering, you should contact the Qt Company directly.
  • 0 Votes
    2 Posts
    1k Views
    JoeCFDJ
    Do not run it in android emulator. Simply connect your phone to your computer and turn your phone debug mode on. You can debug your app directly in your phone.
  • for qt6.11.1 community edition, qt creator doesn't create android kit automatically

    Unsolved
    5
    0 Votes
    5 Posts
    2k Views
    JoeCFDJ
    @soccercj jsulm is right. android_arm_v64a is installed. But QtCreator does not pick it up. You need to add it manually by clicking add button.
  • Switch off scrolling application window up when virtual keyboard appeared . How?

    Solved
    2
    0 Votes
    2 Posts
    1k Views
    B
    For now haven't found any global solution to prevent window pan (scrolling up). If there are any and you know something about it write it here please. Found only solution to trick it for iOS and switch off for Android with manifest. Briefly for IOS need to be added custom event filter for TextInput that is falsifying QRectF of cursor position. For Android just add to activity section this: android:windowSoftInputMode="adjustNothing Here got published example tested with Qt 6.11.1 It's using SafeArea (since Qt 6.9)
  • Qt + GStreamer + Android

    Unsolved
    9
    0 Votes
    9 Posts
    4k Views
    F
    @mrdebug At the moment, i use QtMultimedia, which works fine on android too. However, i have some features on my wish list, like mixing and fading between tracks, multiple output devices, etc. Gstreamer has a comprehensive documentation and it seems to be more suitable than ffmpeg, because of its modularity. But thank you very much for the link. Wow, your project looks pretty clean and well arranged.
  • Switch off full screen mode for iOS and Android mobile application. How?

    Unsolved
    3
    0 Votes
    3 Posts
    2k Views
    B
    It's not exactly that been seeking. But your example is useful for some cases. Seeking solution to set Window to the safe area without using Rectangle and margins. Trying to find solution for old-fashion applications.