studio - manual de programacion android pdf
Cómo agregar acceso directo a la pantalla de inicio en Android mediante programación (1)
Android nos proporciona una clase de intención com.android.launcher.action.INSTALL_SHORTCUT
que se puede usar para agregar accesos directos a la pantalla de inicio. En el siguiente fragmento de código creamos un acceso directo a la actividad MainActivity con el nombre HelloWorldShortcut.
Primero necesitamos agregar el permiso INSTALL_SHORTCUT
al INSTALL_SHORTCUT
XML de manifiesto de Android.
<uses-permission
android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
El método addShortcut()
crea un nuevo acceso directo en la pantalla de inicio.
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);
}
Observe cómo creamos el objeto ShortcutIntent que contiene nuestra actividad objetivo. Este objeto de intento se agrega a otro intento como EXTRA_SHORTCUT_INTENT
.
Finalmente transmitimos la nueva intención. Esto agrega un acceso directo con el nombre mencionado como EXTRA_SHORTCUT_NAME
e icono definido por EXTRA_SHORTCUT_ICON_RESOURCE
.
También ponga este código para evitar múltiples accesos directos:
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);
}
Esta pregunta ya tiene una respuesta aquí:
Este problema surgió cuando estaba desarrollando una aplicación para Android. Pensé en compartir el conocimiento que reuní durante mi desarrollo.