Обнаружение сбоя приложения с помощью Tasker, его принудительное закрытие и, наконец, запуск снова.

На моем телефоне приложение Bluetooth Share случайно падает. С помощью Tasker я хочу иметь возможность обнаруживать этот сбой, а затем принудительно закрывать Bluetooth Share и, наконец, снова запускать Bluetooth Share . (Или снова включите Bluetooth)

PS: У меня уже есть таскер и я рутирован на CM12.1.

Любая помощь приветствуется. Спасибо!

Я мог бы попытаться опубликовать ответ, но у меня нет такого приложения, которое случайно вылетает. Я бы посоветовал посмотреть logcat, чтобы увидеть, есть ли у сбоев какие-либо намерения или информация, связанная с трансляцией. Если сбой не перезапускает приложение, вам может помочь этот ответ (подсказка: mFocusedActivity)
Может ли Tasker Process Running (KC) позволить вам определить, когда приложение закрывается? play.google.com/store/apps/details?id=org.kc.tasker.processes
@ LJD200 это приложение только проверяет, запущено приложение или нет, оно не может обнаружить сбой приложения.
@SuperThomasLab Этот общий ресурс Bluetooth перезапускается после сбоя или вам нужно делать это снова вручную, включая включение / выключение? Кроме того, происходит ли этот сбой, когда он работает в фоновом режиме (когда вы делаете что-то еще) или когда он находится на переднем плане? // Есть ли у вас какое-либо другое приложение, которое ведет себя так же, или вы хотите строго решение только для Bluetooth Share. (Я не могу протестировать или создать решение, если у меня нет такого приложения)?
@SuperThomasLab Приложения для Android не закрываются при сбое?
Чтобы снова включить Bluetooth, мне сначала нужно принудительно остановить его, а затем снова запустить вручную, и я хочу автоматизировать его с помощью Tasker. @Повелитель огня
@Firelord Bluetooth Share не закрывается полностью.
@SuperThomasLab О, хорошо, извини. Виноват.
Вы можете попробовать сохранить общий ресурс Bluetooth в памяти, чтобы он никогда не зависал.

Ответы (2)

К сожалению, это совершенно невозможно. Tasker не может обнаружить сбой приложения.

Тем не менее, мы все еще можем что-то с этим сделать.

Давайте сначала создадим профиль, который выполняет убийственную работу. Он будет выполнен, когда блютуз отключится.

  • Профиль (имя): BTrern

    • Состояние (контекст): Состояние BlueTooth [Состояние:Выкл.] (Профиль срабатывает, когда BT отключается)
    • Задача: (Вы можете дать задаче имя)

      • A1: Убить приложение [Приложение: Bluetooth Share Use Root: On] (Нажмите +, чтобы добавить эти действия)
      • A2: Подождите [ MS:0 Seconds:5 Minutes:0 Hours:0 Days:0 ] (Подождите 5 секунд)
      • A3 (необязательно): [X] Запустить приложение [App:Bluetooth Share] (если вам нужно его запустить)
      • A4: Bluetooth [Set:On] (включает Bluetooth)`

Примечание. Если убийство даже с помощью root не работает (могут быть проблемы с вашим Tasker или root), вы можете попробовать следующую команду оболочки:

am force-stop packagename

Например:

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

Или, если это не работает:

  • вечером отключить
  • Подождите 3 секунды
  • вечер включить

Теперь следующий вопрос, как отключить Bluetooth, не выполняя указанную выше инструкцию?

Это довольно просто. Составьте другое задание.

  • Статус профиля: BTrern → Выкл.
  • Подождите 5 секунд
  • Bluetooth → Выкл.

Назовите эту задачу (например, BTOFF) и создайте ярлык на главном экране.

Теперь всякий раз, когда вы хотите выключить BT, используйте этот ярлык.

Давайте сделаем еще одну задачу, которая включает BT, а также BTrern

  • Bluetooth → ВКЛ.
  • Подождите 5 сек.
  • Статус профиля → BTrern : ON

Опять же, используйте два вышеупомянутых ярлыка задач, чтобы включить или выключить BT.

Вы также можете использовать сцену или виджет, чтобы сделать это еще проще, когда вы приобрели достаточно знаний о Tasker.


СТАРЫЙ


Я не совсем понимаю, что вы подразумеваете под общим доступом Bluetooth, но я полагаю, вы имеете в виду действие, открытое с помощью Share → Bluetooth. Может быть, фото или два помогут.

Вместо того, чтобы искать обходной путь, сначала попробуйте исправить это:

  • Использование инструмента журнала, такого как catlog . (Откройте журнал каталогов → установите его на Ошибка, дождитесь сбоя, а затем снова откройте журнал каталогов и сохраните журнал.)
  • Ищем это. Вы не предоставили никакой информации о своей модели Android, поэтому, возможно, вам придется сделать это самостоятельно.

Если это не работает, мы можем использовать Tasker. Я считаю, что сбой произойдет в течение нескольких секунд после открытия активности. Мы можем использовать это в своих интересах.

  • ТРИГГЕР ВКЛ: (когда открывается активность Bluetooth Share)

    • Если (закрытие активности Bluetooth Share) И (qtime < 5 секунд)

      • запуск (активность обмена Bluetooth)
    • иначе (перейти к 1)`

Здесь qtime — это локальная переменная, которая хранит, сколько секунд выполняется задача. Вы можете найти это в разделе «Помощь» Tasker.

Также вы можете использовать Tasker Process Running (KC) для нужного процесса.

Второй метод:

Вместо этого гораздо проще сделать Сцену .

  • Просто сделайте небольшую коробку с одной кнопкой, которая будет выполнять действие. Держите его ненавязчивым.
  • Сцена 1:

    • Убить процесс обмена Bluetooth
    • Запустите процесс совместного использования Bluetooth
  • ТРИГГЕР ВКЛ: (когда открывается активность Bluetooth Share)

    • Создать сцену 1

      • Если (действие Bluetooth Share закрыто)

        • подождите 5 секунд
        • уничтожить сцену1

При этом при открытии Bluetooth Share будет небольшое наложение. Если он выйдет из строя, вы можете легко выполнить команду kill and start. И если он не вылетит, сцена будет автоматически уничтожена через 5 секунд.

Может быть передача файлов Bluetooth может помочь.

Отличный ответ, однако «Bluetooth Share» вылетает случайным образом. Так что не тогда, когда я открываю действие, делюсь файлом и т. Д. Я собираюсь попробовать logcat
Проще говоря, используйте сцену, чтобы принудительно остановить и перезапустить Bluetooth Share. Кстати, не могли бы вы уточнить, что вы подразумеваете под «общим доступом через Bluetooth»? Пик может сказать 1000 слов!
![Вы имеете в виду это?][1] [1]: i.stack.imgur.com/wp98n.jpg Вот как использовать logcat
да, и это приложение "Bluetooth (поделиться)": imgur.com/peB7kV7
Совместное использование Bluetooth — это не только часть обмена, но и все приложение Bluetooth. Он не падает, когда я пытаюсь поделиться файлом, но это происходит случайным образом. И это очень раздражает, потому что у меня есть устройство Android Wear. У меня Samsung Galaxy S4 с Cyanogenmod 12.1, а также посмотрите на мой вопрос на форуме Cyanogenmod здесь: forum.cyanogenmod.org/topic/…
Вот логарифм: pastebin.com/jHPLxPGt
Не данные, мне нужно только принудительно закрыть его.
Хорошо, теперь я могу это ясно понять. Как говорится, это ночная проблема, поэтому вы не можете ее исправить. поэтому logcat не будет работать. Как вы указали в своем посте, единственный способ, кроме перезагрузки, — очистить данные и включить Bluetooth. Таким образом, в таскере вместо того, чтобы убивать, используйте очистку данных и включение Bluetooth. Это должно работать сейчас.
Привет! Спасибо за подробный ответ, но я не понимаю этот шаг Enter: Anon (43). Не могли бы вы объяснить мне, что здесь делать?
Я отредактировал, чтобы сделать его более удобным для человека. означает Enter, что задача является входной задачей. После Enter: имя задачи. Если бы я назвал задачу BTTSK, она бы показала Entry: BTTSK. Если вы ничего не называете, Anonиспользуется имя по умолчанию, которое представляет Anonymous.
Таскер "определяет" сбой успешно, однако при включении Bluetooth происходит сбой, так что проблема с принудительным закрытием Bluetooth все еще есть.
Когда Bluetooth дает сбой, он продолжает бесконечно повторять задачу, пока я не отключу Tasker. Пожалуйста помоги
Он успешно «обнаруживает» сбой и снова включает Bluetooth, но повторяет задачу и запускается снова, и снова, и снова…
>Круто, по крайней мере, мы решили главную большую проблему! Теперь вы можете легко решить крошечные мини-проблемы: попробуйте am принудительно остановить имя пакета, например. am force-stop com.google.android.apps.maps Или, если это не работает, отключите pm Подождите 3 секунды, включите pm Я не рекомендую «или», поскольку я еще не пробовал, я просто записал это на случай, если мне понадобится. В любом случае проверьте с помощью Wait 3 sec, сначала попробуйте без этой команды, если это не сработает, добавьте команду ожидания.
О, кстати, вы также можете использовать плагин Secure Settings , он даст гораздо больше свободы. Не по теме: Просто посмотрите на этот СПИСОК ТОДООООООООО !
Теперь это работает, спасибо за помощь. Награда теперь твоя!
Не хочу показаться грубым, но ваше чувство форматирования ужасно. Вы злоупотребляли обратными кавычками, чтобы избежать форматирования ответа в соответствии со структурой, которую понимает сайт. Я исправил форматирование, но, пожалуйста, не злоупотребляйте обратными кавычками (`). Кроме того, есть ли здесь реальная потребность в более старом ответе?
  • Контекст профиля Приложение: Bluetooth Share
  • Введите задачу

    • А1: Стоп
  • Выход из задачи

    • A1: Поделиться через Bluetooth

Это то, чего ты хочешь?

Разве это не обнаруживает только, когда Bluetooth выключен. Может быть, мне следует объяснить причину, по которой я хочу обнаружить сбой. На моем телефоне Bluetooth случайно дает сбой. Я хочу, чтобы Tasker мог принудительно остановить Bluetooth, а затем снова запустить его. Я хочу обнаружить сбой, потому что, если я вручную отключу Bluetooth, он останется и больше не включится. Это достаточно подробно?
Понятно, вы можете сделать так, чтобы правило срабатывало только при включенном Bluetooth.
Но все же, если добавить правило, если Bluetooth включен. Когда я отключу Bluetooth, это правило тоже не пройдет, не так ли?
Я так не думаю, попробуйте и скажите, получилось ли
Хорошо, но вы можете сделать подробный ответ с шагами. Я новичок в таскере. Получил только на неделю или около того. Я, например, наполовину знаю, что такое "А1". Спасибо