French Mode vibreur quand le téléphone est dans la poche

Oceaneml

Member
Licensed User
Longtime User
Bonjour,
Je cherche à réaliser la fonction suivante : Quand je mets mon téléphone dans ma poche, je souhaite que le téléphone vibre au lieu de sonner.
Je ne sais pas si cette fonction existe déjà mais je ne l'ai pas trouvée. Alors je vais l'écrire.
J'ai déjà testé la détection de mise dans la poche mais il me manque la commande qui laisse ce programme résident en mémoire.
Quelqu'un peut-il me donner des infos?
J'ai bien trouvé #StartCommandReturnValue: android.app.Service.START_STICKY mais je ne comprends pas trop comment l'utiliser.
Merci.
 
Last edited:

Oceaneml

Member
Licensed User
Longtime User
Il faut mettre cette ligne au début du service dans Module Attributes.
Ok, c'est ce que j'ai fait mais il doit y avoir autre chose que je ne comprends pas:

B4X:
#Region  Service Attributes
    #StartAtBoot: False
    #StartCommandReturnValue: android.app.Service.START_STICKY
#End Region

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    Dim Icone As Notification
    Dim Test As PhoneSensors
    Dim Tel As Phone
End Sub

Sub Service_Create
    Icone.Initialize
    Icone.Icon = "icon"
    Test.Initialize(Test.TYPE_PROXIMITY)
    Test.StartListening("Test")
    StartServiceAt("", DateTime.Now, True)
End Sub

Sub test_SensorChanged (Values() As Float)
    If Values(0) >0 Then
        Tel.SetRingerMode(Tel.RINGER_NORMAL)
    Else
        Tel.SetRingerMode(Tel.RINGER_VIBRATE)
    End If
End Sub

Sub Service_Start (StartingIntent As Intent)
    Service.StartForeground(1,Icone)
End Sub

Sub Service_Destroy
    Service.StopForeground(1)
End Sub

Le programme n'est pas passé résident
La détection de proximité ne marche pas (elle marchait dans Activity)
Même l'icone ne s'affiche pas !
 

Oceaneml

Member
Licensed User
Longtime User
Est-ce que tu lances le service depuis l'application? Parce que je ne vois pas trop ce que fait le StartServiceAt dans Service_Create...
Effectivement ça marche mieux avec "StartService(tachedefond)" depuis l'application !
J'ai enlevé StartServiceAt qui ne sert plus.
Merci
 
Top