一流译、前言:
我們?cè)赼pp中逞怨,有的時(shí)候想跳轉(zhuǎn)到應(yīng)用市場(chǎng),去更新apk或者去評(píng)分福澡。我們就需要在自己本app中跳轉(zhuǎn)到應(yīng)用市場(chǎng)叠赦。
原理十分簡(jiǎn)單,構(gòu)建一個(gè)ACTION_VIEW標(biāo)記的Intent革砸,并給一個(gè)如下結(jié)構(gòu)的 Uri 即可:
//商店中使用包名來(lái)唯一標(biāo)識(shí)區(qū)分應(yīng)用
"market://details?id= "+ getPackageName()
在 Android 平臺(tái)上除秀,正常情況下手機(jī)中的應(yīng)用商店應(yīng)該是 Google Play
但是由于各種你懂我也懂的原因,國(guó)內(nèi)基本上無(wú)法使用 Google Play 服務(wù)业岁。
好在廣泛的第三方應(yīng)用市場(chǎng)大多都實(shí)現(xiàn)了這個(gè)接口鳞仙。
二、使用:
1. 直接跳轉(zhuǎn)就行
//這里開(kāi)始執(zhí)行一個(gè)應(yīng)用市場(chǎng)跳轉(zhuǎn)邏輯笔时,默認(rèn)this為Context上下文對(duì)象
//跳轉(zhuǎn)到應(yīng)用市場(chǎng)棍好,非Google Play市場(chǎng)一般情況也實(shí)現(xiàn)了這個(gè)接口
Uri uri = Uri.parse("market://details?id=" + getPackageName());
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
2. 異常情況
//存在手機(jī)里沒(méi)安裝應(yīng)用市場(chǎng)的情況,跳轉(zhuǎn)會(huì)包異常允耿,做一個(gè)接收判斷
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=" + getPackageName()));
if (intent.resolveActivity(getPackageManager()) != null) {
//可以接收
startActivity(intent);
} else {
//沒(méi)有應(yīng)用市場(chǎng)借笙,我們通過(guò)瀏覽器跳轉(zhuǎn)到Google Play
intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName()));
//這里存在一個(gè)極端情況就是有些用戶瀏覽器也沒(méi)有,再判斷一次
if (intent.resolveActivity(getPackageManager()) != null) {
//有瀏覽器
startActivity(intent);
}
}
需要注意的就是较锡,如果界面跳轉(zhuǎn)失敗业稼,會(huì)拋出異常,因此能否跳轉(zhuǎn)需要進(jìn)行判斷蚂蕴。
3. 總結(jié):
根據(jù)以上低散,同理使用以下Uri進(jìn)行替換:
//跳轉(zhuǎn)到商店搜索界面,并搜索開(kāi)發(fā)者姓名
Uri.parse("market://search?q=pub:Author) Name");
//跳轉(zhuǎn)到商店搜索界面骡楼,并搜索關(guān)鍵詞
Uri.parse("market://search?q=Keyword)");
三熔号、跳轉(zhuǎn)指定應(yīng)用市場(chǎng):
1. 跳轉(zhuǎn)到應(yīng)用寶
//跳轉(zhuǎn)到指定的市場(chǎng),例如騰訊應(yīng)用寶
public void goToTencentMarket() {
Uri uri = Uri.parse("market://details?id=" + getPackageName());
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
goToMarket.setClassName("com.tencent.android.qqdownloader", "com.tencent.pangu.link.LinkProxyActivity");
startActivity(goToMarket);
}
- setClass:跳轉(zhuǎn)到與該工程下的(同一個(gè)Application中的)activity或者service
- setClassName:跳轉(zhuǎn)到不同Applicaiton的activity或者service
2. 國(guó)內(nèi)主要Android應(yīng)用市場(chǎng)包名
- com.tencent.android.qqdownloader 騰訊應(yīng)用寶
- com.qihoo.appstore 360手機(jī)助手
- com.baidu.appsearch 百度手機(jī)助手
- com.xiaomi.market 小米應(yīng)用商店
- com.huawei.appmarket 華為應(yīng)用商店
- com.wandoujia.phoenix2 豌豆莢
- com.dragon.android.pandaspace 91手機(jī)助手
- com.hiapk.marketpho 安智應(yīng)用商店
- com.yingyonghui.market 應(yīng)用匯
- com.tencent.qqpimsecure QQ手機(jī)管家
- com.mappn.gfan 機(jī)鋒應(yīng)用市場(chǎng)
- com.pp.assistant PP手機(jī)助手
- com.oppo.market OPPO應(yīng)用商店
- cn.goapk.market GO市場(chǎng)
- zte.com.market 中興應(yīng)用商店
- com.yulong.android.coolmart 宇龍Coolpad應(yīng)用商店
- com.lenovo.leos.appstore 聯(lián)想應(yīng)用商店
- com.coolapk.market cool市場(chǎng)
參考作者:Leon_hy
鏈接:http://www.reibang.com/p/050dcda2603d
鏈接:https://blog.csdn.net/qq_35678553/article/details/77161036