No se ha encontrado actividad para manejar Intent – android.intent.action.OPEN_DOCUMENT

Estoy intentando mi mano en el marco de acceso de almacenamiento de android 4.4

He desarrollado una aplicación simulada que dispara una intención en el inicio de la actividad.

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); startActivityForResult(intent, READ_REQUEST_CODE); 

También he desarrollado otra aplicación falsa que sirve como el proveedor de archivos.

  <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.saf" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19" /> <uses-permission android:name="android.permission.MANAGE_DOCUMENTS"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.saf.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <provider android:name="com.example.saf.MyFileProvider" android:authorities="com.example.saf.documents" android:exported="@bool/is_kitkat" android:enabled="@bool/is_kitkat" android:grantUriPermissions="@bool/is_kitkat" android:permission="android.permission.MANAGE_DOCUMENTS"> <intent-filter> <action android:name="android.content.action.DOCUMENTS_PROVIDER" /> </intent-filter> </provider> </application> 

He implementado la clase MyFileProvider.

Pero cuando lanzo la user-app (la que dispara la intención), obtengo el siguiente error

 android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.OPEN_DOCUMENT cat=[android.intent.category.OPENABLE] } 

Acabo de seguir los desarrolladores de Android. Alguna idea de lo que podría estar haciendo mal?

Edit: Aquí está mi último Manifiesto. También tengo que tener una "correcta" la aplicación de MyFileProvider "extends DocumentsProvider"? ¿Puedo devolver null en las funciones por ahora?

Agregue un tipo MIME o simplemente intent.setType("*/*") .

Esto parece ser un problema conocido . setType() es necesario.

Editar: también es necesario agregar android:enabled="true" , tenga en cuenta que debe hacer referencia a ella de los valores y no directamente para que sólo para habilitarlo para> = kitkat. Así que android:enabled="@bool/is_kitkat" , <bool name="atLeastKitKat">false</bool> en /res/values/ y <bool name="atLeastKitKat">true</bool> /res/values-v19/

Para abrir todos los archivos, añada esta línea:

 intent.setType("*/*") ; 

Y si necesita filtrar para mostrar imágenes, añada esta línea:

 intent.setType("image/*"); 

Basta lanzar su intención, como,

  Intent intent = new Intent("android.intent.action.GET_CONTENT"); ((Intent)intent).addCategory("android.intent.category.OPENABLE"); ((Intent)intent).setType("*/*"); 
  • Utilizar actividad o fragmento en la aplicación de Android
  • ¿Cómo puede saber cuándo se termina de cargar una actividad de Android?
  • Inicie la aplicación de Android con actividad específica
  • Android 4.4.2 - java.lang.RuntimeException: Realización de la parada de la actividad que no se reanuda
  • "Estado persistente" vs. "estado actual"
  • Android: ¿Todas las actividades de una aplicación para Android se ejecutan en el mismo subproceso o en subprocesos separados?
  • ¿Debemos usar setTargetFragment ()? Pensé que los fragmentos no deberían comunicarse entre sí
  • Android: Consigue tiempo gastado por actividad
  • Cómo cambiar el fragmento con la actividad de navegación inferior?
  • GetActivity (). FindViewById devuelve null, llamado desde el fragmento onActivityCreated
  • Cómo realizar un seguimiento de las actividades en la pila de actividades
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.