Android軟件中實現跳轉到應用商店進行評分?

Tags: 軟件, 商店,

在Android的App中,經常會見到這樣的功能。從當前app跳轉到一個應用商店且顯示本軟件詳情的頁面,讓用戶給自己的App進行評分,從而提高App的排名。下面介紹該功能的實現。

工具/原料

Eclipse

Android Studio

方法/步驟

編寫跳轉到應用詳情的代碼

package com.caige.utils;

import java.util.ArrayList;

import java.util.List;

import com.a.a.in;

import android.content.ComponentName;

import android.content.Context;

import android.content.Intent;

import android.content.pm.ActivityInfo;

import android.content.pm.PackageInfo;

import android.content.pm.PackageManager;

import android.content.pm.ResolveInfo;

import android.net.Uri;

import android.text.TextUtils;

/**

* Caige

*

* 2015-11-1

*

*

* 應用商店評分工具類

*

*/

public class MarketUtils {

/**

* 獲取已安裝應用商店的包名列表

*

* @param context

* @return

*/

public static ArrayList queryInstalledMarketPkgs(Context context) {

ArrayList pkgs = new ArrayList ();

if (context == null)

return pkgs;

Intent intent = new Intent();

intent.setAction("android.intent.action.MAIN");

intent.addCategory("android.intent.category.APP_MARKET");

PackageManager pm = context.getPackageManager();

List infos = pm.queryIntentActivities(intent, 0);

if (infos == null infos.size() == 0)

return pkgs;

int size = infos.size();

for (int i = 0; i < size; i++) {

String pkgName = "";

try {

ActivityInfo activityInfo = infos.get(i).activityInfo;

pkgName = activityInfo.packageName;

} catch (Exception e) {

e.printStackTrace();

}

if (!TextUtils.isEmpty(pkgName))

pkgs.add(pkgName);

}

return pkgs;

}

/**

* 過濾出已經安裝的包名集合

*

* @param context

* @param pkgs

* 待過濾包名集合

* @return 已安裝的包名集合

*/

public static ArrayList filterInstalledPkgs(Context context,

ArrayList pkgs) {

ArrayList empty = new ArrayList ();

if (context == null pkgs == null pkgs.size() == 0)

return empty;

PackageManager pm = context.getPackageManager();

List 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);

try {

installPkg = installedPkgs.get(i).applicationInfo.packageName;

} catch (Exception e) {

e.printStackTrace();

}

if (TextUtils.isEmpty(installPkg))

continue;

if (installPkg.equals(checkPkg)) {

empty.add(installPkg);

break;

}

}

}

return empty;

}

/**

* 啟動到app詳情界面

*

* @param appPkg

* App的包名

* @param marketPkg

* 應用商店包名 ,如果為""則由系統彈出應用商店列表供用戶選擇,否則調轉到目標市場的應用詳情界面,某些應用商店可能會失敗

*/

public static 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);

AppUtils.getAppContext().startActivity(intent);

} catch (Exception e) {

e.printStackTrace();

}

}

}

主流應用商店對應的包名如下:

com.qihoo.appstore 360手機助手

com.taobao.appcenter 淘寶手機助手

com.tencent.android.qqdownloader 應用寶

com.hiapk.marketpho 安卓市場

cn.goapk.market 安智市場

相關問題答案