是否有可能知道用户是否在xamarin android应用程序中打开/查看过文档?

时间:2018-10-26 11:45:22

标签: android xamarin xamarin.forms document

我需要检查用户是否查看了文档(pdf,xls,docx,ppt..etc)。在某些用户的设备中,没有用于打开某些文档类型的应用程序。在这种情况下,我需要知道用户没有打开/查看文档。

这是使用xamarin表单开发的android应用。使用下面的代码打开文档。如果有用于打开相应文档的应用程序,则此方法工作正常。但是,如果没有可打开该文档的应用程序,它将显示空白活动,标题为“选择应用程序:”

    ...other code here...

  var chooserIntent = Intent.CreateChooser(intent, "Choose an Application:");
                activity.StartActivityForResult(chooserIntent, 10);

1 个答案:

答案 0 :(得分:0)

您可以通过Android文件MIME type进行检查。请参考以下代码

Dictionary<string, string> matchArray = new Dictionary<string, string>();

matchArray.Add(".3gp", "video/3gpp");
matchArray.Add(".apk", "application/vnd.android.package-archive");
matchArray.Add(".doc", "application/msword");
matchArray.Add(".gif", "image/gif");
matchArray.Add(".wps", "application/vnd.ms-works");
matchArray.Add(".pdf", "application/pdf");
matchArray.Add(".ppt", "application/vnd.ms-powerpoint");
matchArray.Add(".png", "image/png");
//... 

public void OpenFileByPath(Context context, string path)
{
  if (context == null || path == null)
    return;

  string type = "";
  foreach (string key in matchArray.Keys)
   {

     if (path.Contains(key))
       {
          type = matchArray[key];
          break;
       }
    }

  if (type == "")
    {
       //there is no app can open the file ,do some you want 
    }
  else
    {
       // open your file 
    }
}

您可以通过从互联网上搜索来添加有关MIME类型的更多键值