2010-09-10 11 views
5

Estoy seguro de que esto es bastante básico, pero no sé exactamente qué buscar para obtener un tutorial conciso. Quiero crear una aplicación y hacerla descargable en Android Market gratis. Luego, quiero crear una o más aplicaciones que son solo claves de licencia que abren ciertas funcionalidades en la aplicación gratuita. ¿Cuál es la mejor manera para que la aplicación gratuita compruebe si las aplicaciones pagas están presentes en el dispositivo? ¿Existe alguna manera fácil de verificar por nombre de paquete o necesito crear un proveedor de contenido en las aplicaciones pagas a las que la aplicación gratuita puede llamar para verificar la validez?Cómo crear una clave de licencia como descargable, y verifíquela en Android

O tal vez hay algo de espacio de memoria global (como las preferencias dentro de una aplicación) que todas las aplicaciones pueden leer/escribir.

Conozco una solución que funcionaría, y que podría implementar fácilmente: hacer que cada aplicación paga llame a un servicio web cuando se inicia y registrar el IMEI de ese teléfono. Esto funcionaría, pero requiere acceso a Internet, que puede o no ser conveniente para mi aplicación.

Como con la mayoría de los problemas con Android: más de una manera de despellejar a un gato. Estoy buscando lo que ustedes piensan que es el mejor (y más seguro) enfoque.

+0

Seguramente el usuario tendría que descargar las aplicaciones de clave de licencia, lo que significa que el servicio web sería ideal ya que previene que surjan otras aplicaciones que desbloquean los servicios de forma gratuita (como podría hacerlo si usara una solución de tipo de memoria global). – Blam

+0

Eche un vistazo a esta pregunta: http://stackoverflow.com/questions/3384457/how-to-check-android-licensing-permission-of-other-applications – Janusz

+0

Gracias por señalarme esa otra pregunta. Ese es mi mismo problema Un problema con la idea del servicio web es que la aplicación de licencia llama al servicio web y registra el IMEI del teléfono, y eso funciona muy bien en el caso normal, pero ¿qué sucede si el usuario desinstala y reembolsa la aplicación de licencia? No tengo forma de saber eso y eliminar el registro. No, creo que la aplicación gratuita debe asegurarse de que esas licencias estén instaladas en el momento de la ejecución. – RMS2

Respuesta

1

Una solución sería básicamente probar si su aplicación de "licencia" todavía está instalada en el teléfono. Entonces, incluso si el usuario cambia de teléfono, todavía podrá instalar la aplicación de licencia con su cuenta de Google.

Puede obtener la lista de aplicaciones instaladas utilizando el siguiente código:

List<ApplicationInfo> list = context.getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA); 

A continuación, sólo encuentran una ApplicationInfo donde el miembro de packageName se corresponde con el de su aplicación para la licencia.

Cuestiones relacionadas