Android 4.0 でのショートカットの削除方法

857 views
Skip to first unread message

yoshim

unread,
Aug 8, 2012, 6:39:29 AM8/8/12
to android-g...@googlegroups.com
ショートカットリンクの作成と削除を行うアプリを作成しています。
マニフェストやプログラムを下記のように実装し、
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);
shortcutIntent.setData(Uri.parse("http://XXXXXX"));
// ショートカットを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.setData(Uri.parse("http://XXXXXX"));
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);

トムキャット

unread,
Jun 29, 2014, 12:25:44 AM6/29/14
to android-g...@googlegroups.com
トムキャットです。

こちらにその挙動の報告があります。

https://code.google.com/p/android/issues/detail?id=24188

結論としては4.0以降はダメらしいです。トーストで削除されたとは表示されるものの、再起動するまで反映されないらしいです。


2012年8月8日水曜日 19時39分29秒 UTC+9 yoshim:
Reply all
Reply to author
Forward
0 new messages