//取得 已安装apk的包名
List<ApplicationInfo> applicationInfos = pm.getInstalledApplications(0);
Iterator<ApplicationInfo> iterator = applicationInfos.iterator();
while(iterator.hasNext()){
ApplicationInfo applicationInfo = iterator.next();
String packageName = applicationInfo.packageName;// 包名
String packageLabel = pm.getApplicationLabel(applicationInfo).toString();//获取label
System.out.println("packageName:" + packageName + "," + packageLabel);
}
// 判断包是否存在,并遍历包中所有的activity
String pkgName = "com.google.zxing.client.android";
String aiName = "com.google.zxing.client.android.CaptureActivity";
PackageInfo pi = pm.getPackageInfo(pkgName, PackageManager.GET_ACTIVITIES);
if(pi!=null){
ActivityInfo ai = null;
for(int i=0; i < pi.activities.length; i++){
ai=pi.activities[i];
if(ai.name.equals(aiName))
break;
}
if(ai!=null){
Intent intent = new Intent();
intent.setClassName(pkgName,aiName);
startActivityForResult(intent, 1000);
}
else
Toast.makeText(this, "未找到要引用的类", Toast.LENGTH_SHORT).show();
}
else
Toast.makeText(this, "请先安装ZXing条码扫描", Toast.LENGTH_SHORT).show();