I have duplicated the code from " Intent Filters - Intercepting SMS messages in the background " in b4a version 10.2... Nothing happens when a SMS is received... I added the line " StartActivity(Main)" as suggested by a user to show if the service would bring up the main activity... nothing happens.. If I could add a message box to the 'Service module to show if its even running but this is not allowed.. The line "Log(messages(i))" shows a warning,, but even without that line the service should start MainActivity... Any thoughts would be appreciated.. thanks..
My Code:
#Region Service Attributes
#StartAtBoot: False
#End Region
'Service module
Sub Process_Globals
Type Message (Address As String, Body As String)
End Sub
Sub Service_Create
End Sub
Sub Service_Start(startingIntent As Intent)
If startingIntent.Action = "android.provider.Telephony.SMS_RECEIVED" Then
Dim messages() As Message
messages = ParseSmsIntent(startingIntent)
For i = 0 To messages.Length - 1
' Log(messages(i))
Next
End If
Service.StopAutomaticForeground
End Sub
'Parses an SMS intent and returns an array of messages
Sub ParseSmsIntent (in As Intent) As Message()
Dim messages() As Message
If in.HasExtra("pdus") = False Then Return messages
Dim pdus() As Object
Dim r As Reflector
pdus = in.GetExtra("pdus")
If pdus.Length > 0 Then
Dim messages(pdus.Length) As Message
For i = 0 To pdus.Length - 1
r.Target = r.RunStaticMethod("android.telephony.SmsMessage", "createFromPdu", _
Array As Object(pdus(i)), Array As String("[B"))
messages(i).Body = r.RunMethod("getMessageBody")
messages(i).Address = r.RunMethod("getOriginatingAddress")
StartActivity(Main)
'Service.StopAutomaticForeground
Next
End If
Return messages
End Sub