Romain, I believe I'm doing something simple wrong, the code below can 
install shortcut, but removal silently fails (no exceptions or errors in 
logs except that I see a single line mentioning that ActivityManager 
processed the call).  Tested on Android 2.3.4 phone and on Android 4 tablet 
with same result.
Can you see anything wrong?
TIA.

private void setupShortcut(boolean remove)
{
Intent shortcutIntent = new Intent(getBaseContext(), RuntimeActivity.class);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_TASK_ON_HOME);
    
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, 
_preferences.getString(PREF_APP_NAME, "My Shortcut"));
    
if (remove)
{
 addIntent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");
}
else
{
 addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
     
 addIntent.putExtra("duplicate", false);
    
 File iconFile = new File(getFilesDir(), "icon.png");
 if (iconFile.exists())
 {
 Bitmap icon = BitmapFactory.decodeFile(iconFile.getPath());
 addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon);
 }
 else
 {
 addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, 
     Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher));
 }
}
    
sendBroadcast(addIntent);
}


On Friday, April 10, 2009 12:20:36 PM UTC-4, Romain Guy wrote:
>
> >   1) Is there a way to programmatically delete a home-screen shortcut
> > on Android? I know that it can be done manually but I want to do it in
> > code.
>
> You can use the UNINSTALL_SHORTCUT intent provided by Home.
>
> >   2) Is there a directory where all the contents of the home-screen
> > are stored and, if there is, is there a way to update the contents of
> > this directory?
>
> No, there's no such directory. Home uses a private database that only
> Home can access and manipulate.
>
> -- 
> Romain Guy
> Android framework engineer
> [email protected]
>
> Note: please don't send private questions to me, as I don't have time
> to provide private support.  All such questions should be posted on
> public forums, where I and others can see and answer them
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to