2016-01-04 43 views
0

目標:我需要找到,如果安裝在設備上的應用程序,並找到它的路徑..Xamarin C#爲Android:尋找一個應用程序和路徑

我看到使用PackageManager,您可以在一般的做到這一點,但我想改進它。

我知道如果您使用com.google.chrome,您可以找到安裝的Chrome瀏覽器, ,但是當您僅僅尋找Chrome時會失敗。

在某些設備Chrome(和其他應用,如OperaMini等)不被安裝作爲com.google.chrome

那麼如何找到一個沒有com.google的應用程序,並且只使用Chrome作爲搜索條件呢?

回答

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

輝煌! ..那麼幹淨,如此緊湊..謝謝你分享你的知識! – Migz