2016-03-30 18 views
1

私は2つのアプリを開発しました。私はyoutubeからビデオを見せています。 2番目は、ニュースを表示し、最初のアプリを開く必要があるメニューがあります。アプリがインストールされているかどうかを確認して開くことができますか?

私はインテントで2番目のアプリを開くことを知っていますが、アプリがインストールされているかどうかを確認する方法が見つかりませんでした。

アプリがインストールされているかどうかを確認して、アプリがインストールされているかどうかを確認したり、現在インストールされていない場合はアプリのプレイストアページを開きます。

+1

の可能性のある重複した[アプリケーションはAndroidの内に設置されているかどうか、プログラムで確認する方法は?](http://stackoverflow.com/questions/11392183/how-to-check-programmatically-if- - アプリケーションがインストールされているかどうか - アンドロイドではない) –

+0

[アプリケーションがインストールされているかどうかをプログラムで確認する方法]の複製がありますか?(http://stackoverflow.com/questions/3512228/how-to-check -programatically-if-an-app-is-installed) –

答えて

0

このメソッドを使用します。

public void OpenApp() { 
    PackageManager pm = getPackageManager(); 
    final String LiveAppPackage = "com.example.app"; //Change to your package name. 
    try { 
     pm.getPackageInfo(LiveAppPackage, PackageManager.GET_ACTIVITIES); 
     Intent intent = pm.getLaunchIntentForPackage(LiveAppPackage); 
      if (intent == null) { 
       throw new PackageManager.NameNotFoundException(); 
      } 
      intent.addCategory(Intent.CATEGORY_LAUNCHER); 
      context.startActivity(intent); 

    } 
    catch (PackageManager.NameNotFoundException e) { 
     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
       ActivityThis); 

     DialogInterface.OnClickListener onClickListener = new DialogInterface.OnClickListener(){ 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         if(which == DialogInterface.BUTTON_POSITIVE){ 
           //Try to open Market and if fails, open play store. 
           try { 
            startActivity(new Intent(Intent.ACTION_VIEW, Uri 
              .parse("market://details?id=" 
                + LiveAppPackage))); 
           } catch (android.content.ActivityNotFoundException e1) { 
            startActivity(new Intent(
              Intent.ACTION_VIEW, 
              Uri.parse("https://play.google.com/store/apps/details?id=" 
                + LiveAppPackage))); 
           } 

         } else{ 
          dialog.dismiss(); 
         } 
        } 
       }; 

     alertDialogBuilder.setTitle("App Title") 
       .setCancelable(true) 
       .setPositiveButton("Install", onClickListener); 
     alertDialogBuilder.setNegativeButton("Cancel", onClickListener); 

     alertDialogBuilder.setMessage("Second app is not currently installed\n\nLike to install it?"); //Change to your message 

     // create alert dialog 
     AlertDialog alertDialog = alertDialogBuilder.create(); 

     // show it 
     alertDialog.show(); 
    } 
} 
+0

私にチェックさせてください –

0

アプリがインストールされているかどうか、あなたはこのようPackageManagerを使用することができます知っている: -

private boolean isAppInstalled(String packageName) { 
    PackageManager pm = getPackageManager(); 
    boolean isAppInstalled; 
    try { 
     pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES); 
     isAppInstalled = true; 
    } 
    catch (PackageManager.NameNotFoundException e) { 
     isAppInstalled = false; 
    } 
    return appInstalled; 
} 

この方法を使用するには、2番目のアプリのパッケージ名を渡す必要があります。私はあなたがpackageNameを知っていると思います。休憩は休憩です。 :)

appInstalledOrNot("com.dexter.lab"); 
関連する問題