1. ホーム
  2. android

[解決済み] 携帯版アンドロイドでGoogle Playストアのリンクを開く

2023-04-04 13:44:43

質問

他のアプリのリンクを最新のアプリの中に入れていて、そのように開いています。

Uri uri = Uri.parse("url");
Intent intent = new Intent (Intent.ACTION_VIEW, uri); 
startActivity(intent);

このコードは、ブラウザ版Google Play Storeを開きます。

携帯電話から開こうとすると、ブラウザを使うかgoogle playを使うか聞かれ、2番目を選ぶとモバイル版のgoogle play storeが開きます。

どうしてこのようなことが一度に起こるのか、教えていただけないでしょうか。つまり、私に尋ねるのではなく、携帯電話から直接開いている間に表示されているモバイル版の Google Play を直接開くということです。

どのように解決するには?

指定された market プロトコルを使用します。

final String appPackageName = "com.example"; // Can also use getPackageName(), as below
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));

マーケットがインストールされていないデバイス(例えばエミュレータ)では、クラッシュすることに留意してください。したがって、私は次のようなものを提案します。

final String appPackageName = getPackageName(); // getPackageName() from Context or Activity object
try {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
} catch (android.content.ActivityNotFoundException anfe) {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + appPackageName)));
}

を使いながら getPackageName() から Context またはそのサブクラスとすることで、一貫性を持たせることができます(ありがとうございます cprcrack !). マーケットインテントの詳細はこちらでご覧いただけます。 リンク .