Android ショートカットを作成、既にある場合は作らない方法
ホーム画面にショートカットアイコンを作成するのは、本来ならばユーザーがアプリ一覧から長押しとかでユーザーが行うことですが、最近のアプリでは、アプリ自身がやってくれるのが流行のようです。
ホーム画面にあれば、忘れられる可能性も低くなりますもんね!
下記のURLにあったものを参考にしておりますが、一点、既にショートカットアイコンがある場合に何度も作成してしまうのを避ける処理を入れました。
http://monoist.atmarkit.co.jp/mn/articles/1203/16/news006.html
private void makeAppShortCut(Context context){ // アプリケーションを起動するためのIntentを作成 Intent targetIntent = new Intent(this, MenuActivity.class); targetIntent.setClassName( context, "takuru.driver.MenuActivity" );
makeShortCut(context, targetIntent, getString(R.string.app_name), R.drawable.ic_launcher ); } private void makeShortCut(Context context, Intent targetIntent, String title, int iconResource){ // ショートカット作成依頼のためのIntent Intent intent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); // ショートカットのタップ時に起動するIntentを指定 intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, targetIntent); //これをつけておかないと、すでにホームアイコンがあっても、また作成してしまう intent.putExtra("duplicate", false); Parcelable icon = Intent.ShortcutIconResource.fromContext(context, iconResource); intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, title); // BroadCastを使って、システムにショートカット作成を依頼する context.sendBroadcast(intent); }
ダイアログで、「ショートカットを作成しました」「すでにショートカットがあります」というようなものが出ますので、これが嫌な場合は、インストールした直後のような処理にこれを入れたほうがいいでしょう。