txt - reproducir wma en android
pathPattern para hacer coincidir la extensión de archivo no funciona si existe un perÃodo en otro lugar en el nombre del archivo? (3)
El equipo de Android eligió una forma desafortunada de implementar pathPattern. Puede ver cómo se implementa la coincidencia de patrones en la clase android.os.PatternMatch:
Estamos acostumbrados a * trabajar como lo hace en una expresión regular, donde el * partido es codicioso y coincidirá con tantos personajes como sea posible. En la implementación de PatterMatch, el partido no es codicioso. . * Coincidirá con tantos caracteres como sea posible, hasta que encuentre una coincidencia para el siguiente carácter de la cadena.
Ejemplo:
Cadena: "/mnt/my.file.mytype"
pathPattern: ". * //. mytype"
El ". *" En pathPattern coincidirá con la subcadena "/ mnt / my" y, por lo tanto, no coincidirá con la cadena.
Dada esta limitación, no veo una forma de escribir un pathPattern que pueda hacer coincidir cualquier cadena que termine en ".mytype". Lo mejor que puede hacer es seguir la solución de Jason para agregar patrones adicionales que coincidan con tantos puntos como quiera especificar patrones.
Veo numerosos ejemplos del uso de pathPattern para definir un filtro de intención para una extensión / tipo de archivo específico; por ejemplo, pathPattern=".*//.xyz"
.
Desafortunadamente, esto no parece funcionar correctamente si el archivo en cuestión tiene un punto en otro lugar de la ruta; por ejemplo "my.filename.xyz".
¿Hay una sintaxis pathPattern que coincida con "myfilename.xyz" y "my.filename.xyz"?
Se encontró con el mismo problema al tratar de abrir un archivo en una carpeta de puntos. Descubrí que podía simplemente agregar múltiples elementos de "datos", dependiendo de cuántos puntos esperaba tener en mis rutas:
<data android:pathPattern=".*//.mytype"/>
<data android:pathPattern=".*//..*//.mytype"/>
<data android:pathPattern=".*//..*//..*//.mytype"/>
<data android:pathPattern=".*//..*//..*//..*//.mytype"/>
Feo, sin embargo. Alguien sabe una mejor manera?
Usé esto:
<activity
android:name=".activity.GifActivity"
android:label="Cool Player ^_^">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http"/>
<data android:scheme="https" />
<data android:host="*"/>
<data android:pathPattern="/.*//.mp4"/>
</intent-filter>
</activity>
Esto abrirá la siguiente URL:
- http://i.imgur.com/6162727/2727727/17177/AXTI1Gr.mp4
- http://i.imgur.asdf.lalala.com/6162727/2727727/17177/AXTI1Gr.mp4
- http://i.imgur.com/AXTI1Gr.mp4
No se abrirá para lo siguiente:
- http://arstechnica.co.uk/gadgets/2015/10/android-6-0s-auto-backup-for-apps-perfect-data-backup-for-the-1-5
- http://i.imgur.asdf.lalala.com/6162727/2727727/17177/AXTI1Gr.mp3
- http://i.imgur.com/FqMAE9H.gifv
Creo que la clave aquí es host="*"
. No he hecho un estudio completo sobre esto. Pero funciona para mí, espero que ayude a alguien por ahí también.