Registrar nuevo tipo de archivo en Android

Quiero escribir una aplicación simple de visor STL (archivo de datos geométricos) en Android, pero no puedo reconocer un formato en el sistema. Lo que escribí en el archivo de manifiesto de mi aplicación es:

          

Pero en el momento en que abro el navegador y voy a descargar un archivo STL de muestra, la descarga se interrumpe y me informan que el tipo de archivo de datos es desconocido para el sistema. No tengo un dispositivo android real, así que use solo emulador, y para el desarrollo uso C # en MonoDroid (pero no creo que ese sea el problema honestamente)

Alguna idea sobre el tema?

Gracias de antemano.

Estoy usando este Manifiesto para registrar (por ejemplo) el tipo de archivo .stl con mi aplicación:

                                 

Como puede ver, estoy vinculando la extensión de archivo .stl a la actividad OdinActivity . Dentro de OdinActivity , utilizo la siguiente línea para obtener la ruta del archivo para poder abrirlo:

 filePath = getIntent().getData().getEncodedPath(); 

Entonces solo lo abro para leer de él:

 FileOutputStream out = new FileOutputStream(new File(filePath)); 

Me sorprende que la solución gnclmorais funcione. Debido a que tener múltiples entradas de data en un intent-filter no funcionó para mí. Lo que funcionó al final fue el intent-filter múltiple en una activity :

                                     

Tenga en cuenta que tener pathPattern y pathPattern en una entrada de data no funcionó tan bien. Por último, sugeriría algunos controles nulos al obtener el nombre del archivo:

  /** * 

Open calculator and load file (if one was passed).

* @see android.app.Activity#onStart() */ @Override public void onStart () { android.util.Log.d (Calculator_Activity.TAG, "+ onStart"); super.onStart (); final android.content.Intent intent = getIntent (); if (intent != null) { android.util.Log.d (Calculator_Activity.TAG, "> Got intent : " + intent); final android.net.Uri data = intent.getData (); if (data != null) { android.util.Log.d (Calculator_Activity.TAG, "> Got data : " + data); final String filePath = data.getEncodedPath (); android.util.Log.d (Calculator_Activity.TAG, "> Open file : " + filePath); // file loading comes here. } // if } // if android.util.Log.d (Calculator_Activity.TAG, "- onStart"); return; } // onStart

La carga real del archivo falta en la muestra. Se debe insertar después del comando de registro “Abrir archivo”.

Probé las otras soluciones y esta es la única que funciona para mí:

              

¿alguien tiene una idea de por qué los otros no funcionan?