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在您的布局中创建一个。并且,单击该按钮检查以下条件 -

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 回答
0

在onclick里面

@Override
public void onClick(View view){
  try{
    startActivity(getPackageManager().getLaunchIntentForPackage("applicationId"));
  } catch (PackageManager.NameNotFoundException e) {
    startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("https://play.google.com/store/apps/details?id=" + "applicationId")));
 }
}
于 2018-12-02T05:06:51.747 回答