Действия не найдены для работы с Intent: android.intent.action.VIEW

Это мой код для воспроизведения записанного аудиофайла 3gp-файла

Intent intent = new Intent(android.content.Intent.ACTION_VIEW); Uri data = Uri.parse(path); intent.setDataAndType(data, "audio/mp3"); startActivity(intent); 

Но во время работы на моем устройстве HTC (Android 2.2 Froyo) отображается исключение:

 05-04 16:37:37.597: WARN/System.err(4065): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=/mnt/sdcard/mnt/sdcard/audio-android.3gp typ=audio/mp3 } 05-04 16:37:37.597: WARN/System.err(4065): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1567) 05-04 16:37:37.597: INFO/ActivityManager(92): Starting activity: Intent { act=android.intent.action.VIEW dat=/mnt/sdcard/mnt/sdcard/audio-android.3gp typ=audio/mp3 } 05-04 16:37:37.607: WARN/System.err(4065): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1537) 05-04 16:37:37.607: WARN/System.err(4065): at android.app.Activity.startActivityForResult(Activity.java:2858) 05-04 16:37:37.607: WARN/System.err(4065): at android.app.Activity.startActivity(Activity.java:2964) 05-04 16:37:37.607: WARN/System.err(4065): at com.ey.camera.AudioRecorder.playAudio(AudioRecorder.java:244) 05-04 16:37:37.607: WARN/System.err(4065): at com.ey.camera.AudioRecorder$4.onClick(AudioRecorder.java:225) 05-04 16:37:37.607: WARN/System.err(4065): at android.view.View.performClick(View.java:2408) 05-04 16:37:37.607: WARN/System.err(4065): at android.view.View$PerformClick.run(View.java:8817) 05-04 16:37:37.607: WARN/System.err(4065): at android.os.Handler.handleCallback(Handler.java:587) 05-04 16:37:37.607: WARN/System.err(4065): at android.os.Handler.dispatchMessage(Handler.java:92) 05-04 16:37:37.607: WARN/System.err(4065): at android.os.Looper.loop(Looper.java:144) 05-04 16:37:37.607: WARN/System.err(4065): at android.app.ActivityThread.main(ActivityThread.java:4937) 05-04 16:37:37.607: WARN/System.err(4065): at java.lang.reflect.Method.invokeNative(Native Method) 05-04 16:37:37.607: WARN/System.err(4065): at java.lang.reflect.Method.invoke(Method.java:521) 05-04 16:37:37.607: WARN/System.err(4065): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 05-04 16:37:37.607: WARN/System.err(4065): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 05-04 16:37:37.607: WARN/System.err(4065): at dalvik.system.NativeStart.main(Native Method) 

В планшете Galaxy работает нормально. Как я могу решить эту проблему?

    Адресам URL должно предшествовать http: //

     Uri uri = Uri.parse("www.google.com"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); 

    выдает исключение ActivityNotFoundException. Если вы добавите «http: //», проблема будет решена.

     Uri uri = Uri.parse("http://www.google.com"); 

    Может не помочь OP, но я оказался здесь в поисках того же исключения и, возможно, это помогает другим.

    Это правильный способ сделать это.

      try { Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW); File file = new File(aFile.getAbsolutePath()); String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(file).toString()); String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); myIntent.setDataAndType(Uri.fromFile(file),mimetype); startActivity(myIntent); } catch (Exception e) { // TODO: handle exception String data = e.getMessage(); } 

    вам нужно импортировать import android.webkit.MimeTypeMap;

    Если вы также получаете эту ошибку при попытке открыть веб-страницу из своего приложения для Android, это связано с тем, что ваш URL-адрес выглядит так:

    www.google.com

    а не: https://www.google.com или http://www.google.com

    добавьте этот код в свою активность / fragment:

      public void openWebPage(String url) { Uri webpage = Uri.parse(url); if (!url.startsWith("http://") && !url.startsWith("https://")) { webpage = Uri.parse("http://" + url); } Intent intent = new Intent(Intent.ACTION_VIEW, webpage); if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); } } 

    просто передайте свой url для openWebPage() . Если он уже имеет префикс https:// или http:// тогда вам хорошо идти, иначе оператор if обрабатывает это для вас

    Ответ Maragues заставил меня проверить выход logcat. Появляется, что путь, который вы передаете Uri, должен быть префикс
    file:/

    Поскольку это локальный путь к вашему хранилищу.

    Вы также можете слишком взглянуть на путь.

     `05-04 16:37:37.597: WARN/System.err(4065): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=/mnt/sdcard/mnt/sdcard/audio-android.3gp typ=audio/mp3 }` 

    Кажется, что точка монтирования появляется дважды в полном пути.

    Для меня при попытке открыть ссылку:

     Uri uri = Uri.parse("https://www.facebook.com/abc/"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); 

    Я получил ту же ошибку android.content.ActivityNotFoundException: No Activity found to handle Intent

    Проблема была в том, что у меня не было приложения, которое может открывать URL-адреса (то есть браузеры), установленные на моем телефоне. Поэтому после установки браузера проблема была решена.

    * Урок: убедитесь, что есть хотя бы одно приложение, которое обрабатывает намерение, которое вы вызываете *

    У меня была эта же проблема, поэтому я рассматривал намерение, которое зарегистрировано в LogCat. При просмотре видео в Галерее он назвал то же намерение Intent.View, но установил Type в «audio / *», который исправил мою проблему, и не требует импорта MimeTypeMap. Пример:

     Intent intent = new Intent(android.content.Intent.ACTION_VIEW); Uri data = Uri.parse(path); intent.setDataAndType(data, "audio/*"); startActivity(intent); 

    Если вы не передаете правильный веб-URL и не имеете браузер, возникает ActivityNotFoundException, поэтому проверьте эти требования или обработайте исключение явно. Это может решить вашу проблему.

     public static void openWebPage(Context context, String url) { try { if (!URLUtil.isValidUrl(url)) { Toast.makeText(context, " This is not a valid link", Toast.LENGTH_LONG).show(); } else { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); context.startActivity(intent); } } catch (ActivityNotFoundException e) { Toast.makeText(context, " You don't have any browser to open web page", Toast.LENGTH_LONG).show(); } } 

    У меня есть две идеи:

    Во-первых: если вы хотите играть в 3gp-файл, вы должны использовать mime-типы «audio / 3gpp» или «audio / mpeg»

    И второе: вы можете попробовать использовать метод setData(data) для intent без какого-либо типа mime.

    Надеюсь это поможет.

    Если бы это исключение даже изменилось на

    “Аудио / *”

    Но thanx to @Stan i оказалось очень простым, но полезным решением:

    Uri.fromFile(File(content)) вместо Uri.parse(path)

      val intent =Intent(Intent.ACTION_VIEW) intent.setDataAndType(Uri.fromFile(File(content)),"audio/*") startActivity(intent) 

    Надеюсь, это поможет кому-то решить его проблему.

    Interesting Posts

    Поверните текст ярлыка в морском футляре

    Как я могу получить MByte / s или Mbit / s чтение сетевой активности?

    Почему вы должны использовать strncpy вместо strcpy?

    Функция хеша пароля для Excel VBA

    Как сделать проводник в Vista помнить вид папки?

    Могу ли я настроить веб-сайт на Wi-Fi-маршрутизаторе?

    Отладка Android InetAddress.isReachable

    Самый быстрый способ записи огромных данных в текстовый файл Java

    Заполните гистограммы (уменьшение массива) параллельно с OpenMP без использования критического раздела

    Относительная производительность std :: vector vs. std :: list vs. std :: slist?

    Java – Как создать новую запись (ключ, значение)

    Есть ли способ предотвратить установку / обновление для моего жесткого диска с помощью загадочных папок?

    Форматирование двух-двух знаков после запятой

    Домашняя страница google не загружается в iframe

    Что такое Агрегаты и POD и как / почему они являются особенными?

    Давайте будем гением компьютера.