Androidのホーム画面にアプリへのショートカットを作成する、ということをJavaのプログラムで行いたいのですが、可能ですか？
CC BY-SA 3.0
2017-01-23T04:02:48.703
32069
2017-03-02T02:02:16.660
450
question
android
Androidのホーム画面にアプリへのショートカットを追加したい
[ホーム画面上にショートカットを作成する方法](http://monoist.atmarkit.co.jp/mn/articles/1203/16/news006.html)の記事がありましたので紹介します。

１．マニフェストにパーミッションを追加する

```

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

２．下記のコードを実装する

>
```

>     /** アプリのショートカットを作成 */
>     private void makeAppShortCut(Context con){
>         // アプリケーションを起動するためのIntentを作成
>         // 今回はこのアプリ自身（ShortCutTestActivity）を起動するようにした
>         Intent targetIntent = new Intent( Intent.ACTION_MAIN );
>         targetIntent.setClassName( con,
> "jp.test.shortcut.ShortCutTestActivity" );
>  
>         // ショートカットのタイトルは“APPShortCut”
>         // アイコンにはあらかじめ作成しておいた「tips_icon.png」を使用
>         makeShortCut(con, targetIntent, "APPShortCut", R.drawable.tips_icon
> );
>     }
>     /** ショートカット作成の処理 */
>     private void makeShortCut(Context con, 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);
>  
>         // ショートカットのアイコンとタイトルを指定
>         Parcelable icon = Intent.ShortcutIconResource.fromContext(con,
> iconResource);
>         intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
>         intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, title);
>  
>         // BroadCastを使って、システムにショートカット作成を依頼する
>         con.sendBroadcast(intent);
>     }
>  
```

* * *

また、マニフェストに`intent-filter`で`scheme`が設定されていた場合  
対象のアプリをURLで開くことが可能になりますので、  
WEBリンクを作成する方法でも上記機能を実装することが可能です。
CC BY-SA 3.0
2017-01-23T04:16:01.647
32070
2017-01-23T04:16:01.647
32069
answer