Androidアプリからホーム画面にショートカットを作る方法です.(Android SDK 1.6)

ホーム画面にショートカットを作成する

ホーム画面にショートカットを作るといっても,詳しくはいくつか状況があると思います.
  • (A) HOMEで長押ししたときに出る「ショートカット」からアプリが呼び出されて,作成する (例:Gmailのラベル.ApiDemosのApp/Launcher Shortcuts)

shortcut1.png

  • (B) アプリの動作中に,選択中のアイテムなどをショートカット化してHOMEに置く (例:標準ブラウザのブックマーク長押し)

shortcut2.png

ここで説明するのは,(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

参考


© 2024 KMIソフトウェア