Можно ли узнать, открыт ли / просмотрен пользователем документ в приложении xamarin android? - PullRequest
0 голосов
/ 26 октября 2018

Мне нужно проверить, просматривается ли документ пользователем (pdf, xls, docx, ppt..etc) или нет.На некоторых устройствах пользователя нет приложений для открытия некоторых типов документов.В таких случаях мне нужно знать, что документ не открывается и не просматривается пользователем.

Это приложение для Android, разработанное с использованием форм xamarin.Используемый ниже код для открытия документа.Это работает нормально, если есть приложение для открытия соответствующего документа.Но если нет приложений для открытия документа, он показывает пустое действие с заголовком «Выберите приложение:»

    ...other code here...

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

1 Ответ

0 голосов
/ 30 октября 2018

Вы можете проверить это с помощью файла 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, выполнив поиск в Интернете

...