アプリケーションにショートカットを追加したいのですが、手動で作成したネイティブのショートカットを複製しないようにすることができません(たとえば、アプリケーションメニューのアプリケーションアイコンをホーム画面にドラッグアンドドロップします)。
これが私のコードです:
public void addShortcut(Context context)
{
this.manageShortcutAction(context, "com.android.launcher.action.INSTALL_SHORTCUT");
}
public void deleteShortcut(Context context)
{
this.manageShortcutAction(context, "com.android.launcher.action.UNINSTALL_SHORTCUT");
}
private void manageShortcutAction(Context context, String intentAction)
{
Context applicationContext = context.getApplicationContext();
Intent shortcut = new Intent(intentAction);
ApplicationInfo appInfo = applicationContext.getApplicationInfo();
PackageManager packageManager= applicationContext.getPackageManager();
String applicationName = (String) packageManager.getApplicationLabel(appInfo);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, applicationName); // Shortcut name
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, packageManager.getLaunchIntentForPackage(appInfo.packageName));// Setup activity should be shortcut object
shortcut.putExtra("duplicate", false); // Just create once
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(applicationContext, appInfo.icon));// Set shortcut icon
applicationContext.sendBroadcast(shortcut);
}
そして私のマニフェストには許可が必要です:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
ちなみに、現在MainApplication
拡張中のアプリケーションコードを上書きしてしまいましたApplication
。Intent.EXTRA_SHORTCUT_INTENT
期待する結果なしに、を作成するためのコンポーネントを作成しようとしました。
誰かがアイデアを持っているなら...