Come tirare l'elenco di nome App installato, il nome del pacchetto e l'icona disegnabile

Sto cercando di capire come posso implementare questo codice nel mio codice sorgente esistente. Attualmente ho una sorgente che visualizza una vista di elenco di tutte le applicazioni installate e il clic in questione invierà l'intenzione all'applicazione. Ho bisogno di un supporto su come tirare l'icona e aggiungerlo alla vista di elenco.

Qualsiasi aiuto, la modifica del codice sorgente, i collegamenti, ecc. Mi aiuterà a risolvere questo problema.

  • Come evitare i trigger multipli su EditText mentre l'utente sta digitando?
  • Android: come montare il filesystem in RW dall'interno del mio APK? (radicata, naturalmente)
  • Distinguere tra Tablet e Smart phone su ICS
  • App cache iOS PhoneGap
  • Messaggistica istantanea in Android con Google Cloud Messaging
  • Renderscript tramite la libreria di supporto
  • Grazie

    ListInstalledActivitiesActivity

    public class ListInstalledActivitiesActivity extends ListActivity { // Buffer used to store package and class information, and also determine the number of installed activities private ArrayList<String[]> _activitiesBuffer = null; // Buffers for package and class information private String[] _packages = null; private String[] _classs = null; // Index used to fill buffers private int _index = 0; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main3); // Get all installed activities (package and class information for every activity) getAllInstalledActivities(); // Set content to GUI setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, _classs)); ListView lv = getListView(); lv.setTextFilterEnabled(true); // Add listener lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // When clicked, show a toast with the selected activity Toast.makeText( getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); // When clicked, start selected activity, if allowed or possible try { Intent intent = new Intent().setClassName( _packages[position], // package _classs[position]); // class startActivity(intent); } catch (Exception e) { Toast.makeText(getApplicationContext(), "Unable to start selected application.", Toast.LENGTH_SHORT); } } // public void onItemClick(AdapterView<?> parent, View view, int position, long id) }); } // public void onCreate(Bundle savedInstanceState) /* * Get all installed activities */ private void getAllInstalledActivities() { // Initialize activities buffer _activitiesBuffer = new ArrayList<String[]>(); final Intent intent = new Intent(Intent.ACTION_MAIN, null); intent.addCategory(Intent.CATEGORY_LAUNCHER); final List<ResolveInfo> pkgAppsList = getPackageManager().queryIntentActivities( intent, 0); Iterator<ResolveInfo> iterator1 = pkgAppsList.iterator(); while (iterator1.hasNext()) { ResolveInfo resolveInfo = iterator1.next(); String[] buf = new String[] { resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name}; _activitiesBuffer.add(buf); } // while (iterator1.hasNext()) _packages = new String[_activitiesBuffer.size()]; _classs = new String[_activitiesBuffer.size()]; Iterator<String[]> iterator2 = _activitiesBuffer.iterator(); while (iterator2.hasNext()) { String[] buf = iterator2.next(); // Store package information _packages[_index] = buf[0]; // Store class information _classs[_index] = buf[1]; _index++; } // while (iterator2.hasNext()) } // private void getAllInstalledActivities() } 

    main3.xml

      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@+id/android:list" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <!-- <ImageView --> <!--android:id="@+id/ImageView02" --> <!--android:layout_width="fill_parent" --> <!--android:layout_height="wrap_content" --> <!--android:layout_marginBottom="10dp" --> <!--android:paddingBottom="5dp" --> </LinearLayout> 

  • Come posso get più icone per avviare diverse attività in un'applicazione?
  • Collegamento ipertestuale in Android
  • Modalità rigorosa in android 2.2
  • come popolare una listview asynchronous?
  • Come rendere più efficiente il path?
  • Selezione del text su TextView (android 2.2)
  • 2 Solutions collect form web for “Come tirare l'elenco di nome App installato, il nome del pacchetto e l'icona disegnabile”

    Per recuperare i nomi e le icone delle applicazioni installate, è necessario utilizzare la class Package Manager, qui è un frammento di codice che ti permetterà di recuperare il nome e le icone dell'applicazione

      import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; public class FetchApplicationsActivity extends Activity { TextView data; ImageView image1; LinearLayout holdlayout; View l1; private ArrayList results; List<ResolveInfo> list; TextView result; String str = ""; Drawable icon; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); l1 = findViewById(R.id.Layout1); results = new ArrayList(); PackageManager pm = this.getPackageManager(); Intent intent = new Intent(Intent.ACTION_MAIN, null); intent.addCategory(Intent.CATEGORY_LAUNCHER); list = pm.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED); for (ResolveInfo rInfo : list) { str = rInfo.activityInfo.applicationInfo.loadLabel(pm).toString() + "\n"; results.add(rInfo.activityInfo.applicationInfo.loadLabel(pm) .toString()); Log.w("Installed Applications", rInfo.activityInfo.applicationInfo .loadLabel(pm).toString()); icon = rInfo.activityInfo.applicationInfo.loadIcon(pm); holdlayout = new LinearLayout(getApplicationContext()); holdlayout.setOrientation(LinearLayout.HORIZONTAL); data = new TextView(getApplicationContext()); data.setText(str); image1 = new ImageView(getApplicationContext()); image1.setBackgroundDrawable(icon); ((ViewGroup) holdlayout).addView(image1); ((ViewGroup) holdlayout).addView(data); ((ViewGroup) l1).addView(holdlayout); } } } 

    Modifica- È ansible definire il main.xml come,

     ?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:id="@+id/Layout1" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > </LinearLayout> </ScrollView> </LinearLayout> 

    Ho creato delle presentazioni dinamiche, delle Imageviews e dei layouts per mostrare i nomi e le icone. È ansible creare un proprio elenco personalizzato per mostrarlo.

    Edit2- Ecco un buon collegamento su come creare elenchi personalizzati e guardare anche qui . Penso che questi risolveranno la questione.

    Seguo questo tutorial e sono molto utile per me:

    Installare le applicazioni con nome, nome pacchetto, versione e icona

     class PInfo { private String appname = ""; private String pname = ""; private String versionName = ""; private int versionCode = 0; private Drawable icon; private void prettyPrint() { Log.v(appname + "\t" + pname + "\t" + versionName + "\t" + versionCode); } } private ArrayList<PInfo> getPackages() { ArrayList<PInfo> apps = getInstalledApps(false); /* false = no system packages */ final int max = apps.size(); for (int i=0; i<max; i++) { apps.get(i).prettyPrint(); } return apps; } private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) { ArrayList<PInfo> res = new ArrayList<PInfo>(); List<PackageInfo> packs = getPackageManager().getInstalledPackages(0); for(int i=0;i<packs.size();i++) { PackageInfo p = packs.get(i); if ((!getSysPackages) && (p.versionName == null)) { continue ; } PInfo newInfo = new PInfo(); newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString(); newInfo.pname = p.packageName; newInfo.versionName = p.versionName; newInfo.versionCode = p.versionCode; newInfo.icon = p.applicationInfo.loadIcon(getPackageManager()); res.add(newInfo); } return res; } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.