この問題は、Android アプリケーションを開発しているときに発生しました。開発中に集めた知識を共有することを考えました。
質問する
48613 次
1 に答える
71
Android は、com.android.launcher.action.INSTALL_SHORTCUT
ホーム画面にショートカットを追加するために使用できるインテント クラスを提供します。次のコード スニペットでは、アクティビティ MainActivity のショートカットを HelloWorldShortcut という名前で作成します。
まずINSTALL_SHORTCUT
、Android マニフェスト xml にアクセス許可を追加する必要があります。
<uses-permission
android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
このaddShortcut()
メソッドは、ホーム画面に新しいショートカットを作成します。
private void addShortcut() {
//Adding shortcut for MainActivity
//on Home screen
Intent shortcutIntent = new Intent(getApplicationContext(),
MainActivity.class);
shortcutIntent.setAction(Intent.ACTION_MAIN);
Intent addIntent = new Intent();
addIntent
.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "HelloWorldShortcut");
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(getApplicationContext(),
R.drawable.ic_launcher));
addIntent
.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
addIntent.putExtra("duplicate", false); //may it's already there so don't duplicate
getApplicationContext().sendBroadcast(addIntent);
}
ターゲット アクティビティを保持する ShortcutIntent オブジェクトを作成する方法に注意してください。このインテント オブジェクトは、別のインテントに として追加されEXTRA_SHORTCUT_INTENT
ます。
最後に、新しいインテントをブロードキャストします。EXTRA_SHORTCUT_NAME
これにより、名前が で示され、アイコンが で定義されたショートカットが追加
されEXTRA_SHORTCUT_ICON_RESOURCE
ます。
複数のショートカットを避けるために、次のコードも入力してください。
if(!getSharedPreferences(Utils.APP_PREFERENCE, Activity.MODE_PRIVATE).getBoolean(Utils.IS_ICON_CREATED, false)){
addShortcut();
getSharedPreferences(Utils.APP_PREFERENCE, Activity.MODE_PRIVATE).edit().putBoolean(Utils.IS_ICON_CREATED, true);
}
于 2013-06-01T13:31:52.160 に答える