2016-06-14 2 views
1

У меня есть файл XML на внешнем хранилище, и у меня есть разные приложения, которые могут открыть этот формат файла.Как я могу создать неявное намерение для файла XML

Я собираюсь отправить неявное намерение, как это для того, чтобы найти приложение, чтобы открыть файл XML:

public static boolean isIntentAvailable(Context context, Intent intent) { 
    List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent, 
      PackageManager.MATCH_DEFAULT_ONLY); 
    return !list.isEmpty(); 
} 

Этого метод имеет 2 аргумента. Вопрос в том, как создать intent для второго аргумента?

У меня есть только путь к файлу, который мне нужно открыть, и я попробовал этот путь:

Intent intent = new Intent(**path to file**); 

Но это не работает ... Как я могу создать это намерение правильно?

ответ

3

Вы могли бы сделать что-то вроде этого:

File file = new File("path to file"); 

//checking if the File exists 
if(file.exists()) { 
    Intent intent = new Intent(); 

    intent.setAction(Intent.ACTION_VIEW); 
    intent.setDataAndType(Uri.fromFile(file), "text/xml"); 

    //checking if an Activity exists that can handle this Intent 
    if(intent.resolveActivity(getPackageManager()) != null) { 
     startActivity(intent); 
    } 
}