private List<KlAppInfo> getShareAppList() {
List<KlAppInfo> shareAppInfos = new ArrayList<KlAppInfo>();
PackageManager packageManager = getPackageManager();
List<ResolveInfo> resolveInfos = getShareApps(this);
if (null == resolveInfos) {
return null;
} else {
for (ResolveInfo resolveInfo : resolveInfos) {
KlAppInfo appInfo = new KlAppInfo();
String appPkgName = resolveInfo.activityInfo.packageName;
if (appPkgName.equals(mms) || appPkgName.equals(email) || appPkgName.equals(sina) || appPkgName.equals(tencentWB) || appPkgName.equals(tencentQQ) || appPkgName.equals(tencentWX)) {
appInfo.setAppPkgName(resolveInfo.activityInfo.packageName);
//System.out.println("packageName==" + resolveInfo.activityInfo.packageName);
appInfo.setAppLauncherClassName(resolveInfo.activityInfo.name);
appInfo.setAppName(resolveInfo.loadLabel(packageManager).toString());
appInfo.setAppIcon(resolveInfo.loadIcon(packageManager));
shareAppInfos.add(appInfo);
}
}
}
return shareAppInfos;
}
private void CreateShare(String title, String content, Activity activity, KlAppInfo appInfo) {
try {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setComponent(new ComponentName(appInfo.getAppPkgName(), appInfo.getAppLauncherClassName()));
shareIntent.setType("text/plain");
// shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_TITLE, title);
shareIntent.putExtra(Intent.EXTRA_TEXT, content);
shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activity.startActivity(shareIntent);
} catch (Exception e) {
e.printStackTrace();
}
}
private List<ResolveInfo> getShareApps(Context context) {
List<ResolveInfo> mApps = new ArrayList<ResolveInfo>();
Intent intent = new Intent(Intent.ACTION_SEND, null);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setType("text/plain");
// intent.setType("*/*");
PackageManager pManager = context.getPackageManager();
mApps = pManager.queryIntentActivities(intent, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
return mApps;
}
package com.kxe.ca.activity;
import android.graphics.drawable.Drawable;
public class KlAppInfo {
private String AppPkgName;
private String AppLauncherClassName;
private String AppName;
private Drawable AppIcon;
public KlAppInfo() {
super();
}
public KlAppInfo(String appPkgName, String appLauncherClassName) {
super();
AppPkgName = appPkgName;
AppLauncherClassName = appLauncherClassName;
}
public String getAppPkgName() {
return AppPkgName;
}
public void setAppPkgName(String appPkgName) {
AppPkgName = appPkgName;
}
public String getAppLauncherClassName() {
return AppLauncherClassName;
}
public void setAppLauncherClassName(String appLauncherClassName) {
AppLauncherClassName = appLauncherClassName;
}
public String getAppName() {
return AppName;
}
public void setAppName(String appName) {
AppName = appName;
}
public Drawable getAppIcon() {
return AppIcon;
}
public void setAppIcon(Drawable appIcon) {
AppIcon = appIcon;
}
}