Italian Toast message

zamb

Member
Licensed User
Ciao a tutti.
Attualmente sto utilizzando dei toast message x dare all'utente varie info ma ho visto che affinchè questi funzionino occorre autorizzare manualmente l'app alle notifiche.
Non sarebbe possibile attivare queste notifiche via codice?
Diversamente pensavo a message box "autoestinguenti" con un timer che li rende invisibili.
Potrebbe funzionare?

Grazie in anticipo
 

zamb

Member
Licensed User
Grazie udg. Proverò a lavorarci.
Per MarcoRome: con "occorre autorizzare manualmente l'app alle notifiche" intendo che occorre intervenire manualmente su impostazioni->app e notifiche->e, dopo selezionato l'app di interesse, andare in "notifiche app" e mettere su ON (modalità valida x android 7)
 

MarcoRome

Expert
Licensed User
Zamb, se parliamo di un toast message, leggasi:

B4X:
ToastMessageShow("Ciao...", True)
upload_2019-8-28_13-18-27.png


non ci vuole alcuna autorizzazione.
Quindi continuo a non capire
 

zamb

Member
Licensed User
Esattamente di quello parliamo. Se disabilito da "impostazioni" le notifiche per l'app (ameno in Android 7) i toast message non compaiono più (testato) mentre se le riattivo ricompaiono. Ho già visto nel forum altri con medesimo problema ma non ricordo dove...
 

Sagenut

Well-Known Member
Licensed User
La soluzione della Msgbox a tempo non penso sia realizzabile con il comando MsgBox.
Come alternativa potresti mostrare un Panel con il messaggio che desideri.
Quello potresti gestirlo con un Timer.
Come vedi ci sono diverse soluzioni.
Devi scegliere/trovare quella che riesci a realizzare meglio e che ti è più comoda.
 

MarcoRome

Expert
Licensed User
Puoi utilizzare il seguente codice.
La sub AreNotificationEnabled verifica se l'app è abilitata a gestire le notifiche, nel caso in cui non lo sia, avverti l'utente con un messaggio , apri la Notifica dell'applicazione e attendi che l'utente abiliti la stessa.

B4X:
Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("1")
   
    If AreNotificationsEnabled = False Then
        Msgbox("Non hai le notifiche Abilitate. Per un corretto funzionamento Abilita le stesse","Msgbox")
        Abilita
    Else
        Log("abiliato")
    End If
   

End Sub

Sub Abilita
    Dim in1 As Intent
    in1.Initialize("android.settings.APP_NOTIFICATION_SETTINGS", "")
    Dim jo As JavaObject
    'Android 5-7
    in1.PutExtra("app_uid", jo.InitializeContext.RunMethodJO("getApplicationInfo", Null).GetField("uid"))
    in1.PutExtra("app_package", Application.PackageName)
    'Android 8 o superiore
    in1.PutExtra("android.provider.extra.APP_PACKAGE", Application.PackageName)
    StartActivity(in1)
End Sub

Sub AreNotificationsEnabled As Boolean
    Dim jo As JavaObject
    Dim ctxt As JavaObject
    ctxt.InitializeContext
    jo = jo.InitializeStatic("android.support.v4.app.NotificationManagerCompat").RunMethod("from", Array(ctxt))
    Return jo.RunMethod("areNotificationsEnabled", Null)
End Sub
 
Last edited:
Top