Android Question [SOLVED] Displaying the body text in a notification.

Discussion in 'Android Questions' started by rleiman, Dec 14, 2018.

  1. rleiman

    rleiman Well-Known Member Licensed User

    Hi Everyone,

    Can you check my coding and let me know where I made mistakes?

    I'm trying to display some text in the body area of SetInfo. In the example, the text "This is my app name." is being displayed in both the "Title" and the "Body" area of the notification when I drag down the notification drawer. In the notification, I'm looking to display the text "This is the body text." in the body area.

    My coding is in Sub Service_Start of the Starter service.

    Code:
    Sub Service_Start (StartingIntent As Intent)

       
        SetupDefaultSettingsDatabase
        InitializeObjects
       
        nNotify.Initialize2(nNotify.IMPORTANCE_LOW)
        nNotify.SetInfo(
    "This is my app name.""This is the body text.""")
        
    Service.AutomaticForegroundNotification = nNotify

        
    Service.AutomaticForegroundMode = Service.AUTOMATIC_FOREGROUND_ALWAYS
        wakeState.PartialLock

        StartTheTimer
    End Sub
    Thanks.
     
  2. Erel

    Erel Administrator Staff Member Licensed User

    You should set the automatic notification in Service_Create.
     
  3. rleiman

    rleiman Well-Known Member Licensed User

    Hi Erel,

    Thanks for the reply.

    I moved the coding into Service_Create but the notification still shows the same text in the title and body.

    Maybe I need to add something into the manifest editor?
     
  4. Erel

    Erel Administrator Staff Member Licensed User

    Will not help.

    Are you showing the notification yourself?
     
  5. rleiman

    rleiman Well-Known Member Licensed User

    Hi Erel,

    The only coding with nNotify is in the starter service which is currently in Service_Create.
     
  6. rleiman

    rleiman Well-Known Member Licensed User

    Hi,

    I just tried to add the following coding to make it look like this but it crashes the app.

    Code:
    Sub Service_Start (StartingIntent As Intent)

        SetupDefaultSettingsDatabase
        InitializeObjects
     
        nNotify.Initialize2(nNotify.IMPORTANCE_LOW)
        nNotify.SetInfo(
    "This is my app name.""This is the body text.""")
        
    Service.AutomaticForegroundNotification = nNotify
        nNotify.Notify(
    1)


        
    Service.AutomaticForegroundMode = Service.AUTOMATIC_FOREGROUND_ALWAYS
        wakeState.PartialLock

        StartTheTimer
    End Sub
    The logs show this:

    Code:
    Logger connected to:  samsung SM-G950U1
    --------- beginning of main
    ** Receiver (servicewidget) OnReceive **
    ** 
    Service (servicewidget) Start **
    Partial wakeLock already held.
    ** Receiver (servicewidget) OnReceive **
    *** 
    Service (starter) Create ***
    starter_service_create (java line: 
    505)
    java.lang.IllegalArgumentException: Invalid 
    notification (no valid small icon): Notification(channel=channel_2 pri=0 contentView=null vibrate=default sound=default defaults=0xffffffff flags=0x0 color=0x00000000 number=0 vis=PRIVATE semFlags=0x0 semPriority=0 semMissedCount=0)
        at android.app.NotificationManager.notifyAsUser(NotificationManager.java:
    333)
        at android.app.NotificationManager.notify(NotificationManager.java:
    297)
        at android.app.NotificationManager.notify(NotificationManager.java:
    281)
        at anywheresoftware.b4a.objects.NotificationWrapper.Notify(NotificationWrapper.java:
    281)
        at b4a.example.starter._service_create(starter.java:
    505)
        at java.lang.reflect.Method.invoke(Native Method)
        at anywheresoftware.b4a.BA.raiseEvent2(BA.java:
    191)
        at anywheresoftware.b4a.BA.raiseEvent(BA.java:
    171)
        at b4a.example.starter.onCreate(starter.java:
    56)
        at android.app.ActivityThread.handleCreateService(ActivityThread.java:
    3542)
        at android.app.ActivityThread.-wrap4(Unknown Source:
    0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:
    1786)
        at android.os.Handler.dispatchMessage(Handler.java:
    105)
        at android.os.Looper.loop(Looper.java:
    164)
        at android.app.ActivityThread.main(ActivityThread.java:
    6938)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:
    327)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:
    1374)
    *** 
    Service (starter) Create ***
    starter_service_create (java line: 
    505)
    java.lang.IllegalArgumentException: Invalid 
    notification (no valid small icon): Notification(channel=channel_2 pri=0 contentView=null vibrate=default sound=default defaults=0xffffffff flags=0x0 color=0x00000000 number=0 vis=PRIVATE semFlags=0x0 semPriority=0 semMissedCount=0)
        at android.app.NotificationManager.notifyAsUser(NotificationManager.java:
    333)
        at android.app.NotificationManager.notify(NotificationManager.java:
    297)
        at android.app.NotificationManager.notify(NotificationManager.java:
    281)
        at anywheresoftware.b4a.objects.NotificationWrapper.Notify(NotificationWrapper.java:
    281)
        at b4a.example.starter._service_create(starter.java:
    505)
        at java.lang.reflect.Method.invoke(Native Method)
        at anywheresoftware.b4a.BA.raiseEvent2(BA.java:
    191)
        at anywheresoftware.b4a.BA.raiseEvent(BA.java:
    171)
        at b4a.example.starter.onCreate(starter.java:
    56)
        at android.app.ActivityThread.handleCreateService(ActivityThread.java:
    3542)
        at android.app.ActivityThread.-wrap4(Unknown Source:
    0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:
    1786)
        at android.os.Handler.dispatchMessage(Handler.java:
    105)
        at android.os.Looper.loop(Looper.java:
    164)
        at android.app.ActivityThread.main(ActivityThread.java:
    6938)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:
    327)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:
    1374)
    *** 
    Service (starter) Create ***
    starter_service_create (java line: 
    505)
    java.lang.IllegalArgumentException: Invalid 
    notification (no valid small icon): Notification(channel=channel_2 pri=0 contentView=null vibrate=default sound=default defaults=0xffffffff flags=0x0 color=0x00000000 number=0 vis=PRIVATE semFlags=0x0 semPriority=0 semMissedCount=0)
        at android.app.NotificationManager.notifyAsUser(NotificationManager.java:
    333)
        at android.app.NotificationManager.notify(NotificationManager.java:
    297)
        at android.app.NotificationManager.notify(NotificationManager.java:
    281)
        at anywheresoftware.b4a.objects.NotificationWrapper.Notify(NotificationWrapper.java:
    281)
        at b4a.example.starter._service_create(starter.java:
    505)
        at java.lang.reflect.Method.invoke(Native Method)
        at anywheresoftware.b4a.BA.raiseEvent2(BA.java:
    191)
        at anywheresoftware.b4a.BA.raiseEvent(BA.java:
    171)
        at b4a.example.starter.onCreate(starter.java:
    56)
        at android.app.ActivityThread.handleCreateService(ActivityThread.java:
    3542)
        at android.app.ActivityThread.-wrap4(Unknown Source:
    0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:
    1786)
        at android.os.Handler.dispatchMessage(Handler.java:
    105)
        at android.os.Looper.loop(Looper.java:
    164)
        at android.app.ActivityThread.main(ActivityThread.java:
    6938)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:
    327)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:
    1374)
    ** Receiver (servicewidget) OnReceive **
     
  7. rleiman

    rleiman Well-Known Member Licensed User

    Hi,

    Here's what I just discovered. This only works if I compile the app under debug mode.

    First I had to change the coding to look like this:

    Code:
    Sub Service_Start (StartingIntent As Intent)

        SetupDefaultSettingsDatabase
        InitializeObjects
     
        nNotify.Initialize2(nNotify.IMPORTANCE_LOW)
        nNotify.Icon = 
    "icon"
        nNotify.SetInfo(
    "This is my app name.""This is the body text.""")
        
    Service.AutomaticForegroundNotification = nNotify

        
    Service.AutomaticForegroundMode = Service.AUTOMATIC_FOREGROUND_ALWAYS
        wakeState.PartialLock

        StartTheTimer
    End Sub
    In debug mode I get the correct text in the body. If I recompile the app in release mode, I get the duplicate text in the title and body. I'm not sure why debug and release mode made the difference, but I hope you can help me get it working for release mode.
     
  8. rleiman

    rleiman Well-Known Member Licensed User

    Good news everyone.

    I discovered if you change from debug mode to release mode you must completely uninstall the app and recompile it to install it and the notification body and text will be correct. So I will mark this thread as solved.
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice