2012-12-28 8 views
6

Mam aplikację na rynku, która kosztuje 0,99 USD. Chcę zaimplementować rozliczenia w aplikacji, aby móc oferować je za darmo z opcją odblokowania niektórych funkcji za cenę. Zmodyfikowałem już kod, aby to umożliwić. Pytanie brzmi ... w jaki sposób mogę oznaczyć 1000 osób, które już zakupiły aplikację, i kupiłem ją i odblokowałem wszystkie funkcje?Przejście z płatnej na bezpłatną płatność w aplikacji

+0

jaki rodzaj aplikacji masz? Czy to aplikacja offline? Czy korzystasz z Internetu w przypadku niektórych usług, które oferujesz? Czy użytkownicy tworzą konto lub korzystają z Twojej aplikacji? –

+0

To aplikacja offline. Brak kont użytkowników lub cokolwiek. – Roger

Odpowiedz

3

Być może uda ci się to zhakować, jeśli używasz jakiegoś stałego magazynu.

W przypadku SharedPreferences przy pierwszym uruchomieniu sprawdź jedno z preferencji, używając SharedPreferences.contains(). Jeśli zawiera, aplikacja musi być już zainstalowana. Jeśli nie, ustaw inną preferencję, która oznacza użytkownika jako nowego (za darmo), i ustaw jeszcze jedną, aby nie sprawdzała za każdym razem.

To może zadziałać tylko wtedy, gdy preferencja nie ma wartości "domyślnej", nie jestem do końca pewna, czy ustawienie wartości domyślnej w xml oznacza ją jako zawartą.

Możesz zrobić coś podobnego, jeśli masz jakieś aktywa, które zostaną przeniesione na SD lub podobne jednorazowe ustawienia. Po prostu sprawdź, czy jest już zrobione, zanim zrobisz to za pierwszym razem.

Jeśli używasz SQLite DB, możesz zwiększyć wersję DB i oznaczyć ją jako "płatną" w onUpgrade(), jeśli pochodzi z bieżącej wersji (lub wcześniejszej).

Tak jak powiedziałem, to hack, ale nie znam żadnego "oficjalnego" sposobu sprawdzenia, czy instalacja aplikacji to aktualizacja lub początkowa instalacja. Są jednak pewne pułapki. Na przykład, jeśli poprzedni płatny klient całkowicie odinstalował przed zainstalowaniem nowej wersji lub jeśli jest na nowym urządzeniu ...

+0

Po prostu to nie zadziała. Zastanów się, czy użytkownik wcześniej miał płatną wersję, ale później ją usunął. Teraz chce zainstalować nową wersję IAB. Oczywiście twoja metoda klasyfikuje go jako początkowe użycie, podczas gdy on już za to zapłacił. – abedfar

+0

@abedfar W ostatnim zdaniu wyraźnie wymienię tę sprawę. Jak już powiedziałem, jest to hack i chociaż rzeczy mogły się zmienić w ciągu ostatnich trzech lat, uważam, że nadal nie ma dobrego sposobu na zrobienie tego "prawa" dla wszystkich użytkowników. – Geobits

+0

masz rację. Czy uważasz, że jeśli zmienię płatną aplikację na bezpłatną, nadal będę mógł pobrać serwer Google Licensing, aby odróżnić już opłaconych użytkowników (co robię teraz w płatnej aplikacji)? Osobiście wątpię, ponieważ gdy tylko zmienię płatną aplikację na bezpłatną, weryfikacja Lic stanie się bez znaczenia, a Google powinno zwrócić wartość true dla wszystkich zapytań Lic. – abedfar

Powiązane problemy