2013-02-06 2 views

답변

1

현재 설치된 패키지를 가져 오는 방법입니다.

 PackageManager packageManager = null; 
     List<ApplicationInfo> appsList = new ArrayList<ApplicationInfo>(); 
     try { 
      packageManager = getPackageManager(); 
      if (packageManager != null) { 
       appsList = packageManager.getInstalledApplications(0); 
      } 
     } catch (Exception e1) { 
      Log.v("TAG", "This is my error: ", e1); 
     } 

그런 다음 ApplicationInfo 개체 (아이콘, 이름 등)에서 다양한 정보를 검색 할 수 있습니다.

3

이 코드를 살펴보십시오.

package com.example.android.apis.view; 
import android.app.Activity; 
import android.content.Intent; 
import android.content.pm.ResolveInfo; 
import android.os.Bundle; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.GridView; 
import android.widget.ImageView; 
import java.util.List; 
import com.example.android.apis.R; 


public class Grid1 extends Activity { 

GridView mGrid; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    loadApps(); // do this in onresume? 

    setContentView(R.layout.grid_1); 
    mGrid = (GridView) findViewById(R.id.myGrid); 
    mGrid.setAdapter(new AppsAdapter()); 
} 

private List<ResolveInfo> mApps; 

private void loadApps() { 
    Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); 
    mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); 

    mApps = getPackageManager().queryIntentActivities(mainIntent, 0); 
} 

public class AppsAdapter extends BaseAdapter { 
    public AppsAdapter() { 
    } 

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

     if (convertView == null) { 
      i = new ImageView(Grid1.this); 
      i.setScaleType(ImageView.ScaleType.FIT_CENTER); 
      i.setLayoutParams(new GridView.LayoutParams(50, 50)); 
     } else { 
      i = (ImageView) convertView; 
     } 

     ResolveInfo info = mApps.get(position); 
     i.setImageDrawable(info.activityInfo.loadIcon(getPackageManager())); 

     return i; 
    } 


    public final int getCount() { 
     return mApps.size(); 
    } 

    public final Object getItem(int position) { 
     return mApps.get(position); 
    } 

    public final long getItemId(int position) { 
     return position; 
    } 
} 
} 

소스 API 데모 ..

관련 문제