title: get foreground application icon convert to base64
body: <p>I'm trying to get the foreground applications icon and convert it to base64.  I can get the foreground application's name, but I can't get the icon. When I encode it, I get a string but it is not the icon. I'm not sure where my error is.  Here is my code</p>
  
  <pre><code>public class RunningServices {
      private static Context context;
      private static String ACTIVITY_SERVICE = "activity";
  
      public RunningServices(Context myContext){
          context = myContext;
      }
      public static RunningAppProcessInfo getRunningServices(){
          RunningAppProcessInfo result = null, info = null;
          String currentApplication;
          ActivityManager am = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE);
          Drawable icon = null;
  
          PackageManager pm = context.getPackageManager();
          List &lt;RunningAppProcessInfo&gt; l = am.getRunningAppProcesses();
          Iterator &lt;RunningAppProcessInfo&gt; i = l.iterator();
          while(i.hasNext()){
              info = i.next();
              if(info.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND){
                  try {
                      CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));
                      currentApplication= c.toString();
                      icon = pm.getApplicationIcon(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));
                      System.out.println(currentApplication);
                      System.out.println(icon);
  
                  } catch (NameNotFoundException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
                  break;
          }
          }
          encodeIcon(icon);
          return result;
  }
      public static void encodeIcon(Drawable icon){
          String appIcon64 = new String();
          Drawable ic = icon;
  
          if(ic !=null){
          Bitmap bitmap = ((BitmapDrawable)ic).getBitmap();                
          ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); 
         // bitmap.compress(CompressFormat.PNG, 0, outputStream); 
          byte[] bitmapByte = outputStream.toByteArray();
          bitmapByte = Base64.encode(bitmapByte,Base64.DEFAULT);
          System.out.println(bitmapByte);
          }
  
  }
  
  }
  </code></pre>
  
  <p>Thanks in advance for your help!</p>