Androidアプリからホーム画面にショートカットを作る方法です.(Android SDK 1.6)
ホーム画面にショートカットを作成する
ホーム画面にショートカットを作るといっても,詳しくはいくつか状況があると思います.
- (A) HOMEで長押ししたときに出る「ショートカット」からアプリが呼び出されて,作成する (例:Gmailのラベル.ApiDemosのApp/Launcher Shortcuts)
- (B) アプリの動作中に,選択中のアイテムなどをショートカット化してHOMEに置く (例:標準ブラウザのブックマーク長押し)
ここで説明するのは,(B)の方です.ちなみに(A)の方は以下の記事が参考になると思います.
この(A)と(B)を混同してしまうと,話がごちゃごちゃになるのでご注意...
実装例
// Activityに以下を実装する
// ショートカットに持たせるインテントの内容
// ここでは MainActというクラスをACTION_VIEWで呼び出すという内容
Intent shortcutIntent = new
Intent(Intent.ACTION_VIEW);
shortcutIntent.setClassName(this
, MainAct.class
.getName());
shortcutIntent.setData(Uri.parse("geo:37.01606,139.39691"
));
// ショートカットをHOMEに作成する
Intent intent = new
Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, pos.name);
Parcelable iconResource = Intent.ShortcutIconResource.fromContext(this
, R.drawable.icon);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"
);
sendBroadcast(intent);
ショートカット作成後に表示される「ショートカットXを作成しました」というtoastは,システムが勝手に出しているようです.
なお,以下のパーミッションが必要です.(実行すればエラーが出るので一発でわかりますが)
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
地図ロイドに組み込むために調査したのですが,たったこれだけのために何時間もかかってしまいました.orz
参考