Ceci est mon code pour lire le fichier audio 3gp enregistré
Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
Uri data = Uri.parse(path);
intent.setDataAndType(data, "audio/mp3");
startActivity(intent);
Mais lors de son exécution dans mon appareil HTC (Android 2.2 Froyo) montre une exception:
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)
Dans la tablette Galaxy, cela fonctionne bien. Comment puis-je résoudre ce problème?
android
android-2.2-froyo
galaxy-tab
Jennifer
la source
la source
Réponses:
Les adresses URL doivent être précédées de http: //
lève une ActivityNotFoundException. Si vous ajoutez "http: //", le problème est résolu.
Peut-être pas aider OP, mais j'ai fini ici à la recherche de la même exception et peut-être que cela aide les autres.
la source
file://
manquait dans mon cas jusqu'à ce que je changeUri.parse()
pourUri.fromFile()
.Uri.parse(Uri.decode(encodedString))
Si vous obtenez également cette erreur lorsque vous essayez d'ouvrir une page Web à partir de votre application Android, c'est parce que votre URL ressemble à ceci:
www.google.com
au lieu de:
https://www.google.com
ouhttp://www.google.com
ajoutez ce code à votre activité / fragment:
passez simplement votre URL à
openWebPage()
. S'il est déjà précédé dehttps://
ouhttp://
alors vous êtes prêt à partir, sinon l'instruction if gère cela pour vousla source
C'est la bonne façon de procéder.
vous devez importer import android.webkit.MimeTypeMap;
la source
Pour moi, lorsque j'essaye d'ouvrir un lien:
J'ai eu la même erreur
android.content.ActivityNotFoundException: No Activity found to handle Intent
* Leçon: assurez-vous qu'il existe au moins une application qui gère l'intention que vous appelez *
la source
Réponse de Maragues m'a fait vérifier la sortie logcat. Apparaît que le chemin que vous passez à Uri doit être préfixé avec
file:/
Puisqu'il s'agit d'un chemin local vers votre stockage.
Vous voudrez peut-être aussi regarder le chemin lui-même.
Le point de montage semble apparaître deux fois dans le chemin complet.
la source
Si vous ne transmettez pas l'URL Web correcte et que vous n'avez pas de navigateur, ActivityNotFoundException se produit, vérifiez donc ces exigences ou gérez l'exception explicitement. Cela peut résoudre votre problème.
la source
Vérifiez cette méthode utile:
URLUtil.guessUrl(urlString)
Cela rend google.com -> http://google.com
la source
J'ai eu ce même problème, donc je regardais l'intention qui est enregistrée dans LogCat. Lors de la visualisation de la vidéo à partir de la galerie, elle a appelé le même intent Intent.View, mais a défini le type sur "audio / *", ce qui a résolu mon problème et ne nécessite pas l'importation de MimeTypeMap. Exemple:
la source
Cette exception avait-elle même changé en
Mais merci à @Stan, je suis devenu une solution très simple mais utile:
Uri.fromFile(File(content))
au lieuUri.parse(path)
J'espère que cela aidera quelqu'un à résoudre son problème.
la source
Si vous avez ces erreurs dans votre logcat, utilisez ce code, cela m'aide
aussi
la source
Essayez d'abord ce code dans AndroidManifest
Si ce code fonctionne, tout va bien. Mais sinon. Essayez ce code à partir de la classe à partir de laquelle vous souhaitez transmettre les données ou l'URI.
J'espère que cela résoudra votre problème. Je vous remercie
la source
J'ai deux idées:
Premièrement: si vous voulez lire un fichier 3gp, vous devez utiliser les types mime "audio / 3gpp" ou "audio / mpeg"
Et deuxièmement: vous pouvez essayer d'utiliser la méthode
setData(data)
pourintent
sans aucun type mime.J'espère que cela t'aides.
la source
Cette exception peut se déclencher lorsque vous gérez
Deep linking
ou URL pour un navigateur, si aucune valeur par défaut n'est installée. En cas de lien profond, il se peut qu'aucune application ne soit installée pour traiter un lien au formatmyapp://mylink
.Vous pouvez utiliser la solution tangerine pour API jusqu'à 29:
Pour l'API> = 30, consultez intent.resolveActivity renvoie null dans l'API 30 .
la source
essayez de vérifier avec n'importe quelle URL comme ajouter
https://www.google.com
dans le chemin et démarrer l'activité si cela fonctionne que vous ajoutez un mauvais chemin
la source