【问题标题】:Check for 3rd party app, open-if not install检查第 3 方应用程序,如果未安装则打开
【发布时间】:2011-07-15 17:06:28
【问题描述】:

我正在开发一个类,当用户选择该类时,它应该打开一个应用程序。如果未安装该应用程序,他们将单击“查找”按钮并安装它。

这是我目前所拥有的

public class calc extends Activity {
static final String MARKET_SEARCH_Q_PNAME_PROVIDER = "market://search?q=pname:com.packagename.package";



@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.getpft);
    setTitle("Install Marine PFT?");

    ((Button) findViewById(R.id.Ok)).setOnClickListener(new Openpft());
    ((Button) findViewById(R.id.FindIt)).setOnClickListener(new FindZxingOnclickListener());
}

public class FindZxingOnclickListener implements OnClickListener {
    public void onClick(View v) {
        Intent marketLaunch = new Intent(Intent.ACTION_VIEW);
        marketLaunch.setData(Uri.parse(MARKET_SEARCH_Q_PNAME_PROVIDER));
        startActivity(marketLaunch);
    }}




    };

到目前为止,页面打开并正确搜索应用程序。但是,现在下载了该应用程序,我需要自动跳过此屏幕并打开该应用程序。这是怎么做到的?

【问题讨论】:

    标签: android android-intent actionview


    【解决方案1】:

    不知何故,您正在启动该应用程序。据推测,您有一个 Intent 传递给执行此操作的 startActivity()。如果是这样,您有两个选择:

    1. 只需调用startActivity() 并路由到ActivityNotFoundException catch 块中的上述代码

    2. 使用PackageManagerqueryIntentActivities() 来查看是否有任何东西会响应您的Intent,如果没有,请在不先调用startActivity() 的情况下路由到您的上述代码

    【讨论】:

    • 谢谢你。不过,如果从技术上讲,我有两个要显示的内容视图选项,我还能把它包装起来吗?第一个选项是显示新应用程序。第二种选择是将他们带到他们下载该应用程序的屏幕(如果他们没有该应用程序)。我将如何处理?
    • 另外我不想使用 onclicklistener 来自动启动应用程序。但是我看到意图打开单独应用程序的所有方式都是通过一个按钮 onclicklistener,可以跳过这一步吗?
    • @Jim:“我该如何处理?” -- 使用if() 语句?这是您应用程序中的业务逻辑,而不是我的。 “但我看到意图打开单独应用程序的所有方式都是通过一个按钮 onclicklistener”——您可以从任何类型的活动事件侦听器(例如,onListItemClick())调用startActivity()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 2014-08-23
    • 1970-01-01
    • 2013-02-03
    • 2014-08-21
    • 2015-12-29
    • 2017-02-18
    相关资源
    最近更新 更多