Tengo una aplicación de Android que se publica en una versión 'gratuita' y 'profesional'. He creado mi proyecto con un proyecto de base 'biblioteca' que se hace referencia a las dos versiones, de modo que mi conjunto de paquetes tiene el siguiente aspecto:¿Cómo hacer referencia a los "activos" de Android en los paquetes?
- com.example.myapp
- com.example.myapp.free
- com.example.myapp.pro
una de las clases de actividad en mi base de proyecto 'biblioteca' carga un archivo de ayuda en una vista Web: WebView.loadUrl ("file: /// android_asset/ayuda. html "). Esta clase se extiende tanto en las versiones 'gratis' como 'pro' (por razones que quedan fuera del alcance de esta pregunta), pero me gustaría que ambas versiones hagan referencia al mismo archivo HTML (es decir, el que está en el paquete principal). En mi configuración actual, sin embargo, el archivo HTML debe duplicarse en la carpeta 'assets' en los paquetes 'com.example.myapp.free' y 'com.example.myapp.pro' para el "archivo: ///android_asset/"URI para trabajar.
¿Hay alguna manera de especificar el URI "file: /// android_asset /" de modo que acceda al directorio 'assets' en el paquete principal?
Una solución parcial que encontré implica leer el archivo HTML del directorio 'raw' y luego presionar la cadena resultante en mi objeto WebView, pero esto sería complicado para algo más que una página HTML de solo texto (p. Ej. uno con imágenes, como el mío).
Saludos.
Creo que esto es incorrecto. Por favor, consulte (http://developer.android.com/guide/topics/security/security.html#userid). Su código implica que puede acceder a * cualquier * otros archivos de aplicaciones que serían un modelo de seguridad del SO particularmente débil. Lo he intentado y falla en el momento en que intento abrir un archivo. –
Su enlace no menciona activos, que es de lo que se trataba la pregunta. ¿Intentó abrir un activo? En mi dispositivo, los archivos apk en/data/app (y, por lo tanto, los activos dentro de ellos) son legibles en todo el mundo. Obviamente, los directorios privados de aplicaciones en/data/data no lo son. Si esto es correcto, amablemente retracta tu voto negativo. – mhsmith
supones que soy el votante de abajo ... –