目标:我需要查找设备上是否安装了应用并找到它的路径..
我看到使用com.google.chrome
,您可以执行此操作,但我想对其进行优化。
我知道如果您使用Chrome
,您可以找到已安装的chrome explorer,
但是当你只看Chrome
时,这就失败了。
在某些设备上Opera
(以及其他应用,例如Mini
,com.google.chrome
等)未安装为com.google
。
那么如何找到没有Chrome
的应用并且只使用DataGridView
作为搜索条件?
答案 0 :(得分:1)
简单,只需合并PackageManager
和ApplicationInfo
,然后检查应用名称是否包含您的搜索字符串。以下是一些示例代码:
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; }
}