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

Xamarin C# for Android : Searching for an App and path

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

我看到使用 PackageManager,您通常可以这样做,但我想改进它。

我知道如果你使用 com.google.chrome 你会发现安装了 chrome 资源管理器, 但是当你简单地寻找 Chrome.

时,这会失败

在某些设备上 Chrome(以及其他应用程序,如 OperaMini 等)未安装为 com.google.chrome

那么,如何找到没有 com.google 且仅使用 Chrome 作为搜索条件的应用程序呢?

简单,只需组合 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; }
    }