PackageManager.getApplicationIcon () che restituisce l'icona predefinita?

C'è un modo per sapere se il Drawable che sto tornando da getApplicationIcon () è un'icona predefinita / incorporata o no?

Ad esempio, ho diverse applicazioni installate sul mio emulatore. "Adobe Reader" ha un'icona fornita da Adobe. D'altra parte, "com.android.gesture.builder" e "Sample Soft Keyboard" hanno un'icona Android generica. getApplicationIcon () per questi due pacchetti restituito diversi oggetti BitmapDrawable, ma l'esecuzione di getBitmap () su questi due oggetti restituì lo stesso object Bitmap (android.graphics.Bitmap@401a7df8).

  • Utilizzo di windowTranslucentStatus con CollapsingToolbarLayout
  • Come aggiungere text sulla logging video?
  • Android postDelayed funziona ma non può metterlo in un ciclo?
  • C'è un modo per utilizzare uno ViewStub all'interno di un RecyclerView?
  • Le size dello schermo e la dimensione dello schermo di Samsung S I9000 di Android
  • Errore: Imansible trovare: com.android.support:support-v4.20.0.+
  • L'unica idea che ho finora è di fare qualcosa come How to preview R.drawable. * Immagini e prendere tutte le risorse android.R.drawable, creare Drawables da loro e controllare per vedere se Bitmap return da getApplicationIcon ( ) corrisponde a ciascuna di esse. Quello è piuttosto sub-ottimale, però.

    Grazie!

  • exception durante l'utilizzo della libreria ksoap2 per android
  • Android Host API di Android: dimensione del buffer di trasferimento di massa
  • NullPointerException quando si aggiunge un elemento all'elenco
  • Android / ORMLite Inserisci row con ID
  • Hai bisogno di leggere i sensori android davvero veloci
  • Differenza tra android: id, android: nome e nome nei file XML di Android
  • One Solution collect form web for “PackageManager.getApplicationIcon () che restituisce l'icona predefinita?”

    Ho appena capito questo. C'è un metodo PackageManager.getDefaultActivityIcon () che restituisce un disegno. Se la Bitmap di Drawable corrisponde all'icona dell'applicazione Bitmap di Drawable, allora è l'icona predefinita.

    PackageManager pm = context.getPackageManager(); Drawable icon = pm.getApplicationIcon(apk.package_name); Drawable default_icon = pm.getDefaultActivityIcon(); if (icon instanceof BitmapDrawable && default_icon instanceof BitmapDrawable) { BitmapDrawable icon_bd = (BitmapDrawable)icon; Bitmap icon_b = icon_bd.getBitmap(); BitmapDrawable default_bd = (BitmapDrawable)pm.getDefaultActivityIcon(); Bitmap default_b = default_bd.getBitmap(); if (icon_b == default_b) { // It's the default icon } } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.