2011-07-15 13 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()が渡されます。その場合は、次の2つの選択肢があります。

  1. をちょうど何かがあなたのIntentへの対応、そして場合だろうかどうかを確認するためにActivityNotFoundExceptioncatchブロックであなたの上記のコードに

  2. 使用PackageManagerqueryIntentActivities()startActivity()とルートを呼び出しますあなたは上記のコードには電話をかけずに移動しますstartActivity()最初

+0

ありがとうございます。フォローアップも、技術的に表示するコンテンツビューの2つのオプションがある場合は、それをラップすることはできますか?最初のオプションは、新しいアプリケーションを表示することです。 2番目の方法は、アプリを持っていない場合にアプリをダウンロードする画面にそれらを持って行くことです。私はそれをどのように扱うだろうか? – Jim

+0

また、私はonclicklistenerを使って自動的にアプリを起動したくありません。しかし、別々のアプリケーションを開くという意図は、ボタンonclicklistener経由で、そのステップをスキップできますか? – Jim

+0

@ジム:「どうしたらいい? - 'if()'ステートメントを使いますか?これはあなたのアプリのビジネスロジックであり、私のものではありません。しかし、別のアプリケーションを開く意図は、ボタンonclicklistenerを介して行われます。あらゆる種類のアクティビティイベントリスナー(たとえば、onListItemClick())からstartActivity()を呼び出すことができます。 – CommonsWare

関連する問題