android PackageManager的使用如何获开第三方应用程序(包)的信息,求大神指
我只写出了系统的应用程序(包)的信息,第三方的没有出来,怎么办,求解
public class MainActivity extends Activity {
List 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 getData() {
List listAppInfos = new ArrayList();
PackageManager pm = getPackageManager();
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
List 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;
}
}
} |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|