#Android : Utiliser la torche

Rubriques generale concernant SpiderBasic
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

#Android : Utiliser la torche

Message par falsam »

[SB 2.20]

Avec SpiderBasic vous pouvez créer vos propres applications Android dépourvus de publicité.

Si vous le souhaitez, vos applications pourront accéder aux hardware de votre terminal grâce à l'utilisation des plugins Cordova.

C'est ce que nous allons aborder avec cet exemple.

■ Objectif : Allumer éteindre la torche.

Pour cela nous allons utiliser un plugin Cordova : cordova-plugin-flashlight

■ Documentation : https://www.npmjs.com/package/cordova-plugin-flashlight

L'importation du plugin est simple

Code : Tout sélectionner

Import "cordova plugin add cordova-plugin-flashlight"
EndImport
On utilisera un peu de JavaScript pour accéder à ce plugin. Par exemple pour allumer la torche

Code : Tout sélectionner

window.plugins.flashlight.switchOn()
et l’éteindre

Code : Tout sélectionner

window.plugins.flashlight.switchOff()

■ Principe de l'application.
- Initialiser le plugin qui recevra le callback de succes et le callback d'échec.
- Afficher la fenêtre de l'application.
- Un déclencheur qui permet de savoir si un utilisateur a pressé le bouton On/Off.
- Allumer ou éteindre la torche.

Code : Tout sélectionner

Enumeration
  #mf
  #mfSwitch
EndEnumeration

Declare PluginInit(onSuccess, onError)
Declare Start()
Declare OnClick()
Declare OnError()

;No debug
CloseDebugOutput()

;Import Cordova Plugin
Import "cordova plugin add cordova-plugin-flashlight"
EndImport

;Init plugin
PluginInit(@Start(), @OnError()) 

Procedure PluginInit(onSuccess, onError)
  !window.plugins.flashlight.available(function(isAvailable) {
  ! if (isAvailable) {
  !     v_onsuccess();     
  ! } else {
  !     v_onerror();
  ! }
  !})
EndProcedure

Procedure Start()
  Protected Font = LoadFont(-1, "Arial", 20)
  
  OpenWindow(#mf, 0, 0, 0, 0, "Flash Light", #PB_Window_Background)
  SetWindowColor(#mf, RGB(105, 105, 105))
  ButtonGadget(#mfSwitch, 20, 50, WindowWidth(0)-40, 200, "Light On")
  SetGadgetFont(#mfSwitch, FontID(Font))
  
  ;Trigger
  BindGadgetEvent(#mfSwitch, @OnClick())  
EndProcedure

Procedure OnClick()
  Static Status
  
  If Status 
    Status = #False
    SetGadgetText(#mfSwitch, "Light On")
    ! window.plugins.flashlight.switchOff()  
  Else
    Status = #True
    SetGadgetText(#mfSwitch, "Light Off")
    !  window.plugins.flashlight.switchOn()
  EndIf  
EndProcedure

Procedure OnError()
  !alert("Flashlight not available on this device")
EndProcedure
:!: Ce code ne teste pas si la torche est déja allumé ou pas.

■ Paramétrage de l'application : Menu compiler -> Create App :: Android
- App Name : Flash Light
- Version : 1.0.0
- Package ID : com.yournickname.flashlight Exemple com.falsam.flashlight
- Orientation : Portrait
- Fullscreen : Cochée
- Output filename : flashlight.apk
- Automaticaly upload on USB .... : Cochée
- Enable debugger : Cochée

:idea: Votre terminal Android doit être configurer pour recevoir des apk d'origines étrangères.
Une aide sur ce sujet http://www.purebasic.fr/french/viewtopi ... 06#p187606

:idea: Vous devez avoir une connexion internet active.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%