1 votes

Détectez quand une application plante avec Tasker et forcez sa fermeture, puis lancez-la à nouveau

Sur mon téléphone, l'application Bluetooth Share plante de manière aléatoire. Avec Tasker, je veux être capable de détecter ce crash, puis forcer la fermeture de Bluetooth Share et enfin relancer Bluetooth Share à nouveau. (Ou réactiver le Bluetooth)

PS : J'ai déjà Tasker et je suis rooté sur CM12.1.

Toute aide est appréciée. Merci!

1 votes

J'aurais pu essayer de poster une réponse mais je n'ai pas une telle application qui plante aléatoirement. Je suggérerais de regarder le logcat pour voir si les plantages contiennent des informations liées à une intention ou à une diffusion. Si le crash ne relance pas l'application, vous pouvez obtenir un peu d'aide de cette réponse (astuce : mFocusedActivity).

0 votes

Le traitement des tâches exécutées par Tasker (KC) peut-il vous permettre de détecter quand l'application se ferme ? play.google.com/store/apps/details?id=org.kc.tasker.processe‌​s

0 votes

@LJD200 cette application ne fait que vérifier si une application est en cours d'exécution ou non, elle ne peut pas détecter un crash de l'application.

2voto

Abhioxic Points 514

Malheureusement, ce n'est pas possible. Tasker ne peut pas détecter un crash d'application.

Cependant, nous pouvons quand même faire quelque chose à ce sujet.

Commençons par créer un profil qui effectue le travail de suppression. Il sera exécuté lorsque le bluetooth est désactivé.

  • Profil (nom) : BTrern

    • État (Contexte) : Statut du Bluetooth [ Statut:Désactivé ] (Le profil se déclenche lorsque le BT est désactivé)
    • Tâche : (Vous pouvez donner un nom à la tâche)

      • A1: Arrêter l'application [ Application:Bluetooth Share Utiliser Root:Activé ]      (Cliquez sur + pour ajouter ces actions)
      • A2: Attendre [ MS:0 Secondes:5 Minutes:0 Heures:0 Jours:0 ]       (Attendre 5 secondes)
      • A3 (optionnel) : [X] Lancer l'application [ Application:Bluetooth Share]       (Si vous devez la lancer)
      • A4: Bluetooth [ Définir:Activé ]     (Active le Bluetooth)`

Note : Si même la suppression avec le root ne fonctionne pas (il pourrait y avoir un problème avec votre Tasker ou le root), vous pouvez essayer la commande shell suivante :

am force-stop nomdelapackage

Par exemple :

am force-stop com.google.android.apps.maps

Ou si cela ne fonctionne pas :

  • pm désactiver
  • Attendre 3 secondes
  • pm activer

Maintenant, la question suivante est comment désactiver Bluetooth sans exécuter les instructions notées ci-dessus ?

C'est assez simple. Créez une autre tâche.

  • État du Profil : BTrern → Désactivé
  • Attendre 5 secondes
  • Bluetooth → Désactivé

Nommez cette tâche (comme BTOFF) et créez un raccourci sur votre écran d'accueil.

Maintenant, chaque fois que vous souhaitez désactiver votre BT, utilisez ce raccourci.

Créons une autre tâche qui active le BT ainsi que le BTrern

  • Bluetooth → ACTIVÉ
  • Attendre 5 secondes
  • État du Profil → BTrern : ACTIVÉ

Encore une fois, utilisez les raccourcis des deux tâches ci-dessus pour activer ou désactiver le BT.

Vous pouvez également utiliser une scène ou un widget pour rendre les choses encore plus faciles une fois que vous avez acquis suffisamment de connaissances avec Tasker..


ANCIEN


Je ne comprends pas tout à fait ce que vous entendez par partage Bluetooth, mais je présume que vous voulez dire l'activité ouverte par Partager → Bluetooth. Peut-être une ou deux captures d'écran pourraient aider.

Au lieu de chercher une solution détournée, essayez d'abord de le résoudre en :

  • Utilisant un outil de journalisation comme catlog. (Ouvrez catlog → réglez-le sur Erreur, laissez le crash se produire, puis ouvrez à nouveau catlog et enregistrez le journal.)
  • Recherchant. Vous n'avez pas fourni d'informations sur votre modèle Android, donc vous devrez peut-être le faire vous-même.

Si ces méthodes ne fonctionnent pas, nous pouvons utiliser Tasker. Je crois que le crash se produira quelques secondes après l'ouverture de l'activité. Nous pouvons utiliser cela à notre avantage.

  • DÉCLENCHEUR SUR : (Lorsque l'activité de partage Bluetooth s'ouvre)

    • Si (l'activité de partage Bluetooth se ferme) ET (qtime < 5 sec)

      • démarrer (l'activité de partage Bluetooth)
    • sinon (aller à 1)`

Ici, qtime est une variable locale qui stocke depuis combien de secondes la tâche est en cours. Vous pouvez trouver cela dans la section d'aide de Tasker.

Vous pouvez également utiliser Tasker Process Running (KC) pour le processus requis.

Deuxième méthode:

Plutôt que cela, il est beaucoup plus facile de créer une Scène à la place.

  • Créez simplement une petite boîte avec un bouton à l'intérieur qui exécutera l'activité. Gardez-la non intrusive.
  • Scène1:

    • Arrêter le processus de partage Bluetooth
    • Démarrer le processus de partage Bluetooth
  • DÉCLENCHEUR SUR : (Lorsque l'activité de partage Bluetooth s'ouvre)

    • Créez Scène1

      • Si (l'activité de partage Bluetooth se ferme)

        • attendre 5 secondes
        • détruire la scène1

Ainsi, il y aura une petite superposition lorsque vous ouvrez le partage Bluetooth. Si cela plante, vous pouvez facilement exécuter vos commandes d'arrêt et de démarrage. Et si cela ne plante pas, la scène se détruira automatiquement après 5 secondes.

Peut-être que Bluetooth File transfer peut aider.

0 votes

Excellente réponse, cependant ''Bluetooth Share'' plante de manière aléatoire. Pas lorsque j'ouvre une activité, partage un fichier etc. Je vais essayer le logcat

0 votes

Pour résumer simplement, utilisez une scène pour forcer l'arrêt et le redémarrage du partage Bluetooth. Au fait, pouvez-vous s'il vous plaît clarifier ce que vous voulez dire par "partage Bluetooth"? Une image vaut 1000 mots!

0 votes

![Voulez-vous dire ceci?][1] [1]: i.sstatic.net/wp98n.jpg Voici comment utiliser logcat

0voto

rebane2001 Points 100
  • Application de contexte du profil: Partage Bluetooth
  • Entrer la tâche

    • A1: Arrêter
  • Tâche de sortie

    • A1: Partage Bluetooth

Est-ce ce que vous voulez?

0 votes

Ne détecte-t-il que lorsque le Bluetooth est désactivé. Peut-être dois-je expliquer la raison pour laquelle je veux détecter un crash. Sur mon téléphone, le Bluetooth plante de manière aléatoire. Je veux que Tasker soit capable de forcer l'arrêt du Bluetooth puis de le relancer. Je veux détecter un crash car si je désactive manuellement le Bluetooth, il reste désactivé et ne se rallume pas. Est-ce assez détaillé?

0 votes

Compris, vous pouvez faire en sorte que la règle ne se déclenche que lorsque le Bluetooth est activé

0 votes

Mais encore, si vous ajoutez une règle si le Bluetooth est activé. Si j'éteins le Bluetooth, la règle sera également contournée, n'est-ce pas ?

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