Android 跳轉(zhuǎn)應(yīng)用商店下載APP

1.添加在在需要判斷的地方頁(yè)面,任意位置

/**

? ? * 判斷應(yīng)用市場(chǎng)是否存在的方法

? ? *

? ? * @param context

? ? * @param packageName

? ? *

? ? * 主流應(yīng)用商店對(duì)應(yīng)的包名

? ? * com.android.vending? ? -----Google Play

? ? * com.tencent.android.qqdownloader? ? -----應(yīng)用寶

? ? * com.qihoo.appstore? ? -----360手機(jī)助手

? ? * com.baidu.appsearch? ? -----百度手機(jī)助

? ? * com.xiaomi.market? ? -----小米應(yīng)用商店

? ? * com.wandoujia.phoenix2? ? -----豌豆莢

? ? * com.huawei.appmarket? ? -----華為應(yīng)用市場(chǎng)

? ? * com.taobao.appcenter? ? -----淘寶手機(jī)助手

? ? * com.hiapk.marketpho? ? -----安卓市場(chǎng)

? ? * cn.goapk.market? ? ? ? -----安智市場(chǎng)

? ? */

? ? public static boolean isAvilible(Context context, String packageName) {

? ? ? ? // 獲取packagemanager

? ? ? ? final PackageManager packageManager = context.getPackageManager();

? ? ? ? // 獲取所有已安裝程序的包信息

? ? ? ? List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);

? ? ? ? // 用于存儲(chǔ)所有已安裝程序的包名

? ? ? ? List<String> pName = new ArrayList<String>();

? ? ? ? // 從pinfo中將包名字取出

? ? ? ? if (pinfo != null) {

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

? ? ? ? ? ? ? ? String pf = pinfo.get(i).packageName;

? ? ? ? ? ? ? ? pName.add(pf);

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? // 判斷pName中是否有目標(biāo)程序的包名,有true,沒(méi)有false

? ? ? ? return pName.contains(packageName);

? ? }

2.得到版本號(hào)

public static StringversionName;

PackageManager manager = getPackageManager();

try {

// 得到版本號(hào)

? ? PackageInfo info = manager.getPackageInfo(this.getPackageName(),0);

versionName = info.versionName;

}catch (NameNotFoundException e) {

e.printStackTrace();

}

3.和后臺(tái)傳過(guò)來(lái)的版本號(hào)進(jìn)行對(duì)比

if (!FragmentAty.versionName.equals(version)) {

//不一樣

appUpdate();

}

4.判斷是否有包名

private String a="com.yizuwang.app.pho.ui";

private void appUpdate() {

if(isAvilible(this,a)){//判斷應(yīng)用市場(chǎng)是否有包名

launchAppDetail(this,a,"");

}else{//沒(méi)有,用瀏覽器打開(kāi)地址進(jìn)行下載

?Uri uri = Uri.parse(url);

? Intent intent =new Intent(Intent.ACTION_VIEW, uri);

? startActivity(intent);

? ? }

Toast.makeText(this,"立即更新",Toast.LENGTH_LONG).show();

}


5.跳轉(zhuǎn)更新

/**

* 啟動(dòng)到應(yīng)用商店app詳情界面

*

* @param appPkg? ? 目標(biāo)App的包名

* @param marketPkg 應(yīng)用商店包名 ,如果為""則由系統(tǒng)彈出應(yīng)用商店列表供用戶選擇,否則調(diào)轉(zhuǎn)到目標(biāo)市場(chǎng)的應(yīng)用詳情界面

*/

public static void launchAppDetail(Context mContext, 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);

mContext.startActivity(intent);

}catch (Exception e) {

e.printStackTrace();

}

}

4.未安裝市場(chǎng)應(yīng)用,那么根據(jù)后臺(tái)返回的地址,用瀏覽器打開(kāi)地址進(jìn)行下載

Uri uri = Uri.parse(url);

? Intent intent =new Intent(Intent.ACTION_VIEW, uri);

? startActivity(intent);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容