Android : Kotlin : アプリがインストールされたときにショートカットを作成する

アプリがインストールされたときに自動でホームにアイコンを作成する方法について。

パーミッションの設定

ショートカットを作成するにはcom.android.launcher.permission.INSTALL_SHORTCUTの権限が必要だ。
AndroidManifest.xmlのの子要素として以下を追加する。
AndroidManifest.xml:


<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />

処理

アプリを起動するショートカットを作成する処理はMainActivityのonCreateに記述するのが一般的だと思う。


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // ショートカットを作成する関数を呼び出す
        createShortcut();
    }

ショートカットを作成する処理の流れとしては

  1. アプリの起動情報をもったインテントを作成→起動インテント
  2. アイコンのインテントを作成し、そのアクションに起動インテントをセットする
  3. sendBroadcast()でアイコンインテントを送信し、スクリーンに登録

アプリを起動するショートカットを作成する処理:


    // 起動時にショートカットを作成する関数
    fun createShortcut(){
        val preference = PreferenceManager.getDefaultSharedPreferences(this);
        // 最初の1回だけ作成する
        if(!preference.getBoolean("shortcut",false)) {
            // アプリを起動するインテント
            val launcher_intent = Intent();
            launcher_intent.setClassName(this, localClassName);
            launcher_intent.action = Intent.ACTION_MAIN;
            launcher_intent.addCategory(Intent.CATEGORY_LAUNCHER);

            // ショートカットインテント用のアイコンを取得
            val icon = Intent.ShortcutIconResource.fromContext(this, R.mipmap.ic_launcher);

            // ショートカット用インテント
            val shortcut_intent = Intent();
            shortcut_intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, launcher_intent);
            shortcut_intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "ショートカットタイトル");
            shortcut_intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
            shortcut_intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");

            shortcut_intent.putExtra("duplicate", false); // アイコンを重複して作らない

            // ショートカットの作成
            sendBroadcast(shortcut_intent);

            // ショートカット作成済みであることを設定に記録
            preference.edit().putBoolean("shortcut", true).commit();
        }
    }

「Android : Kotlin : アプリがインストールされたときにショートカットを作成する」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です