Estoy tratando de instalar un paquete de íconos en mi lanzador personalizado, he leído esta nota Cómo instalar un paquete de íconos pero no puedo entender cómo usar esa clase, esto es lo que hice:
IconPackManager ic = new IconPackManager(); HashMap<String, IconPackManager.IconPack> map = new HashMap<String, IconPackManager.IconPack>(ic.getAvailableIconPacks(false)); Iterator it = map.entrySet().iterator(); Drawable d = null; String packName = null; IconPackManager.IconPack packIcon = null; while (it.hasNext()) { Map.Entry pair = (Map.Entry)it.next(); packName = (String)pair.getKey(); packIcon = (IconPackManager.IconPack)pair.getValue(); d = packIcon.getDrawableIconForPackage(packName, iconDrawable); setIcon(d); }Resuelto con esto:
String packName = null; IconPackManager.IconPack packIcon = null; IconPackManager ic = new IconPackManager(); HashMap<String, IconPackManager.IconPack> map = ic.getAvailableIconPacks(true); Iterator it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry pair = (Map.Entry)it.next(); packName = (String)pair.getKey(); //Get icon pack name (app package) packIcon = (IconPackManager.IconPack)pair.getValue(); //Get icons if(packIcon.getDrawableIconForPackage("YourTargetPackageName", yourStandardIcon) != null) { //Your own method for set icon setIcon(packIcon.getDrawableIconForPackage("YourTargetPackageName", yourStandardIcon)); }else{ //Your own method for set icon setIcon(yourStandardIcon); } }Esto funciona solo si alguno de los siguientes paquetes está instalado,
1) ¿Está instalado?
org.adw.launcher.THEMES com.gau.go.launcherex.themegetAvailableIconPacks debe devolver el tamaño de HashMap> 0
2) ¿está por debajo de devolver un sorteo válido o nulo?
d = packIcon.getDrawableIconForPackage(packName, iconDrawable);El uso es incorrecto en su caso.
Está iterando los nombres de los paquetes de los proveedores de iconos de tiro.
d = packIcon.getDrawableIconForPackage(packName, iconDrawable); //means //d = packIcon.getDrawableIconForPackage("org.adw.launcher.THEMES",conDrawable)por lo tanto, sin la instalación de los temas anteriores desde Google Play, solo devuelve los elementos de diseño predeterminados.