как предупредить, если приложение уже установлено в Android - PullRequest
0 голосов
/ 21 марта 2012

Как предупредить, если приложение уже установлено в Android, если нет, как предоставить ссылку на Android Market ???
Я пытался здесь

Здесь, в цикле For мне нужно выйти

  public void onClick(View v) 
    { 
          final PackageManager pm = getPackageManager();
           //here i get set of installed apps
         List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

      for (ApplicationInfo packageInfo : packages) 
       {
            //how do i check for installed package with clicked package

          String data=packageInfo.packageName;

          if(data.equals("com.bb"))
          {
            String TAG ="MyActivity";
            Log.d(TAG, "Installed package :" + packageInfo.packageName);
            Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName)); 
            Toast.makeText(Listing.this, "You have Installed this Package:com.bb" , Toast.LENGTH_SHORT).show();  

          }

                //if the package is not installed, do this

                  else 
          {


            String dictionary=items[position];
            Toast.makeText(Listing.this, dictionary , Toast.LENGTH_SHORT).show();


            if(dictionary.equalsIgnoreCase("Acronyms"))
            {
                String dictionary2="MAcronyms";
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=com." + dictionary2));
                startActivity(intent);
             }
                    }
              }   
             }

проблема в том, что цикл все еще работает, если, если условие не выполнено (например, в 55 раз он входит в другой блок)

Ответы [ 2 ]

1 голос
/ 21 марта 2012

Попробуйте очистить-> построить, а затем следующий код-

public void onClick(View v) 
{ 
    final PackageManager pm = getPackageManager();
    //here i get set of installed apps
    List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

    for (ApplicationInfo packageInfo : packages) 
    {
        //how do i check for installed package with clicked package

        String data=packageInfo.packageName;

        if(data.equals("com.bb"))
        {
            String TAG ="MyActivity";
            Log.d(TAG, "Installed package :" + packageInfo.packageName);
            Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName)); 
            Toast.makeText(Listing.this, "You have Installed this Package:com.bb" , Toast.LENGTH_SHORT).show();  
            break;
        }else{//if the package is not installed, do this


            String dictionary=items[position];
            Toast.makeText(Listing.this, dictionary , Toast.LENGTH_SHORT).show();


            if(dictionary.equalsIgnoreCase("Acronyms"))
            {
                String dictionary2="MAcronyms";
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=com." + dictionary2));
                startActivity(intent);
            }
        }
    }   
}
0 голосов
/ 22 марта 2012
     public void onClick(View v) 
      {

     String str = "aaa";

     if(package1(str)==1)
     {
         Toast.makeText(Listing.this, "You have Installed this Package:aaa" , Toast.LENGTH_SHORT).show();
     }
     else
     {
            String dictionary2="bba";
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=com." + dictionary2));
            startActivity(intent);
     }

  }

     }

public int package1(String str)
{
      int i=0;

      final PackageManager pm = getPackageManager();
        //get a list of installed apps.
      List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

      for (ApplicationInfo packageInfo : packages) 
       {

          String data=packageInfo.packageName;
          if(data.equals(str))
          {
            i=1;

           }
                else
                    {
                   //i=0;

                     }

                 }
                 return i;

              }
...