LoginSignup
2
3

More than 5 years have passed since last update.

Android の Assist App 機能に対応する

Posted at

概要

Android の Assist App (アシストアプリ)機能に対応させる方法について述べます。

Assist App

端末のホームキーをロングタップすると、Google のアイコンが出てGoogle アプリが起動するかと思います。

device-2018-06-24-191318.png

この機能で起動するアプリは Assist App (アシストアプリ)というところで指定されていて、デフォルトのものから変更することが可能です。

設定の流れ

OSバージョンや端末ごとに設定方法が異なります。Android 6系の端末で試したところ、以下の通りでした。

device-2018-06-24-185530.png

まず、設定からアプリケーションマネージャを開きます。

device-2018-06-24-185559.png

アプリ一覧の右上にある歯車ボタンを押します。

device-2018-06-24-185615.png

Default Apps(既定のアプリ) を開きます。

device-2018-06-24-185628.png

Assist & voice input (アシストと音声入力)を開きます。

device-2018-06-24-185729.png

Assist App に Google が設定されていますね。ここをタップすると

device-2018-06-24-185804.png

Assist App に設定するアプリを選択可能です。どれかを選択すると

device-2018-06-24-191418.png

許諾を得るダイアログが出ます。ここで AGREE を押してもらってようやく設定されます。このように、設定が非常に深いところにあるので、これをユーザに設定し直してもらうのは相当難しいかと思います。

なお、すべてのアプリを Assist App に設定できるわけではなく、特定の Intent Action に対応したアプリだけが選択肢に表示されます。その方法についてはこれから述べていきます。

実装

AndroidManidest.xml での指定

対応自体は非常に簡単です。起動させる Activity に "android.intent.action.ASSIST" の intent-filter を追加するだけです。

<activity android:name=".MainActivity">

    <intent-filter>
        <action android:name="android.intent.action.ASSIST" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>

これだけで Assist App の一覧に表示されるようになります。

分岐の追加

この Assist App 機能で起動された際に別の処理を入れたい場合、Intent.action が Intent.ACTION_ASSIST であるかを判定して、分岐を追加することができます。

if (TextUtils(Intent.ACTION_ASSIST, intent?.action)) { 
    //...
}

アイコンを表示する

上記の修正により、ホームキーのロングタップで起動させられるようになりました(別途デフォルトアプリへの設定は必要です)。

device-2018-06-24-193521.png

ですが、このまま動かすと白い丸が出るだけなので殺風景です。

できるの?

ここにアイコンを入れるのは Google アプリだけの特権なのかと思ったのですが、

device-2018-06-24-185937.png

Yandex Browser ではちゃんと Y のアイコンを表示できているので、設定するやり方はあるようです。

やり方

調べたら、meta-data で指定すればよいとわかりました。

<activity android:name=".MainActivity">

    <intent-filter>
        <action android:name="android.intent.action.ASSIST" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>

+    <meta-data
+        android:name="com.android.systemui.action_assist_icon"
+        android:resource="@mipmap/ic_launcher"
+        />

device-2018-06-24-193213.png

できました。round アイコンの方がよかったかもしれません。

注意

Assist App 機能はホームキーのロングタップだけでアプリを起動してもらえるため、非常に強力な導線ですが、おいそれと使えるものではありません。

  1. ユーザにデフォルトアプリの設定を変えてもらわなければならない……Google アプリから変える必然性はあるか、OS・端末ごとに設定手順が違う、等
  2. この機能で起動されるアプリはユーザの行動を助けられる必要がある

自分たちのアプリがこの機能で起動させるのに適しているのかはよく考える必要があります。

まとめ

Android の Assist App 機能は簡単に対応できて効果が高そうに見えますが、すべてのアプリに適した機能というわけではなく、よく検討した上で導入するか否かを決めた方が良いでしょう。

参考

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3