Android Question Receivers and HttpJob

JCO

Active Member
Licensed User
Longtime User
Hello all,

I have an app that needs to upload some info (a few bytes) to my server after receiving a push from Firebase.
As per the new restrictions on services, I have moved all the relevant code to a receiver.
The push is received OK, then the code executes until it tries to do the upload with an HttpJob. There I get a crash with a ForegroundServiceStartNotAllowedException.

I've been searching on the forum, and from what I gather here it should work:
https://www.b4x.com/android/forum/threads/receivers-and-services-in-2023.145370/post-921502
Am I missing something?

The code is quite simple:
B4X:
Sub fm_MessageArrived(Message As RemoteMessage)
    Dim messageData As Map
    Dim action As String, targetDevice As Int
   
    Log("Message arrived")
    Log($"Message data: ${Message.GetData}"$)
    messageData = Message.GetData
   
    targetDevice = messageData.Get("device_id")
    If ((targetDevice<>Settings.RegNumber) And (targetDevice<>0)) Then
        Return
    End If
   
    fmSendSettings
End Sub

Private Sub fmSendSettings()
    Dim sMsg, JSONString As String
    Dim js As JSONGenerator
    Dim j As HttpJob
   
    '....
    '....
    'js is a properly constructed json
   
    JSONString = js.ToString
   
    msg = JSONString
   
    j.Initialize("", Me)
    j.PostString(Settings.ServerbaseUrl & Settings.SyncUrlFile, msg)
   
    Wait For (j) JobDone(j As HttpJob)
    If (j.Success) Then
        Log ("Get string:" & CRLF & j.GetString)
    End If
    j.Release
   
End Sub

I'd be really thankful for any help / pointers
 
Top