Accesos directos de pantalla de inicio con iconos

Estoy tratando de crear un atajo de pantalla de inicio programáticamente en android. Hasta ahora he podido agregar el atajo sí mismo con el código siguiente:

Intent shortcutIntent = new Intent(); shortcutIntent.setClassName(mContext, mContext.getClass().getName()); shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); shortcutIntent.putExtra("someParameter", "HelloWorld 123"); Intent addIntent = new Intent(); addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Shortcut Name 123"); addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, R.drawable.icon); addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); mContext.sendBroadcast(addIntent); 

Sin embargo, el acceso directo se instala utilizando el icono predeterminado en mis recursos. Sin embargo, me gustaría buscar iconos de mi sitio web y agregar un icono al acceso directo. Primero, necesito descargar este atajo. Bajo la suposición de que he hecho esto, y el icono está en el sdcard por ejemplo, no he podido establecer un icono dibujable.

El código siguiente:

 try { Uri contentURI = Uri.parse("http://mnt/sdcard/mytest/test.png"); ContentResolver cr = mContext.getContentResolver(); InputStream in; in = cr.openInputStream(contentURI); BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize=8; Bitmap thumb = BitmapFactory.decodeStream(in,null,options); Intent shortcutIntent = new Intent(); shortcutIntent.setClassName(mContext, mContext.getClass().getName()); shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); shortcutIntent.putExtra("someParameter", "HelloWorld 123"); Intent addIntent = new Intent(); addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Shortcut Name 123"); addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, thumb); addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); mContext.sendBroadcast(addIntent); } catch (FileNotFoundException e) { e.printStackTrace(); } 

El archivo definitivamente existe y he verificado que el uso de shell de adb … Este pedazo de código muestra el siguiente error:

 10-13 16:11:31.184: WARN/System.err(23273): java.io.FileNotFoundException: No content provider: /mnt/sdcard/mytest/test.png 

¿Qué estoy haciendo mal?

Gracias

Está intentando obtener mapa de bits de recursos locales (mediante el proveedor de contenido).

Para descargar Bitmap desde el servidor debe seguir esto:

¿Por qué no se descarga este mapa de bits de imagen en Android?

Parece que su aplicación no puede acceder a test.png. Asegúrese de que existe. Tal vez usted puede comenzar con el almacenamiento local en lugar de tarjeta sd.

  • Volver a la pantalla de inicio después de terminar Actividad
  • Entender la implementación de bloqueo personalizado en Android mediante la técnica de reemplazo de pantalla de inicio
  • Comprueba si la aplicación web se agrega a la pantalla de inicio en Android
  • Pantalla Splash de Android para la clase "Aplicación"
  • ¿Cómo puedes depurar "agregar a la pantalla de inicio" en Chrome en android?
  • Widget de pantalla de inicio, listView muestra "Cargando"
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.