Join the social network of Tech Nerds, increase skill rank, get work, manage projects...
 
  • Display a list of all installed application in an android device

    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 314
    Comment on it

    The PackageManager class is used to get the information of application packages that are currently installed on android device. You can get an instance of PackageManager class using getPackageManager().

     

    Below example will show you how to implement this.

     

    1. XML layouts for the application.

     

    activity_installed_app.xml

    This layout will be used to show the list of all installed application in a device.

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

    list_row.xml

    This layout will be used by adapter class to display application information like application icon, application package name and  application name in ListView.

    <?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="wrap_content" >
    
        <ImageView
            android:id="@+id/app_icon"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:padding="3dp"
            android:scaleType="centerCrop" />
    
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center_vertical"
            android:orientation="vertical"
            android:paddingLeft="5dp" >
    
            <TextView
                android:id="@+id/app_name"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:textStyle="bold" />
    
            <TextView
                android:id="@+id/app_package"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center_vertical" />
        </LinearLayout>
    
    </LinearLayout>

    2. Application Java classes


    InstalledAppActivity.java

    This is the main activity class which is used to initialize and get the list of installed application using PackageManager class. This activity class is also using custom adapter "MyAdapter.java" class for ListView.

    package com.testffmpeg.activity;
    
    import android.content.pm.ApplicationInfo;
    import android.content.pm.PackageManager;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.ListView;
    
    import com.testffmpeg.R;
    import com.testffmpeg.adapter.MyAdapter;
    
    import java.util.List;
    
    public class InstalledAppActivity extends AppCompatActivity {
    
        private ListView listview;
        private MyAdapter myAdapter = null;
        private PackageManager packageManager = null;
        private List<ApplicationInfo> applicationList = null;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_installed_app);
            listview = (ListView) findViewById(R.id.list_view);
            packageManager = getPackageManager();
            //get a list of installed apps.
            applicationList = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
            if(applicationList != null) {
                myAdapter = new MyAdapter(InstalledAppActivity.this, applicationList);
                listview.setAdapter(myAdapter);
            }
        }
    
    }
    

    MyAdapter.java

    package com.testffmpeg.adapter;
    
    import android.content.Context;
    import android.content.pm.ApplicationInfo;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    import com.testffmpeg.R;
    import java.util.List;
    
    public class MyAdapter extends BaseAdapter {
        List<ApplicationInfo> appsList;
        Context mContext;
    
        public MyAdapter(Context context,List<ApplicationInfo> appList){
            this.appsList = appList;
            this.mContext = context;
        }
        @Override
        public int getCount() {
            return appsList.size();
        }
    
        @Override
        public Object getItem(int position) {
            return appsList.get(position);
        }
    
        @Override
        public long getItemId(int position) {
            return position;
        }
    
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View view=convertView;
            if(null == view) {
                view = LayoutInflater.from(mContext).inflate(R.layout.list_row, null);
            }
            ApplicationInfo applicationInfo = appsList.get(position);
            if (null != applicationInfo) {
                TextView appName = (TextView) view.findViewById(R.id.app_name);
                TextView appDescription = (TextView) view.findViewById(R.id.app_package);
                ImageView appIcon = (ImageView) view.findViewById(R.id.app_icon);
    
                appName.setText(applicationInfo.loadLabel(mContext.getPackageManager()));
                appDescription.setText(applicationInfo.packageName);
                appIcon.setImageDrawable(applicationInfo.loadIcon(mContext.getPackageManager()));
            }
            return view;
        }
    }
    
    
    

     

 0 Comment(s)

Sign In
                           OR                           
                           OR                           
Register

Sign up using

                           OR                           
Forgot Password
Fill out the form below and instructions to reset your password will be emailed to you:
Reset Password
Fill out the form below and reset your password: