适用于Android的Xamarin C#:搜索应用程序和路径

时间:2016-01-04 09:57:26

标签: c# android xamarin android-package-managers

目标:我需要查找设备上是否安装了应用并找到它的路径..

我看到使用com.google.chrome,您可以执行此操作,但我想对其进行优化。

我知道如果您使用Chrome,您可以找到已安装的chrome explorer, 但是当你只看Chrome时,这就失败了。

在某些设备上Opera(以及其他应用,例如Minicom.google.chrome等)未安装为com.google

那么如何找到没有Chrome的应用并且只使用DataGridView作为搜索条件?

1 个答案:

答案 0 :(得分:1)

简单,只需合并PackageManagerApplicationInfo,然后检查应用名称是否包含您的搜索字符串。以下是一些示例代码:

    var searchQuery = "chrome";
    var flag = PackageInfoFlags.Activities;
    var apps = PackageManager.GetInstalledApplications(flag);
    foreach(var app in apps)
    {
        try
        {
            var appInfo = PackageManager.GetApplicationInfo(app.PackageName, 0);
            var appLabel = PackageManager.GetApplicationLabel(appInfo);
            if (appLabel.ToLower().Contains(searchQuery.ToLower()))
            {
                var builder = new AlertDialog.Builder(this);
                builder.SetTitle("Found it!");
                builder.SetMessage(appLabel + " installed at: " + app.SourceDir);
                builder.Show();
            }
        }
        catch (PackageManager.NameNotFoundException e) { continue; }
    }