2010-07-20 11 views
24

cuando intento adjuntar un archivo a un correo electrónico, obtengo una java.io.FileNotFoundException: no hay salida de logcat del proveedor de contenido. Si alguien pudiera decirme lo que estoy haciendo mal o lo que debería hacer en su lugar, sería genial. Gracias.Qué hacer cuando - java.io.FileNotFoundException: ¿Sin proveedor de contenido?

Éste es cómo agregar los archivos al correo electrónico ..:

Intent sendIntent = new Intent(Intent.ACTION_SEND); 
       sendIntent.putExtra(Intent.EXTRA_STREAM, uri); 
       sendIntent.setType("video/3gp"); 
       sendIntent.setType("video/mp4"); 
       startActivity(sendIntent); 

... y aquí está toda la salida de error Logcat:

07-20 09:15:58.364: ERROR/Mms/media(168): IOException caught while opening or reading stream 
07-20 09:15:58.364: ERROR/Mms/media(168): java.io.FileNotFoundException: No content provider: /sdcard/Video0006.mp4 
07-20 09:15:58.364: ERROR/Mms/media(168):  at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:507) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at android.content.ContentResolver.openInputStream(ContentResolver.java:345) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at com.android.mms.model.MediaModel.initMediaSize(MediaModel.java:268) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at com.android.mms.model.MediaModel.<init>(MediaModel.java:76) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at com.android.mms.model.RegionMediaModel.<init>(RegionMediaModel.java:40) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at com.android.mms.model.VideoModel.<init>(VideoModel.java:55) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at com.android.mms.model.VideoModel.<init>(VideoModel.java:48) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at com.android.mms.data.WorkingMessage.changeMedia(WorkingMessage.java:434) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at com.android.mms.data.WorkingMessage.setAttachment(WorkingMessage.java:343) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at com.android.mms.ui.ComposeMessageActivity.addVideo(ComposeMessageActivity.java:2472) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at com.android.mms.ui.ComposeMessageActivity.addAttachment(ComposeMessageActivity.java:2544) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at com.android.mms.ui.ComposeMessageActivity.handleSendIntent(ComposeMessageActivity.java:2521) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at com.android.mms.ui.ComposeMessageActivity.initialize(ComposeMessageActivity.java:1703) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at com.android.mms.ui.ComposeMessageActivity.onCreate(ComposeMessageActivity.java:1633) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at android.os.Handler.dispatchMessage(Handler.java:99) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at android.os.Looper.loop(Looper.java:123) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at java.lang.reflect.Method.invoke(Method.java:521) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
07-20 09:15:58.364: ERROR/Mms/media(168):  at dalvik.system.NativeStart.main(Native Method) 

Respuesta

65

Tal vez deberías pasar un URI de el formulario file:///sdcard/Video0006.mp4.

+1

La cosa es que cuando intento usar sendIntent.putExtra (Intent.EXTRA_STREAM, Uri.fromFile (nuevo archivo (URI))); Me dice que cambie uri en un URI en lugar de un String, cuando hago eso me dice que cambie el Uri en una cadena ... No sé qué debería hacer al respecto. – kivy

+0

¿Qué pasa si no hay una tarjeta SD? – kadik

+0

@kadik luego el archivo no se almacenará en una tarjeta SD, pero el URI seguirá siendo del mismo ** formulario ** ... 'archivo: // [partición]/ruta/a/archivo' – SirDarius

27

También puede probar esto:

Uri.fromFile(new File(your image path)); 
+0

¿Puedes ver qué le pasa a este código [[post] (https://stackoverflow.com/q/44447813/7004388)]. Estoy atorado aqui. Por favor guíame. – Chip

+1

Como conseguimos y guardamos los archivos modificados con API 24, esta es la forma más sencilla de obtener un URI de un archivo tomado utilizando FileManagers. – YumeYume

Cuestiones relacionadas