У меня есть этот метод до сих пор, но он пришел как-то не хватаетКак проверить, может ли какое-либо намерение быть обработано из какой-либо деятельности?
, например, у меня есть файл /sdcard/sound.3ga, который возвращает ложь (например, нет никакой активности, которая может обрабатывать этот тип файла) , Но когда я открываю его из файлового менеджера, он открывается с медиаплеером без проблем.
Я думаю, что это намерение не является полным, и мне нужно что-то еще, чтобы убедиться, что переменная handlerExists будет ложной ТОЛЬКО если нет деятельности, которая может справиться с этим намерением
PackageManager pm = getPackageManager();
Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(new File(uriString)).toString());
String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
intent.setDataAndType(Uri.fromFile(new File(uriString)),mimetype);
boolean handlerExists = intent.resolveActivity(pm) != null;
да я сделал, но он возвращает ложь, он работает так же, как мой метод до сих пор :(, он должен быть что-то, что отсутствует – Lukap
Это потому, что вы забыли: intent.setType («text/plain»); –
Что такое флаг 0? – RyPope