2016-01-04 4 views
0

ЦЕЛЬ: Мне нужно найти, если приложение установлено на устройстве и найти его путь ..Xamarin C# для Android: Searching для приложения и путь

я вижу, используя PackageManager, вы можете сделать это в целом, но и Я бы хотел его доработать.

Я знаю, если вы используете com.google.chrome, вы можете найти установленный chrome explorer, , но это не удается, если вы просто посмотрите на Chrome.

На некоторых устройствах Chrome (и других приложениях, таких как Opera, Mini и т.д.) не установлен, как com.google.chrome.

Так как можно найти приложение без com.google и просто использовать Chrome в качестве критерия поиска?

ответ

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; } 
    } 
+0

Brilliant !! .. Так чисто, так компактно .. Спасибо, что поделились своими знаниями !! – Migz

 Смежные вопросы

  • Нет связанных вопросов^_^