猿问

​android PackageManager的使用如何获取第三方应用程序(包)的信息,求大神指点

我只写出了系统的应用程序(包)的信息,第三方的没有出来,怎么办,求解

public class MainActivity extends Activity {

List<AppInfo> appInfos;


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

ListView listView = (ListView) findViewById(R.id.listView1);

appInfos = getData();

AppInfoAdapter aia = new AppInfoAdapter(this);

listView.setAdapter(aia);

}


public List<AppInfo> getData() {

List<AppInfo> listAppInfos = new ArrayList<AppInfo>();

PackageManager pm = getPackageManager();

Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);

List<ResolveInfo> resolveInfos = pm.queryIntentActivities(mainIntent,PackageManager.MATCH_DEFAULT_ONLY);

Collections.sort(resolveInfos,new ResolveInfo.DisplayNameComparator(pm));

if (listAppInfos != null) {

listAppInfos.clear();

for (ResolveInfo reInfo : resolveInfos) {

String activityName = reInfo.activityInfo.name;

String pkgName = reInfo.activityInfo.packageName;

String appLabel = (String) reInfo.loadLabel(pm);

Drawable icon = reInfo.loadIcon(pm);

Intent launchIntent = new Intent();

launchIntent.setComponent(new ComponentName(pkgName,activityName));

AppInfo appInfo = new AppInfo();

appInfo.setAppLabel(appLabel);

appInfo.setPkgName(pkgName);

appInfo.setAppIcon(icon);

listAppInfos.add(appInfo);


}

}

return listAppInfos;

}


static class ViewHoler {

ImageView imageView1;

TextView textView1;

TextView textView2;


}


class AppInfoAdapter extends BaseAdapter {

LayoutInflater miInflater;


public AppInfoAdapter(Context context) {

miInflater = LayoutInflater.from(MainActivity.this);


}


@Override

public int getCount() {

// TODO Auto-generated method stub

return appInfos.size();

}


@Override

public Object getItem(int arg0) {

// TODO Auto-generated method stub

return appInfos.get(arg0);

}


@Override

public long getItemId(int arg0) {

// TODO Auto-generated method stub

return arg0;

}


@Override

public View getView(int arg0, View arg1, ViewGroup arg2) {

ViewHoler viewHoler;

if (arg1 == null) {

viewHoler = new ViewHoler();

arg1 = miInflater.inflate(R.layout.ietm, null);

viewHoler.textView1 = (TextView) arg1

.findViewById(R.id.textView1);

viewHoler.textView2 = (TextView) arg1

.findViewById(R.id.textView2);

viewHoler.imageView1 = (ImageView) arg1

.findViewById(R.id.imageView1);

arg1.setTag(viewHoler);

} else {

viewHoler = (ViewHoler) arg1.getTag();

}

viewHoler.textView1.setText(appInfos.get(arg0).getAppLabel());

viewHoler.textView2.setText(appInfos.get(arg0).getPkgName());

viewHoler.imageView1.setImageDrawable(appInfos.get(arg0)

.getAppIcon());


return arg1;

}


public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is

// present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}


}

}


JAVA小学生之祖
浏览 1536回答 1
1回答

ziom

获取第三方的?这个不行把
随时随地看视频慕课网APP

相关分类

Android
我要回答