Android实现自定义分享功能
效果图如下:
需求指定应用分享至图片中的5个应用,手机上未安装显示为灰色,点击打开应用市场;安装了点击打开。
在手机上只安装了微信

主要代码如下:
/** * 查询所有支持分享的应用信息 * * @param context * @return */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");PackageManager pManager = context.getPackageManager();mApps = pManager.queryIntentActivities(intent, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);return mApps;}/** * 得到应用列表 * * @return */private List<AppInfo> getShareAppList() {List<AppInfo> shareAppInfos = new ArrayList<AppInfo>();PackageManager packageManager = context.getPackageManager();List<ResolveInfo> resolveInfos = getShareApps(context);if (null == resolveInfos) {return null;}else {for (ResolveInfo resolveInfo : resolveInfos) {AppInfo appInfo = new AppInfo();appInfo.setAppPkgName(resolveInfo.activityInfo.packageName);appInfo.setAppLauncherClassName(resolveInfo.activityInfo.name);appInfo.setAppName(resolveInfo.loadLabel(packageManager).toString());appInfo.setAppIcon(resolveInfo.loadIcon(packageManager));shareAppInfos.add(appInfo);}}return shareAppInfos;}