開発メモ
ユーザー補助のサービスを利用して通知を取得する際に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しているクラスに加えます。
こうすることによって「通知イベントが発生」かつ「フィードバック限定」で設置することが可能になります。
コメント