Android - 跳轉到應用商店進行應用打分功能實現

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/mythmayor/article/details/80279279
轉載請註明出處:https://blog.csdn.net/mythmayor/article/details/80279279

一、前言

一個比較常見的需求是,我們希望更多的人給我們千辛萬苦開發出來的應用進行打分、評價,那麼這時候我們可能希望在應用內部實現這樣的功能。本篇博客將清晰的告訴你如何實現這一功能。

二、實現功能的思路或步驟

1.首先我們肯定要知道自己的應用都上線到哪些平臺(應用商店)了。然後要根據這些已知平臺來進行過濾,過濾出在自己的設備上安裝了哪些。
2.將過濾出的這些應用商店展示給用戶,如果沒有安裝任何相關應用商店則提示用戶“暫無安裝相關應用商店”。
3.用戶點擊了某應用商店之後,則跳轉到該應用商店的APP詳情頁。
4.下面列出了比較核心的代碼,可進行參考。

/**
  * 過濾出已經安裝的包名集合
  *
  * @param context
  * @param pkgs    待過濾包名集合
  * @return 已安裝的包名集合
  */
 public ArrayList<String> getFilterInstallMarkets(Context context, ArrayList<String> pkgs) {
     appInfos.clear();
     ArrayList<String> appList = new ArrayList<String>();
     if (context == null || pkgs == null || pkgs.size() == 0)
         return appList;
     PackageManager pm = context.getPackageManager();
     List<PackageInfo> installedPkgs = pm.getInstalledPackages(0);
     int li = installedPkgs.size();
     int lj = pkgs.size();
     for (int j = 0; j < lj; j++) {
         for (int i = 0; i < li; i++) {
             String installPkg = "";
             String checkPkg = pkgs.get(j);
             PackageInfo packageInfo = installedPkgs.get(i);
             try {
                 installPkg = packageInfo.packageName;

             } catch (Exception e) {
                 e.printStackTrace();
             }
             if (TextUtils.isEmpty(installPkg))
                 continue;
             if (installPkg.equals(checkPkg)) {
                 // 如果非系統應用,則添加至appList,這個會過濾掉系統的應用商店,如果不需要過濾就不用這個判斷
                 if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
                     //將應用相關信息緩存起來,用於自定義彈出應用列表信息相關用
                     AppInfo appInfo = new AppInfo();
                     appInfo.setAppName(packageInfo.applicationInfo.loadLabel(getPackageManager()).toString());
                     appInfo.setAppIcon(packageInfo.applicationInfo.loadIcon(getPackageManager()));
                     appInfo.setPackageName(packageInfo.packageName);
                     appInfo.setVersionCode(packageInfo.versionCode);
                     appInfo.setVersionName(packageInfo.versionName);
                     appInfos.add(appInfo);
                     appList.add(installPkg);
                 }
                 break;
             }

         }
     }
     return appList;
 }
//自定義的AppInfo
public class AppInfo {
    private String appName;
    private Drawable appIcon;
    private String packageName;
    private int versionCode;
    private String versionName;

    public String getAppName() {
        return appName;
    }

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

    public Drawable getAppIcon() {
        return appIcon;
    }

    public void setAppIcon(Drawable appIcon) {
        this.appIcon = appIcon;
    }

    public String getPackageName() {
        return packageName;
    }

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

    public int getVersionCode() {
        return versionCode;
    }

    public void setVersionCode(int versionCode) {
        this.versionCode = versionCode;
    }

    public String getVersionName() {
        return versionName;
    }

    public void setVersionName(String versionName) {
        this.versionName = versionName;
    }
}
/**
  * 跳轉到應用市場app詳情界面
  *
  * @param appPkg    App的包名
  * @param marketPkg 應用市場包名
  */
 public void launchAppDetail(String appPkg, String marketPkg) {
     try {
         if (TextUtils.isEmpty(appPkg))
             return;
         Uri uri = Uri.parse("market://details?id=" + appPkg);
         Intent intent = new Intent(Intent.ACTION_VIEW, uri);
         if (!TextUtils.isEmpty(marketPkg))
             intent.setPackage(marketPkg);
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         startActivity(intent);
     } catch (Exception e) {
         e.printStackTrace();
     }
 }

三、常見的應用商店及其包名

com.tencent.android.qqdownloader //騰訊應用寶
com.qihoo.appstore //360手機助手
com.baidu.appsearch //百度手機助手
com.xiaomi.market //小米應用商店
com.huawei.appmarket //華爲應用商店
com.wandoujia.phoenix2 //豌豆莢
com.dragon.android.pandaspace //91手機助手
com.hiapk.marketpho //安智應用商店
com.yingyonghui.market //應用匯
com.tencent.qqpimsecure //QQ手機管家
com.mappn.gfan //機鋒應用市場
com.pp.assistant //PP手機助手
com.oppo.market //OPPO應用商店
cn.goapk.market //GO市場
zte.com.market //中興應用商店
com.yulong.android.coolmart //宇龍Coolpad應用商店
com.lenovo.leos.appstore //聯想應用商店
com.coolapk.market”); //cool市場
com.meizu.mstore”); //魅族應用商店
cn.ninegame.gamemanager //阿里九遊

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章