L'envoi d'un SMS sur Android par le biais de la BAD
Je voudrais être en mesure d'envoyer un SMS à partir de mon téléphone Android alors qu'il est connecté à mon ordinateur à l'aide de la suite de la BAD commandes
adb shell am start -a android.intent.action.SENDTO -d sms:CCXXXXXXXXXX --es sms_body "SMS BODY GOES HERE" --ez exit_on_sent true
adb shell input keyevent 22
adb shell input keyevent 66
J'ai ce travail cependant sur le téléphone de cet apparaîtra un message texte au destinataire avec le corps rempli et puis cliquez sur le bouton envoyer et de revenir là où vous étiez. Est-il possible de le faire complètement en arrière-plan afin de ne pas interférer avec tout ce qui se passe sur le téléphone?
Pour les nouveaux téléphones Android tu ferais mieux de faire une tabulation à deux fois donc, ce serait: adb shell entrée keyevent 22 adb shell entrée keyevent 22 adb shell entrée keyevent 66
Sur Android 8, j'ai dû envoyer keyevent 61 deux fois, suivi par keyevent 66.
Sur Android 8, j'ai dû envoyer keyevent 61 deux fois, suivi par keyevent 66.
OriginalL'auteur | 2013-07-10
Vous devez vous connecter pour publier un commentaire.
Version courte :
Android 5 et plus (ici android 4):
Android 5 et plus tard (ici android 9):
Isms numéro de la méthode (5 et 7 ci-dessus) peut changer avec la version d'android . Lire l'explication de la comprendre.
Explication complète de toutes les version d'android :
Oui, il existe ! mais pas avec cette commande, car ces événements sont bloqués en mode veille.
Cette solution dépend de votre version d'android, donc je vais vous expliquer, pour presque toutes les versions ...
1er, vérifiez si vous avez le service de smsi en cours d'exécution :
La réponse est trouvé, bon, continuez à avancer. Le service de smsi ont différentes "options" la syntaxe est la suivante :
Le nom de service peut être trouvé en tapant :
Il affiche un grand nombre de services disponibles, mais ce qui est intéressant est la suivante :
Vous pouvez voir com.android.interne.la téléphonie.Isms, donc sur ce lien choisir votre version d'android (en changeant de direction), puis naviguez jusqu'à :
telephony/java/com/android/internal/telephony
et ouvrirIsms.aidl
Pour le reste, je vais prendre le android Tarte (android 9) fichier (lien).
Sur la ligne Cents quatre vingt cinq nous avons :
Remarque : avant de android 5 la méthode est nommée
sendText(...)
.C'est le 7 de la déclaration dans l'interface du SMSI . Donc, notre option d'envoi d'un sms est le numéro 7. Sur le haut de la declaratio il y a l'explication des arguments. Voici la version courte:
-> Trouver votre nom du package :
Explorer votre application fichier ou le Package de téléchargement Nom de l'Observateur sur le google play, trouver votre application message et copier le nom (com.android...)
-> Trouver votre smsc :
Dans votre application -> paramètres -> SMSC ou un Centre de Service ou Centre de Message etc, copiez le numéro d'affichage (NE PAS MODIFIER)
Juste avant de finir, dans les services, les chaînes sont déclarées par s16 et entiers et PendingIntent avec i32.
Donc pour mon exemple, nous avons :
Enfin :
Android 5 et plus (ici android 4):
Android 5 et plus tard (ici android 9):
-> Un exemple dans un fichier de commandes :
L'envoyer.bat pour android 4 :
exécuter avec :
Maintenant, dites-moi si cela fonctionne avec votre version d'android 🙂
Edit : Corrigé avec les renseignements donnés par Alex P.
FIRST_CALL_TRANSACTION
est1
, donc le bon code poursendMultipartText
dans Android 4.4.x serait6
, pas5
. Pour faciliter moyen pour obtenir les codes de transaction lecture de ktnr74.blogspot.com/2014/09/...La commande est que le droit, l'explication est fausse. Vous utilisez le code de transaction
5
et tous les autres paramètres de l'sendText()
de commande appropriée à utiliser pour l'envoi des textes simples comme la vôtre.oui c'est vrai merci, j'ai corrigé ça
Je reçois Résultat: Colis(00000000 '....') mais rien ne se passe sur android 7.1.1
Android a évolué beaucoup depuis ma réponse, je vais mettre à jour plus tard, essayez de
adb shell service call isms 7 i32 0 s16 "com.android.mms.service" s16 "+1234567890" s16 "null" s16 "Hey\ you\ !" s16 "null" s16 "null"
pour android 9. Android 7 essayez avec...isms 7 i32 1 s16 "com.android.mms" s16...
OriginalL'auteur Taknok
Au lieu de cela , écrire votre propre intentservice comme suit.
Créer une entrée pour la suite de IntentService dans votre manifeste.
OriginalL'auteur Kerem Kusmezer
La réponse ci-dessous a très bien fonctionné pour moi !
Dans Android 5.02 l'option est de 12 et j'ai compris qu'on pouvait envoyer la valeur null comme le SMSC pour utiliser la valeur par défaut, de sorte que l'envoi d'un SMS travaillé avec :
OriginalL'auteur Maxime Pelletier