2010-09-10 19 views
5

Sono sicuro che questo è abbastanza semplice, ma non so bene cosa cercare per ottenere un tutorial conciso. Voglio creare un'app e renderla scaricabile gratuitamente su Android Market gratuitamente. Quindi, voglio creare una o più app che sono solo chiavi di licenza che aprono determinate funzionalità nell'app gratuita. Qual è il modo migliore per l'app gratuita per verificare se le app a pagamento sono presenti sul dispositivo? C'è un modo semplice per controllare il nome del pacchetto o devo creare un fornitore di contenuti nelle app a pagamento che l'app gratuita può chiamare per verificare la validità?Come creare una chiave di licenza come scaricabile, e controllarla su Android

O forse c'è dello spazio di memoria globale (come le preferenze all'interno di un'app) che tutte le app possono leggere/scrivere.

Conosco una soluzione che potrebbe funzionare e che potrei implementare facilmente: fare in modo che ogni app a pagamento chiami un servizio Web quando viene avviato per la prima volta e registra l'IMEI del telefono. Ciò funzionerebbe, ma richiede l'accesso a Internet, che può essere o non essere conveniente per la mia app.

Come con la maggior parte dei problemi di Android - più di un modo per skinare un gatto. Sto cercando quello che voi ragazzi pensate sia l'approccio migliore (e più sicuro).

+0

Sicuramente l'utente dovrebbe scaricare le app della chiave di licenza, il che significa che il servizio Web sarebbe l'ideale in quanto impedisce ad altre app di crearsi di sbloccare i servizi gratuitamente (come potrebbe accadere se si usasse una soluzione di tipo di memoria globale). – Blam

+0

Dai un'occhiata a questa domanda: http://stackoverflow.com/questions/3384457/how-to-check-android-licensing-permission-of-other-applications – Janusz

+0

Grazie per avermi indirizzato a quell'altra domanda. Questo è il mio stesso problema Un problema con l'idea del servizio web è che l'app di licenza chiama il webservice e registra l'IMEI del telefono, e funziona normalmente nel caso normale, ma cosa succede se l'utente disinstalla e rimborsa l'app di licenza? Non ho modo di saperlo e di rimuovere la registrazione. No, penso che l'app gratuita abbia bisogno di assicurarsi che tali licenze siano installate al momento dell'esecuzione. – RMS2

risposta

1

Una soluzione sarebbe fondamentalmente per verificare se la tua app "licenza" è ancora installata sul telefono. Quindi, anche se l'utente cambia telefono, sarà comunque in grado di installare l'app di licenza usando il suo account Google.

È possibile ottenere l'elenco delle applicazioni installate utilizzando il seguente codice:

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

Poi basta trovare un ApplicationInfo in cui il membro packageName corrisponde a quello della licenza app.