天天看點

擷取Android系統分享清單

public List<AppInfoVo> getShareApps(Context context) {
        PackageManager packageManager = context.getPackageManager();
        List<AppInfoVo> appInfoVos = new ArrayList<AppInfoVo>();
        List<ResolveInfo> resolveInfos = new ArrayList<ResolveInfo>();
        Intent intent = new Intent(Intent.ACTION_SEND, null);
        intent.addCategory(Intent.CATEGORY_DEFAULT);
        intent.setType("*/*");
        PackageManager pManager = context.getPackageManager();
        resolveInfos = pManager.queryIntentActivities(intent, PackageManager
                .COMPONENT_ENABLED_STATE_DEFAULT);
        for (int i = 0; i < resolveInfos.size(); i++) {
            AppInfoVo appInfoVo = new AppInfoVo();
            ResolveInfo resolveInfo = resolveInfos.get(i);
            appInfoVo.setAppName(resolveInfo.loadLabel(packageManager).toString());
            appInfoVo.setIcon(resolveInfo.loadIcon(packageManager));
            appInfoVo.setPackageName(resolveInfo.activityInfo.packageName);
            appInfoVo.setLauncherName(resolveInfo.activityInfo.name);
            appInfoVos.add(appInfoVo);
        }
        return appInfoVos;
    }      
public class AppInfoVo {
        private Drawable icon;
        private String appName;
        private String packageName;
        private boolean isSystemApp;
        private long codesize;
        private String launcherName;


        public String getLauncherName() {
            return launcherName;
        }

        public void setLauncherName(String launcherName) {
            this.launcherName = launcherName;
        }

        public long getCodesize() {
            return codesize;
        }

        public void setCodesize(long codesize) {
            this.codesize = codesize;
        }

        public Drawable getIcon() {
            return icon;
        }

        public void setIcon(Drawable icon) {
            this.icon = icon;
        }

        public String getAppName() {
            return appName;
        }

        public void setAppName(String appName) {
            this.appName = appName;
        }

        public String getPackageName() {
            return packageName;
        }

        public void setPackageName(String packageName) {
            this.packageName = packageName;
        }

        public boolean isSystemApp() {
            return isSystemApp;
        }

        public void setSystemApp(boolean isSystemApp) {
            this.isSystemApp = isSystemApp;
        }

    }      

Debug一下appInfoVos

擷取Android系統分享清單

例如檢視QQ空間發表視訊的Activity和包名

擷取Android系統分享清單

常見應用包名

微信朋友圈

“com.tencent.mm”

“com.tencent.mm.ui.tools.ShareToTimeLineUI”

微信朋友

“com.tencent.mm”

“com.tencent.mm.ui.tools.ShareImgUI”

QQ好友

“com.tencent.mobileqq”

“com.tencent.mobileqq.activity.JumpActivity”

QQ空間分享視訊

“com.qzone”

“com.qzonex.module.maxvideo.activity.QzonePublishVideoActivity”