MacroDroidアプリのユーザー補助サービスが停止してしまう問題への対応

この記事は公開から1年以上経過しています。

マクロを組むことでAndroidスマホの操作などを自動化できるエンジニア心をくすぐりまくりの便利なアプリMacroDroidには、ユーザー補助サービスが停止してしまう不便な不具合があるため、私が行っている対応を紹介します。

確認環境はAndroid One(Android 12)です。


問題

非ルート状態のAndroid 12端末でMacroDroidを利用していると、MDヘルパーを併用してもADBでパーミッションを設定しても、MacroDroidのユーザー補助サービスが勝手に停止してしまう現象が不定期に発生する。


原因

開発者によると端末側の制約(ソースは忘れました)とのことだが、システムログを見る限りでは当該エラーが発生した直後にMacroDroidを起動した旨のログが記録されており、かつサービスの状態は有効設定のままであることから、アプリの何らかの不具合でユーザー補助サービスのプロセスが落ちているだけのように見える(個人的な見解)。


対応

対処療法ではあるが、以下のようなマクロを作成して、ユーザー補助サービスが落ちたタイミングでユーザー補助サービスを起動させる。

マクロ

システムログへのAccessibility service is not enabled記録をトリガーに、ユーザー補助サービスのMacroDroid無効有効に切り替えることにより、MacroDroidユーザー補助サービスを強制的に起動。

マクロファイルは以下のとおり。

ユーザー補助起動.macro

{
    "disabledTimestamp": 0,
    "exportedActionBlocks": [],
    "forceEvenIfNotEnabledTimestamp": 0,
    "isActionBlock": false,
    "isBeingImported": false,
    "isClonedInstance": false,
    "isExtra": false,
    "isFavourite": false,
    "lastEditedTimestamp": 1691019806823,
    "localVariables": [],
    "m_GUID": -7842636525828479866,
    "m_actionList": [
        {
            "idList": [
                "com.arlosoft.macrodroid/.triggers.services.MacroDroidAccessibilityServiceJellyBean"
            ],
            "nameList": [
                "MacroDroid"
            ],
            "option": 1,
            "m_SIGUID": -4833272325758323973,
            "m_classType": "AccessibilityServiceAction",
            "m_constraintList": [],
            "m_isDisabled": false,
            "m_isOrCondition": false
        },
        {
            "idList": [
                "com.arlosoft.macrodroid/.triggers.services.MacroDroidAccessibilityServiceJellyBean"
            ],
            "nameList": [
                "MacroDroid"
            ],
            "option": 0,
            "m_SIGUID": -7637070732835867470,
            "m_classType": "AccessibilityServiceAction",
            "m_constraintList": [],
            "m_isDisabled": false,
            "m_isOrCondition": false
        }
    ],
    "m_category": "システム",
    "m_constraintList": [],
    "m_description": "",
    "m_descriptionOpen": false,
    "m_enabled": true,
    "m_excludeLog": false,
    "m_headingColor": -11382190,
    "m_isOrCondition": false,
    "m_name": "ユーザー補助起動",
    "m_triggerList": [
        {
            "enableRegex": false,
            "matchOption": 0,
            "text": "Accessibility service is not enabled",
            "m_SIGUID": -6191732993934069473,
            "m_classType": "SystemLogTrigger",
            "m_constraintList": [],
            "m_isDisabled": false,
            "m_isOrCondition": false
        }
    ]
}


現状はひとまずこれで問題が解消できているようですが、別件でシステムログ画面にもバグがありますね…。

23.8.8追記:
上記システムログのバグについて作者にバグレポートしたところ、調査して頂けるようでした。

参考ウェブサイトなど

以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする