2011-07-15 48 views
0

我正在开发一个当用户选择应打开应用程序的类。如果该应用程序未安装,他们将点击“查找”按钮并安装它。检查第三方应用程序,如果没有安装,请打开

这里是我迄今为止

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); 
    }} 




    }; 

到目前为止页面打开了,它正确地搜索应用程序。然而,现在,该应用程序已下载,我需要自动跳过这个屏幕,只需打开该应用程序。这是如何完成的?

回答

0

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

  1. 只是在ActivityNotFoundExceptioncatch块调用startActivity()和路由到你上面的代码

  2. 使用PackageManagerqueryIntentActivities()看看是否有什么将你Intent回应,如果不,请致电以上代码,不要致电startActivity()

+0

谢谢你。后续,但我仍然可以包装它,如果技术上我有两个内容视图显示选项?第一个选项是显示新的应用程序。第二种选择是将它们带到屏幕上,如果它们没有它,则下载该应用程序。我将如何处理? – Jim

+0

另外我不想使用onclicklistener自动启动应用程序。但是我看到意图打开单独应用程序的所有方式都是通过按钮onclicklistener,该步骤可以跳过吗? – Jim

+0

@Jim:“我会如何处理?” - 使用'if()'语句?这是您的应用中的商业逻辑,而不是我的。 “但我看到意图打开单独应用程序的所有方式都是通过按钮onclicklistener” - 您可以从任何类型的活动事件侦听器(例如'onListItemClick()')调用'startActivity()'。 – CommonsWare

相关问题