PackageManager获取应用列表
来源:互联网 发布:名师辅导软件 编辑:程序博客网 时间:2024/05/29 09:04
package com.pack;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.SimpleAdapter.ViewBinder;
import android.widget.TextView;
public class PackageActivity extends Activity {
/** Called when the activity is first created. */
PackageManager pm;
List<PackageInfo> appInfo;
ArrayList<HashMap<String, Object>> appArray = null;
ListView lv = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lv = (ListView) this.findViewById(R.id.listView);
pm = this.getPackageManager();
while (it.hasNext()) {
PackageInfo app = (PackageInfo) it.next();
// if ((app.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
HashMap map = new HashMap();
map.put("icon", app.applicationInfo.loadIcon(pm));
map.put("appName", app.applicationInfo.loadLabel(pm));
map.put("packageName", app.packageName);
if (appArray == null)
appArray = new ArrayList();
appArray.add(map);
//}
}
SimpleAdapter adapter = new SimpleAdapter(this, appArray,
R.layout.packitem, new String[] { "icon", "appName",
"packageName" }, new int[] { R.id.icon, R.id.appName,
R.id.packageName });
lv.setAdapter((ListAdapter) adapter);
adapter.setViewBinder(new ViewBinder(){
public boolean setViewValue(View view,Object data,String textRepresentation){
if(view instanceof ImageView && data instanceof Drawable){
ImageView iv=(ImageView)view;
iv.setImageDrawable((Drawable)data);
return true;
}
else if(view instanceof TextView && data instanceof String){
TextView tv = (TextView)view;
tv.setText((String)data);
return true;
}
else return false;
}
});
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String packageName = (String) appArray.get(arg2).get(
"packageName");
Intent intent = pm.getLaunchIntentForPackage(packageName);
Log.i("PackageActivity", "open intent " + packageName);
if (intent != null) {
startActivity(intent);
} else {
Log.e("PackageActivity", "startActivity error2.");
}
}
});
}
}
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.SimpleAdapter.ViewBinder;
import android.widget.TextView;
public class PackageActivity extends Activity {
/** Called when the activity is first created. */
PackageManager pm;
List<PackageInfo> appInfo;
ArrayList<HashMap<String, Object>> appArray = null;
ListView lv = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lv = (ListView) this.findViewById(R.id.listView);
pm = this.getPackageManager();
appInfo = pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
//getInstalledPackages(flags):flage的参数有多种
Iterator<PackageInfo> it = appInfo.iterator();while (it.hasNext()) {
PackageInfo app = (PackageInfo) it.next();
// if ((app.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
HashMap map = new HashMap();
map.put("icon", app.applicationInfo.loadIcon(pm));
map.put("appName", app.applicationInfo.loadLabel(pm));
map.put("packageName", app.packageName);
if (appArray == null)
appArray = new ArrayList();
appArray.add(map);
//}
}
SimpleAdapter adapter = new SimpleAdapter(this, appArray,
R.layout.packitem, new String[] { "icon", "appName",
"packageName" }, new int[] { R.id.icon, R.id.appName,
R.id.packageName });
lv.setAdapter((ListAdapter) adapter);
adapter.setViewBinder(new ViewBinder(){
public boolean setViewValue(View view,Object data,String textRepresentation){
if(view instanceof ImageView && data instanceof Drawable){
ImageView iv=(ImageView)view;
iv.setImageDrawable((Drawable)data);
return true;
}
else if(view instanceof TextView && data instanceof String){
TextView tv = (TextView)view;
tv.setText((String)data);
return true;
}
else return false;
}
});
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String packageName = (String) appArray.get(arg2).get(
"packageName");
Intent intent = pm.getLaunchIntentForPackage(packageName);
Log.i("PackageActivity", "open intent " + packageName);
if (intent != null) {
startActivity(intent);
} else {
Log.e("PackageActivity", "startActivity error2.");
}
}
});
}
}
- PackageManager获取应用列表
- 利用PackageManager获取应用版本号
- 通过PackageManager获取应用包的信息
- 使用PackageManager来获取应用信息
- Android Apk 应用信息获取之 PackageManager
- 异步获取已安装程序列表(PackageManager+AsyncTask)
- PackageManager--获取应用程序信息,权限管理获取应用
- Android 获取应用系统程序的包名 PackageManager.
- iOS获取应用列表
- 获取IOS应用列表
- android获取应用列表
- Android获取应用列表
- packageManager 获取package信息
- PackageManager获取版本号
- 应用信息PackageManager
- PackageManager的应用
- Android得到系统已安装应用程序包列表方法 自定义ListView显示 PackageManager的使用
- 【PackageManager】Android获取已安装应用信息(图标,名称,版本号,包)
- SVM学习笔记(3)LIBSVM中的核函数及其参数
- 反应网站的一些数据指标
- Eclipse 快捷键冲突
- android动画
- Java学习笔记32:Spring整合mybatis使用
- PackageManager获取应用列表
- 解决undefined reference to `__aeabi_uidivmod'、 `__aeabi_uidiv'错误
- Linux设备驱动之I2C架构分析
- C++对象内存布局
- list_for_each_entry/list_entry/container_of
- linux命令散记
- 如何用JAVA生成注册序列号
- Linux新手生存笔记[0]——写在前面
- java web中乱码问