ショートカットリンクの作成と削除を行うアプリを作成しています。
マニフェストやプログラムを下記のように実装し、
Android4.0や4.0.4などで実行してみたところ、作成は無事に行えました。
しかし削除を実行したところ『ショートカット「ショートカット名」を削除しました』というメッセージは
表示されるものの、実際にはHOME画面にショートカットは残ったままになります。
Android2.3.3や2.3.5では正常に作成と削除が行えているので、コード上の不備は無いと思われるのですが、
4.0以降で何か追加のオプションが必要等、知っていましたらご教授お願いいたします。
/* マニフェストの抜粋 */
<?xml version="1.0" encoding="utf-8"?>
package="XXXX"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
</manifest>
/* ショートカットの作成 */
// ショートカットに持たせるインテントの内容
Intent shortcutIntent = new Intent(Intent.ACTION_VIEW);
// ショートカットをHOMEに作成する
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "ショートカット名");
intent.putExtra("duplicate", false); // 複製禁止
// ショートカット作成を設定して実行する
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
m_ctx.sendBroadcast(intent);
/* ショートカットの削除 */
Intent shortcutIntent = new Intent(Intent.ACTION_VIEW);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "ショートカット名");
intent.putExtra("duplicate", false);
// ショートカット削除を設定して実行する
intent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");
m_ctx.sendBroadcast(intent);