項目中需要跳轉Google Play商店
原理十分簡單,構建一個ACTION_VIEW標記的Intent,并給一個如下結構的 Uri 即可:
"market://details?id=" + getPackageName() //商店中使用包名來唯一標識區分應用
在 Android 平臺上,正常情況下手機中的應用商店應該是 Google Play
但是由于各種你懂我也懂的原因,國內基本上無法使用 Google Play 服務。
好在廣泛的第三方應用市場大多都實現了這個接口。
代碼注釋很詳細:
//這里開始執行一個應用市場跳轉邏輯,默認this為Context上下文對象
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=" + getPackageName())); //跳轉到應用市場,非Google Play市場一般情況也實現了這個接口
//存在手機里沒安裝應用市場的情況,跳轉會包異常,做一個接收判斷
if (intent.resolveActivity(getPackageManager()) != null) { //可以接收
startActivity(intent);
} else { //沒有應用市場,我們通過瀏覽器跳轉到Google Play
intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName()));
//這里存在一個極端情況就是有些用戶瀏覽器也沒有,再判斷一次
if (intent.resolveActivity(getPackageManager()) != null) { //有瀏覽器
startActivity(intent);
}
}
需要注意的就是,如果界面跳轉失敗,會拋出異常,因此能否跳轉需要進行判斷。
根據以上,同理使用以下Uri進行替換:
Uri.parse("market://search?q=pub:Author Name"); //跳轉到商店搜索界面,并搜索開發者姓名
Uri.parse("market://search?q=Keyword"); //跳轉到商店搜索界面,并搜索關鍵詞