19

Android ボタンを作成し、既にインストールされている場合は他のアプリケーションを起動し、まだインストールされていない場合は Android マーケットに移動できるようにしたいと考えています。

これを行う方法?

よろしく、 ビラック

4

4 に答える 4

35

以下のコードを使用してください

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);
于 2012-07-23T10:34:12.390 に答える
2

これで試してください -

Buttonレイアウトに1 つ作成するだけです。そして、そのボタンの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;
    }
}
于 2012-07-23T10:34:44.820 に答える
0

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

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

起動しているかどうかを確認します。

//起動したら何もしない

//そうでない場合は、UI を Google Play Intent に移動します。

  Intent googlePlay = new Intent(Intent.ACTION_VIEW);
  googlePlay.setData(Uri.parse("market://details?id="+"other application package name"));
  startActivity(googlePlay);
于 2012-07-23T10:35:11.460 に答える