Envoyer un SMS : Methode serveur sur un mobile Android

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Envoyer un SMS : Methode serveur sur un mobile Android

Message par falsam »

Envoyer un SMS avec PureBasic c'est possible avec un serveur HTTP installé sur votre mobile ou tout terminal Android équipé d'un abonnement téléphonique.

Travail préparatoire.

Pour cela j'ai installé deux applications sur mon terminal.

GSM Modem (SMS) Le serveur que vous trouverez sur le Play Store Android
Url : https://play.google.com/store/apps/deta ... m.gsmmodem

Ouvrer l'application

-Cliquer sur bouton SETTINGS.
Renseigner le port de communication. Exemple 8090
Noter l'adresse IP de votre serveur. Exemple 192.168.1.102:8090
Cliquer sur le bouton Save. Vous aurez peut être une publicité. Quitter la pub ^-^

-Cliquer sur le bouton USERS.
Ajouter un utilisateur avec son mot de passe. Dans mon exemple j'ai utilisé falsam pour le nom et le mot de passe.
Une fois validé, revener sur la fenêtre précédente.

-Activer le serveur en cliquant sur le bouton DESACTIVE (Oui c'est Strange). Vous aurez une publicité. Quitter cette publicité.

GSM-Helper-Tool
Cette application permet de se passer de votre autorisation pour l'envoie de chaque SMS. Vous ne la trouverez pas sur le Play Store.
Url : https://github.com/sadiqodho/GSM-Helper-Tool

Télécharger le ZIP https://github.com/sadiqodho/GSM-Helper ... master.zip

1-Transférer l'apk app-debug-above-26.apk sur votre mobile que vous trouverez dans le dossier download-app du zip.
2-Installer l'application.
3-Ouvrir l'application et laisser là ouverte.
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%
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Envoyer un SMS : Methode serveur sur un mobile

Message par falsam »

Le code avec PureBasic

Pour communiquer avec le serveur de votre terminal, nous allons utiliser un API HTTP

http://DeviceIP:port/SendSMS?username=abcd&password=1234&phone=111111111&message=yourmessage

C'est suffisamment explicite alors passons au code que j'ai testé avec la version 5.71 LTS 64 bits.

Code : Tout sélectionner

EnableExplicit

InitNetwork()

; Parametre serveur
Define HttpRequest, HTTPResult.s, *buffer
Define server.s   = "192.168.0.22:8090"
Define username.s = "falsam"
Define password.s = "falsam"

; Parametres destinataire
Define phone.s
Define message.s
Define result.s

; 1 - Le serveur est il accessible ?
HttpRequest = HTTPRequest(#PB_HTTP_Get, server)

If HttpRequest 
  HTTPResult = HTTPInfo(HTTPRequest, #PB_HTTP_StatusCode)
  FinishHTTP(HTTPRequest)
EndIf

If HTTPResult <> "200"
  Debug "Le serveur n'est pas accessible"
  End
EndIf
  
; 2 - Envoie SMS
  
; API HTTP (respecter majuscule/minuscule)
; http://DeviceIP:port/SendSMS?username=abcd&password=1234&phone=111111111&message=hello+test
  
phone = "9999999999"
message = "PureBasic Demo" + #CRLF$ + "Envoie d'un SMS"

*buffer = ReceiveHTTPMemory(URLEncoder(server + "/SendSMS?username=" + username + "&password=" + password + "&phone=" + phone + "&message=" + message))

If *buffer
  result= PeekS(*Buffer, MemorySize(*Buffer), #PB_UTF8|#PB_ByteLength)
  FreeMemory(*Buffer)
  
  If FindString(result, #DQUOTE$ + "status" + #DQUOTE$ + ":" +#DQUOTE$ + "200" + #DQUOTE$)
    Debug "SMS envoyé à " + phone
  Else
    Debug result
  EndIf
Else
  Debug "Erreur memoire lors de l'envoie du SMS"
EndIf
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%
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Envoyer un SMS : Methode serveur sur un mobile

Message par falsam »

Résolution de bugs.

- Laisser le terminal actif pour l'envoie des SMS.



Liens éditeur https://sindhitutorials.com/videos/andr ... ndroid-app
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%
Avatar de l’utilisateur
Naheulf
Messages : 191
Inscription : dim. 10/mars/2013 22:22
Localisation : France

Re: Envoyer un SMS : Methode serveur sur un mobile Android

Message par Naheulf »

Attention aux caractères spéciaux dans le nom d'utilisateur, le mot de passe et le message.
La procédure URLEncoder() n'encode pas certains caractères ayant un sens particulier dans les URLs. Les caractères à protéger dans ces variables sont les suivants :
- "%" --> "%25" ; Début d'un caractère encodé, À échapper en premier
- "&" --> "%26" ; Séparation des paramètres dans l'URL
- "#" --> "%23" ; Début de l'ancre dans la page
Ces protections sont à faire avant la concaténation qui génère l'URL.

Pour grader le téléphone allumé, il y a dans les options pour développeur, une option permettant de rester activé lorsque le téléphone est branché.
Avatar de l’utilisateur
venom
Messages : 3071
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Envoyer un SMS : Methode serveur sur un mobile Android

Message par venom »

Interessant.
Merci pour l'info.





@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Répondre