J'ai regardé partout et je n'ai pas trouvé de réponse concrète à cette question. J'espère trouver un moyen de basculer le mode avion depuis ADB sans impliquer l'interface graphique de quelque manière que ce soit. J'ai trouvé et utilisé la méthode qui appelle le menu, puis l'utilisation de keyevents active le mode avion, mais en raison de la nécessité de prendre en compte les modifications possibles de la disposition de l'interface utilisateur, cette méthode n'est qu'une solution temporaire.
Je commence à penser qu'il n'y a pas de moyen d'activer ou de désactiver le mode avion de manière intentionnelle, mais si vous avez des informations, je vous en serais très reconnaissant.
Pour activer le mode APN
adb Shell settings put global airplane_mode_on 1
Pour désactiver le mode APN
adb Shell settings put global airplane_mode_on 0
vérifié sur Android-L
adb Shell am start -a Android.settings.AIRPLANE_MODE_SETTINGS
adb Shell input keyevent 19 & adb Shell input keyevent 23
adb Shell am start -a Android.settings.AIRPLANE_MODE_SETTINGS & adb Shell input keyevent KEYCODE_ENTER & adb Shell input keyevent 4
Va basculer en mode avion. Cependant, est-ce que quelqu'un sait s'il existe un moyen de décocher explicitement ou de cocher la case? Le problème est que je ne peux pas trouver un moyen de vérifier l'état avant de basculer. adb Shell settings get global airplane_mode_on
ne fonctionne pas pour moi, les paramètres ne sont pas trouvés.
if [[ "$(adb Shell dumpsys wifi | grep mAirplaneModeOn)" == "mAirplaneModeOn true" ]]; then
adb Shell am start -a Android.settings.AIRPLANE_MODE_SETTINGS
&& input keyevent 19
&& input keyevent 23
&& input keyevent 4
fi
if [[ "$(adb Shell dumpsys wifi | grep mAirplaneModeOn)" == "mAirplaneModeOn false" ]]; then
adb Shell am start -a Android.settings.AIRPLANE_MODE_SETTINGS
&& input keyevent 19
&& input keyevent 23
&& input keyevent 4
fi
Voici comment j'ai pu activer le mode Avion sur emulator (API 25) en surmontant le problème des autorisations.
adb -s emulator-5554 Shell settings put global airplane_mode_on 1
adb -s emulator-5554 Shell 'su 0 am broadcast -a Android.intent.action.AIRPLANE_MODE'
Veuillez noter que votre ' su 0 ' peut varier. Par exemple, pour les anciennes API, je devais utiliser ' su & '
Si vous souhaitez désactiver uniquement les données de l'émulateur, utilisez
svc data disable
Cependant, j'ai vu des cas où emulator auto se reconnecte après quelques secondes.
ne fonctionne que sur le périphérique Rooted. .
activer le mode avion:
Paramètres de shell ad -c mis global airplane_mode_on 1
adb Shell -c est diffusé -a Android.intent.action.AIRPLANE_MODE --ez state true
désactiver le mode avion:
Paramètres de shell ad -c mis global airplane_mode_on 0
adb Shell - je suis diffusé - a Android.intent.action.AIRPLANE_MODE --ez state false
william's answer était le plus proche qui a fonctionné pour moi -> Android 5.0 Lollipop. Cependant, parfois, il ne basculait pas car il essayait de basculer avant que l'activité Paramètres ne soit complètement chargée.
J'ai donc fait dormir le terminal pendant 0,1 seconde. et j'ai ajouté frapper le dos pour sortir de Paramètres
adb Shell am start -a Android.settings.AIRPLANE_MODE_SETTINGS
adb Shell input keyevent 19 ; sleep 0.1; adb Shell input keyevent 23; sleep 0.3; adb Shell input keyevent 4;
echo "Toggled airplane mode";
Utilisez la commande suivante pour lancer Paramètres > Réseaux sans fil , bascule Mode avion et revenir (en appuyant sur Retour):
adb Shell am start -a Android.settings.AIRPLANE_MODE_SETTINGS & adb Shell input keyevent 19 & adb Shell input keyevent 23 & adb Shell input keyevent 4
adb Shell am start -a Android.settings.AIRPLANE_MODE_SETTINGS ; adb Shell input keyevent 19 ; adb Shell input keyevent 23 ; adb Shell input keyevent 4
Testé sur Samsung Galaxy S (Android OS 2.3.3).
Pour les nouveaux Android, cela en/désactive le wifi. Ce n'est pas tout à fait votre tâche, mais j'aurais été ravie de la trouver ici:
adb Shell svc wifi disable
ou
adb Shell svc wifi enable
Le crédit va à cette réponse: https://stackoverflow.com/a/27228962/1021872
Puisque les commandes de diffusion ont cessé de fonctionner après Nougat, je vous recommanderais d'utiliser quelque chose comme ceci:
adb Shell "input keyevent KEYCODE_WAKEUP; entrée keyevent KEYCODE_MOVE_HOME; am start -a Android.settings.AIRPLANE_MODE_SETTINGS; sommeil 0.5; entrée keyevent KEYCODE_ENTER; pm clear com.Android.settings; entrée keyevent KEYCODE_HOME"
Cela fonctionne sur Samsung S7