2012-07-23 6 views
12

アンドロイドボタンを作って、既にインストールされていれば他のアプリケーションを起動し、アンドロイドマーケットにはまだインストールしていない場合インストールされていればアンドロイドアプリケーションを起動してインストールしないとアンドロイドマーケットに行く方法

これを行う方法?コード

String packageName = "app_package_name"; 
Intent intent = getPackageManager().getLaunchIntentForPackage(packageName); 

if(intent == null) { 
    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id="+packageName)); 
} 
    startActivity(intent); 
+1

http://stackoverflow.com/questions/9480045/how-to-download-adobe-reader-programatically-if-not-exists/9480211#9480211 – user370305

答えて

26

使用これで試してみてください -

ちょうどあなたのレイアウトで1 Buttonを作成します。そして、条件以下そのボタンのチェックのonClickの -

Button calculateButton = (Button) findViewById(R.id.buttonCalculate); 
    calculateButton.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) 
      { 
       if(check() == true) 
       { 
        PackageManager pack = this.getPackageManager(); 
        Intent app = pack.getLaunchIntentForPackage(packagename); 
        startActivity(app); 
       }else 
       { 
        Intent marketIntent = new Intent(Intent.ACTION_VIEW); 
        marketIntent.setData(Uri.parse("market://details?id=packagename")); 
        startActivity(marketIntent); 
       } 
     } 
    }); 
} 

public boolean check() 
{ 
    try{ 
     ApplicationInfo info = getPackageManager().getApplicationInfo("packagename", 0); 
     return true; 
    } catch(PackageManager.NameNotFoundException e){ 
     return false; 
    } 
} 
+1

1ナイスショット...プリティ・1を見 – Praveenkumar

+0

本当に本当にいいです..ありがとうたくさんのVivek – SopheakVirak

+0

'startActivity(intentMarket)'がない理由を説明するのは親切でしょうか?前もって感謝します。 –

0

があるインテントフィルタにより、他のアプリケーションのパッケージ名とアクティビティ名を使用してコードからのアプリケーションのアクティビティを呼び出したりしてみてください、あなたが必要とする他のアプリケーションに属しています電話する...

Intent newIntent; 
    newIntent = new Intent("other application Package name","class name"); 
    startActivity(newIntent); 

起動しているかどうかを確認します。それが起動されている場合は

//、そうでない場合は、GoogleにUIをナビゲートする意向を再生するもの

//をしません。

Intent googlePlay = new Intent(Intent.ACTION_VIEW); 
    googlePlay.setData(Uri.parse("market://details?id="+"other application package name")); 
    startActivity(googlePlay); 
関連する問題