Help us understand the problem. What is going on with this article?

[Android]ホーム・ランチャーアプリとして起動できるようにする

Android では Home ボタンを押したときに特定のアプリを表示するようになっています。これを一般的にホームアプリやランチャーアプリと言います。例えば Microsoft Launcher などですねこれらをホーム・ランチャーアプリと呼びます。

image.png

ホーム・ランチャーアプリとして起動するには AndroidManifest.xml の Category にLAUNCHER とDEFAULT を追加します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="jp.kaleidot725.sample">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Sample">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/Theme.Sample.NoActionBar"> 
            <intent-filter>
                <!-- android.intent.action.MAIN をつけるとこの Activity がアプリのエントリポイントになる -->
                <action android:name="android.intent.action.MAIN" />
                <!-- android.intent.category.HOME をつけると起動時に最初に起動する画面として認識される -->
                <category android:name="android.intent.category.HOME" />
                <!-- android.intent.category.LAUNCHER をつけるとホームボタンから起動できる画面として認識される -->
                <category android:name="android.intent.category.LAUNCHER" />
                <!-- android.intent.category.DEFAULT をつけると暗黙的インテントから起動できる画面として認識される -->
                <category android:name="android.intent.category.DEFAULT" />
          </intent-filter>
        </activity>
    </application>
</manifest>

LAUNCHER だけを設定すればランチャーアプリになるのではと思ってしまいますが、次のように Home ボタンを押したときに暗黙的インテント経由で起動をしなければならないのでDEFAULTも AndroidManifest.xml に記載しなければならないみたいです。

Nov-21-2020 21-45-49.gif

kaleidot725
組み込みエンジニア ➔ Androidエンジニアになりました。なので最近は主に Android やってます。あとはサーバーサイド Kotlin もやっていこうと思っています。
https://medium.com/kaleidot725
yumemi
みんなが知ってるあのサービス、実はゆめみが作ってます。スマホアプリ/Webサービスの企画・UX/UI設計、開発運用。Swift, Kotlin, PHP, Vue.js, React.js, Node.js, AWS等エンジニア・クリエイターの会社です。Twitterで情報配信中https://twitter.com/yumemiinc
http://www.yumemi.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away