okgoogleとユーザー補助の関係

スポンサーリンク
スポンサーリンク

開発メモ
ユーザー補助のサービスを利用して通知を取得する際にAccessibilityServiceを利用するのが一番簡単に設置することができます。
AccessibilityServiceには最低onAccessibilityEventとonInterruptだけ設置すれば取得することが可能になります。
しかしAndroid4.4以上で利用できる”Ok Google”とマイクにしゃべるだけで音声検索機能が有効になる機能はAccessibilityServiceの設定を少し修正しておかなければなりません。
AccessibilityServiceを設置する際にアクセス制限をかけないと有効にならないんです。
ではその方法とはどのようにしたらいいのでしょう。
答えとしてはfeedbackTypeをFEEDBACK_GENERICにする必要があります。
それにはサービス開始時に設定を施してあげる必要があります。
それを実現するためにはonServiceConnectedをオーバーライドしてあげる必要があります。
具体的には以下の通り

    @Override
    public void onServiceConnected() {
        AccessibilityServiceInfo info = new AccessibilityServiceInfo();
        info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED;
        info.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC;
        info.flags = AccessibilityServiceInfo.DEFAULT;
        setServiceInfo(info);
    }

これをextends AccessibilityServiceしているクラスに加えます。
こうすることによって「通知イベントが発生」かつ「フィードバック限定」で設置することが可能になります。

コメント

タイトルとURLをコピーしました