10 votes

Comment déterminer quelle application est à l'origine des vibrations ?

J'ai un Moto G6 Play qui vibre comme s'il recevait des notifications mais ce n'est pas le cas. La vibration est incohérente et semble aléatoire, donc je voudrais savoir s'il y a un logcat ou quelque chose que je peux exécuter pour enregistrer quelle application appelle la vibration afin que je puisse l'arrêter ? La même chose se produit sur le téléphone de ma femme, même modèle, et ça me fait mal à la tête. L'appareil fonctionne sous Android 9.

7voto

Irfan Latif Points 16863

En plus de la dumpsys expliquée dans le autre réponse vous pouvez utiliser le gestionnaire de permissions caché (ou presque) d'Android. appops pour obtenir les demandes de vibrateurs récemment autorisées, par exemple à la dernière minute. De adb shell :

for pkg in $(pm list packages | sed 's/package://')
do
    echo "$pkg $(appops get $pkg VIBRATE)" | grep 'time=+[0-9]*s'
done

pm est le gestionnaire de paquets qui liste tous les paquets installés. appops détermine la dernière fois que chaque paquet a fait une demande de vibration et si elle a été autorisée ou rejetée.

Le résultat peut être encore filtré en faisant passer la sortie par la tuyauterie. awk '{printf "%-12s%-20s%s\n",$3,$4,$1}' :

allow;      time=+15s659ms      com.termux
allow;      time=+6s458ms       com.google.android.inputmethod.latin

Termux a fait une vibration 15 secondes en arrière. La demande peut aussi être refusée :

~$ appops set com.termux VIBRATE deny

Maintenant la sortie sera comme ceci :

deny;       time=+9s500ms       com.termux
allow;      time=+6s392ms       com.google.android.inputmethod.latin

Et une auto-promotion sans vergogne. Si vous n'êtes pas à l'aise avec le CLI, vous pouvez utiliser mon application open-source Gestionnaire de permissions X pour obtenir et régler les AppOps :

6voto

Firelord Points 23064

La prochaine fois que votre appareil vibrera, connectez-le à un PC avec la fonction adb déjà configuré, et lancez cette commande :

adb shell dumpsys vibrator

Dans le résultat, avec le modèle de vibration, vous serez en mesure de voir l'UID et le nom du paquet de l'application qui a causé la vibration dans l'appareil récemment. Par exemple, dans mon appareil OnePlus 6 (Android 8.1.0), le résultat est le suivant :

Previous vibrations:
  , startTime: 95325556, effect: Waveform{mTimings=\[0, 250\], mAmplitudes=\[0, -1\], mRepeat=-1}, usageHint: 5, uid: 10122, opPkg: **com.textra**
  , startTime: 95346005, effect: Waveform{mTimings=\[0, 250\], mAmplitudes=\[0, -1\], mRepeat=-1}, usageHint: 5, uid: 10122, opPkg: com.textra
  , startTime: 95428005, effect: Waveform{mTimings=\[0, 250\], mAmplitudes=\[0, -1\], mRepeat=-1}, usageHint: 5, uid: 10122, opPkg: com.textra
  , startTime: 95516412, effect: OneShot{mTiming=50, mAmplitude=-1}, usageHint: 0, uid: 1001, opPkg: **com.android.incallui**
  , startTime: 95572994, effect: Waveform{mTimings=\[0, 250\], mAmplitudes=\[0, -1\], mRepeat=-1}, usageHint: 5, uid: 10122, opPkg: com.textra
  , startTime: 96868723, effect: Waveform{mTimings=\[0, 250\], mAmplitudes=\[0, -1\], mRepeat=-1}, usageHint: 0, uid: 1000, opPkg: **android**
  , startTime: 97144598, effect: OneShot{mTiming=200, mAmplitude=-1}, usageHint: 0, uid: 10130, opPkg: com.phonepe.app
  , startTime: 97187986, effect: OneShot{mTiming=200, mAmplitude=-1}, usageHint: 0, uid: 10130, opPkg: **com.phonepe.app**
  , startTime: 98229901, effect: Waveform{mTimings=\[0, 300\], mAmplitudes=\[0, -1\], mRepeat=-1}, usageHint: 0, uid: 10133, opPkg: **com.arlosoft.macrodroid**

La chaîne de caractères à côté de opPkg: est le nom du paquet de l'application qui a provoqué la vibration à un moment donné. La liste est classée par ordre chronologique, l'entrée la plus récente se trouvant en bas. Pour obtenir le nom de l'application à partir du nom du paquet, consultez ma réponse. ici .

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X