Получить список установленных пользователем приложений в Xamarin - PullRequest
0 голосов
/ 04 октября 2018

Как я могу получить список приложений , установленных только пользователем

До сих пор я пытался отфильтровать только системные приложения, но не повезло, это дает мне список всех приложений, включая системныеapps.

InstalledApp Class

public  class InstalledApps
{
    public string appName { get; set; }
    public string packageName { get; set; }
    public string icon { get; set; }

}

Получение списка

  public List<InstalledApps> getInstalledApp()
    {
        List<InstalledApps> installedApps = new List<InstalledApps>();

        try
        {




            var apps = Android.App.Application.Context.PackageManager.GetInstalledApplications(PackageInfoFlags.MetaData);
            if (apps!=null)
            {
                if (apps.Count>0)
                {
                    for (int i = 0; i < apps.Count; i++)
                    {

                        var info = ctx.PackageManager.GetPackageInfo(apps[i].PackageName, 0);
                        if (isSystemPackage(info)==false)
                        {
                            InstalledApps installapps = new InstalledApps()
                            {
                                appName = apps[i].LoadLabel(Android.App.Application.Context.PackageManager),
                                packageName = apps[i].PackageName,
                                icon = apps[i].LoadIcon(Android.App.Application.Context.PackageManager).ToString()
                            };
                            installedApps.Add(installapps);
                        }

                    }
                    //demo
                    makeToast($"total installed  {apps.Count}");
                    return installedApps;
                }
            }





        }
        catch (Exception ex)
        {

         //do something with error

        }
        return installedApps;
    }

Проверка наличия системного приложенияили нет

  private bool isSystemPackage(PackageInfo pkgInfo)
    {
        return ((pkgInfo.ApplicationInfo.Flags & ApplicationInfoFlags.System) != 0);
    }

Пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...