Este é o meu código para reproduzir o arquivo 3gp de áudio gravado
Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
Uri data = Uri.parse(path);
intent.setDataAndType(data, "audio/mp3");
startActivity(intent);
Mas ao executá-lo em meu dispositivo HTC (Android 2.2 Froyo), mostra uma exceção:
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)
No tablet Galaxy está funcionando bem. Como posso resolver esse problema?
android
android-2.2-froyo
galaxy-tab
Jennifer
fonte
fonte
Respostas:
Os endereços de URL devem ser precedidos por http: //
lança uma ActivityNotFoundException. Se você acrescentar "http: //", o problema foi resolvido.
Pode não ajudar o OP, mas acabei aqui procurando a mesma exceção e talvez ajude outras pessoas.
fonte
file://
estava faltando no meu caso até que mudeiUri.parse()
paraUri.fromFile()
.Uri.parse(Uri.decode(encodedString))
Se você também está recebendo este erro ao tentar abrir uma página da web a partir de seu aplicativo Android, é porque seu url se parece com este:
www.google.com
ao invés de:
https://www.google.com
ouhttp://www.google.com
adicione este código à sua atividade / fragmento:
apenas passe seu url para
openWebPage()
. Se já estiver prefixado comhttps://
ouhttp://
então você está pronto para prosseguir, caso contrário, a instrução if trata disso para vocêfonte
Esta é a maneira certa de fazer isso.
você precisa importar import android.webkit.MimeTypeMap;
fonte
Para mim, ao tentar abrir um link:
Eu tenho o mesmo erro
android.content.ActivityNotFoundException: No Activity found to handle Intent
* Lição: verifique se há pelo menos um aplicativo que lida com o intent que você está chamando *
fonte
A resposta de Maragues me fez verificar a saída do logcat. Parece que o caminho que você passa para Uri precisa ser prefixado com
file:/
Uma vez que é um caminho local para o seu armazenamento.
Você também pode querer olhar para o próprio caminho.
O ponto de montagem parece aparecer duas vezes no caminho completo.
fonte
Se você não passar o URL correto da web e não tiver um navegador, ActivityNotFoundException ocorre, portanto, verifique esses requisitos ou trate a exceção explicitamente. Isso pode resolver seu problema.
fonte
Verifique este método útil:
URLUtil.guessUrl(urlString)
Isso torna google.com -> http://google.com
fonte
Eu tive o mesmo problema, então estava olhando para a intenção que está registrada no LogCat. Ao visualizar o vídeo da Galeria, ele chamou a mesma intenção Intent.View, mas definiu o Tipo como "audio / *", o que corrigiu meu problema e não requer a importação de MimeTypeMap. Exemplo:
fonte
Se essa exceção tivesse mudado para
Mas obrigado a @Stan, tornei a solução muito simples, mas útil:
Uri.fromFile(File(content))
em vez deUri.parse(path)
Espero que ajude alguém a resolver o problema.
fonte
Se você tiver esses erros no seu logcat, use esses códigos para me ajudar
Além disso
fonte
Primeiro tente este código dentro de AndroidManifest
Se este código funcionar, tudo bem. Mas senão. Tente este código de qual classe você deseja passar os dados ou uri.
Espero que isso resolva seu problema. Obrigado
fonte
Tenho duas ideias:
Primeiro: se você quiser reproduzir um arquivo 3gp, você deve usar os tipos MIME "audio / 3gpp" ou "audio / mpeg"
E segundo: você pode tentar usar o método
setData(data)
paraintent
sem nenhum tipo MIME.Espero que isto ajude.
fonte
Essa exceção pode surgir quando você manipula
Deep linking
ou URL para um navegador, se não houver um padrão instalado. No caso de links diretos, pode não haver nenhum aplicativo instalado que possa processar um link no formatomyapp://mylink
.Você pode usar a solução tangerina para API de até 29:
Para API> = 30, consulte intent.resolveActivity retorna nulo na API 30 .
fonte
tente verificar com qualquer URL, como adicionar
https://www.google.com
no caminho e iniciar a atividade se funcionar do que você está adicionando o caminho errado
fonte