获取手机安装的全部应用的示例教程

android用sharepreference保存输入框中的内容

http://www.eoeandroid.com/thread-199222-1-1.html

Android之ScrollView嵌套ListView

http://www.eoeandroid.com/thread-198859-1-1.html

android根据View的不同状态更换不同的背景

http://www.eoeandroid.com/thread-198029-1-1.html

package com.isoftstone.apk_demo;

 

import android.app.Activity; 

import android.app.ProgressDialog; 

import android.content.Intent; 

import android.os.Bundle; 

import android.view.View; 

import android.widget.Button;

 

public class APK_DemoActivity extends Activity implements android.view.View.OnClickListener{

 

    /** Called when the activity is first created. */

 

        public Intent mIntent;

        static ProgressDialog pd;

 

    @Override

 

    public void onCreate(Bundle savedInstanceState) {

 

        super.onCreate(savedInstanceState); 

        setContentView(R.layout.main);

        Button button=(Button)findViewById(R.id.button1);

         button.setOnClickListener(this);

 

       

    }

        @Override

 

        public void onClick(View v) { 

                // TODO Auto-generated method stub

 

                Intent intent=new Intent(this,main.class); 

                

                Dialog(); 

                startActivity(intent);                 

        }

          

           public void Dialog(){                                        

 

                    pd = new ProgressDialog(APK_DemoActivity.this);

            pd.setMessage("亲! 正在扫描中哦....");

                    pd.show();

 

           }

 }

 
package com.isoftstone.apk_demo;

 



import java.util.ArrayList; 

import java.util.HashMap; 

import java.util.List; 

import android.app.Activity; 

import android.app.ProgressDialog; 

import android.content.Context; 

import android.content.Intent; 

import android.content.pm.ResolveInfo; 

import android.os.Bundle; 

import android.view.View; 

import android.widget.AdapterView; 

import android.widget.Button; 

import android.widget.ListView; 

import android.widget.TextView;

 



public class main extends Activity implements  android.view.View.OnClickListener{

 

    /** Called when the activity is first created. */

 

        public Intent mIntent; 

        private ProgressDialog pd; 

        int i=0;

 

        public List<ResolveInfo> installApps = null;// 本机已经安装程序列表 

        private ListView lv_content;// 内容显示区域 

        public static final int installWhat = 1;// 安装程序列表 
public static final int appPermissionWhat = 5;// 某个程序的权限页面处理 Context context; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main0);
Button button
=(Button)findViewById(R.id.button1); button.setOnClickListener(this); try { handleInstall(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 处理本机安装程序 * * @throws Exception */ private void handleInstall() throws Exception { // 1.设置操作按钮可见(扫描已安装程序) // 3.得到本机安装应用程序 if (installApps == null) { mIntent = new Intent(Intent.ACTION_MAIN, null); mIntent.addCategory(Intent.CATEGORY_LAUNCHER); installApps = getPackageManager().queryIntentActivities(mIntent, 0); } List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();// 将本机安装程序收集 for (ResolveInfo info : installApps) { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("name", info.loadLabel(this.getPackageManager()).toString()); map.put("packageName", info.activityInfo.packageName); map.put("img", info.loadIcon(this.getPackageManager())); list.add(map); } setTitle("共安装" + installApps.size() + "个程序");// 设置标题 // 3.将程序显示到页面上 lv_content = (ListView) this.findViewById(R.id.listView1); SearchAdapter adapter = new SearchAdapter(this, list, R.layout.list_content_main, new String[] { "name", "packageName", "img" }, new int[] { R.id.activityInfo_name, R.id.activityInfo_packageName, R.id.activityInfo_img });// 自定义适配器 lv_content.setAdapter(adapter); } @Override public void onClick(View v) { // TODO Auto-generated method stub finish(); APK_DemoActivity.pd.cancel(); } }
package com.isoftstone.apk_demo;

 

import java.util.HashMap; 

import java.util.List; 

import java.util.Map;

import android.content.Context; 

import android.graphics.Bitmap; 

import android.graphics.Canvas; 

import android.graphics.Color; 

import android.graphics.PixelFormat; 

import android.graphics.drawable.Drawable; 

import android.view.LayoutInflater; 

import android.view.View; 

import android.view.ViewGroup; 

import android.widget.CheckBox; 

import android.widget.Checkable; 

import android.widget.ImageView; 

import android.widget.SimpleAdapter; 

import android.widget.TextView;

 

/** 

* 自定义Adapter 

* 

* @author machao 

* @mail zeusmc.163.com 

* 

*/

 

public class SearchAdapter extends SimpleAdapter {

 

        private Map<Integer, View> viewMap = new HashMap<Integer, View>();

 

        private int[] mTo; 

        private String[] mFrom; 

        private ViewBinder mViewBinder;

        private List<? extends Map<String, ?>> mData;

        private int mResource;

        private LayoutInflater mInflater;

 

        public SearchAdapter(Context context, List<? extends Map<String, ?>> data,int resource, String[] from, int[] to) {

 

                super(context, data, resource, from, to);

 

                mData = data;

                 mResource = resource;

                 mFrom = from; 

                mTo = to;

 

                mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

        }

 

        public View getView(int position, View convertView, ViewGroup parent) {

 

                return createViewFromResource(position, convertView, parent, mResource); 

        }

 

        private View createViewFromResource(int position, View convertView,ViewGroup parent, int resource) {

 

                View rowView = this.viewMap.get(position);

 

                if (rowView == null) {

 

                        rowView = mInflater.inflate(resource, null);

 

                        final int[] to = mTo; 

                        final int count = to.length; 

                        final View[] holder = new View[count];

 

                        for (int i = 0; i < count; i++) {

 

                                holder[i] = rowView.findViewById(to[i]);

                         }

 

                        rowView.setTag(holder); 

                        bindView(position, rowView); 

                        viewMap.put(position, rowView);

 

                } 

                return rowView; 

        }

 

        @SuppressWarnings("unchecked")

 

        private void bindView(int position, View view) {

 

                final Map dataSet = mData.get(position);

                 if (dataSet == null) {

 

                        return;

 

                }

 

                final ViewBinder binder = mViewBinder; 

                final View[] holder = (View[]) view.getTag(); 

                final String[] from = mFrom; 

                final int[] to = mTo;

                 final int count = to.length;

 



                for (int i = 0; i < count; i++) {

 

                        final View v = holder[i];

 

                        if (v != null) {

 

                                final Object data = dataSet.get(from[i]);

 

                                String urlText = null; 



                                if (data == null) {

 

                                        urlText = "";

 

                                } else {

 

                                        urlText = data.toString();

 

                                }

                                boolean bound = false;

 

                                if (binder != null) {

 

                                        bound = binder.setViewValue(v, data, urlText);

 

                                }

                                if (!bound) {

 

                                        if (v instanceof CheckBox) {

 

                                                ((CheckBox) v).setText(data.toString());

 

                                        } else if (v instanceof Checkable) {

 

                                                if (data instanceof Boolean) {

 

                                                        ((Checkable) v).setChecked((Boolean) data); 

                                                } else {

 

                                                        throw new IllegalStateException(v.getClass()

 

                                                                        .getName()

 

                                                                        + " should be bound to a Boolean, not a "

 

                                                                        + data.getClass());

                                                }

 

                                        } else if (v instanceof TextView) {

 

                                                setViewText((TextView) v, urlText);

 

                                        } else if (v instanceof CheckBox) {

 

                                        } else if (v instanceof ImageView) {

 

                                                if (data instanceof Integer) {

 

                                                        setViewImage((ImageView) v, (Integer) data); 

                                                }

 

                                                if (data instanceof Drawable) {

                                                        setViewImage((ImageView) v, (Drawable) data);

 

                                                } else {

                                                         if (urlText != null && data != null) {

 

                                                                setViewImage((ImageView) v, urlText);

                                                        } else {

 

                                                                

                                                                TextView tv = ((TextView) view .findViewById(R.id.activityInfo_name));

 

                                                                tv.setTextColor(Color.RED);

                                                                tv.setTextSize(18);

                                                                view.setClickable(false); 

                                                                view.setFocusable(false); 

                                                                view.setFocusableInTouchMode(false);

 

                                                        }

 

                                                }

 

                                        } else {

 

                                                throw new IllegalStateException(

 

                                                                v.getClass().getName()

 

                                                                                + " is not a "

 

                                                                                + " view that can be bounds by this SimpleAdapter");

 

                                        }

                                } 

                        }

                } 

        }



        public void setViewImage(ImageView v, int value) {

                v.setImageResource(value);

 

        }



        public void setViewImage(final ImageView v, Drawable drawable) {

 

                Bitmap bitmap = Bitmap .createBitmap(

 

                                                drawable.getIntrinsicWidth(),

 

                                                drawable.getIntrinsicHeight(),

 

                                                drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888

   : Bitmap.Config.RGB_565);

 

                Canvas canvas = new Canvas(bitmap);

                drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable .getIntrinsicHeight());

 

                drawable.draw(canvas);

                ((ImageView) v).setImageBitmap(bitmap);

 

        }



}

 

效果图:

获取手机安装的全部应用的示例教程  

获取手机安装的全部应用的示例教程  

获取手机安装的全部应用的示例教程

下载地址

 

你可能感兴趣的:(安装)