La mia app è una specie di guida tascabile con alcuni dati per tutto l'anno. Suppongo che gli utenti utilizzeranno il programma almeno una volta con accesso a Internet per attivare la licenza. O almeno questa è la mia comprensione di come funziona il sistema di licenze Android. Sto usando ServerManagedPolicy.Durata controllo controllore licenze dello stato "attivato". Quanto è frequente troppo per l'utente?
Controlla periodicamente la licenza? C'è un modo per controllarlo? Non voglio che i miei utenti si trovino nel bel mezzo del nulla, con un'app già attivata in precedenza e improvvisamente dopo 1 settimana, 1 mese, 1 anno ecc. L'app inizia a limitare l'usabilità dell'app stessa perché la licenza non potrebbe Da verificare di nuovo. La mia app verrà utilizzata in luoghi remoti con accesso alla rete irregolare (non può essere data per scontata in ogni momento) da persone che vivranno lì per settimane, forse mesi.
Sento che dovrei almeno avvertirli che verrà loro chiesto ogni X settimane di farlo. Il sistema di licenze è addirittura draconiano?
So che posso gestire gli errori con il flag ERROR_CONTACTING_SERVER, sull'applicazione application void di LicenseCheckerCallback. La risposta "VT" è sempre la stessa (non è possibile testare questo su un account di prova/il mio account)? Ero solo curioso di sapere come tratti questa situazione nelle tue app di vita reale. Mi sto perdendo qualcosa qui? Per qualche motivo mi sento come sono. C'è qualche "cattura"?
// Modificato:
Ecco il codice che sto cercando in questo momento:
// ServerManagedPolicy.java
private void setValidityTimestamp(String validityTimestamp) {
Long lValidityTimestamp;
try {
lValidityTimestamp = Long.parseLong(validityTimestamp);
} catch (NumberFormatException e) {
// No response or not parsable, expire in one minute.
Log.w(TAG, "License validity timestamp (VT) missing, caching for a minute");
lValidityTimestamp = System.currentTimeMillis() + MILLIS_PER_MINUTE;
validityTimestamp = Long.toString(lValidityTimestamp);
}
// added by me--->
private static long maxLicense = 1000 * 3600 * 24 * 30; // ~ roughly 30 days
private static long minLicense = 1000 * 3600 * 24 * 3; // ~ roughly 3 days
long lMax = System.currentTimeMillis() + maxLicense;
long lMin = System.currentTimeMillis() + minLicense;
if ((lValidityTimestamp > lMin) && (lValidityTimestamp < lMax)) {
validityTimestamp = Long.toString(lMax);
}
// <--- added by me
mValidityTimestamp = lValidityTimestamp;
mPreferences.putString(PREF_VALIDITY_TIMESTAMP, validityTimestamp);
}
hai letto http://developer.android.com/guide/publishing/licensing.html? – techiServices
La domanda qui non è se ho letto. È quante volte ho fatto. Inclusi tutti i blog collegati da Tim Bray, Dan Galpin e Trevor Johns. : p – davidcesarino