Как я могу получить список приложений , установленных только пользователем
До сих пор я пытался отфильтровать только системные приложения, но не повезло, это дает мне список всех приложений, включая системные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);
}
Пожалуйста, помогите.