Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/34: Рейтинг темы: голосов - 34, средняя оценка - 5.00
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
1

Платная версия приложения

13.12.2012, 17:06. Просмотров 6127. Ответов 51
Метки нет (Все метки)

Хочу сделать платную версию приложения (отсутствие рекламы), как правильно это сделать? Как на основе существующего проекта сделать новый. Подскажите пожалуйста. Спасибо.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2012, 17:06
Ответы с готовыми решениями:

Планшетная версия приложения
Иконки на планшете выглядят маленькими. В папки закинул иконки: mdpi - 85px,...

Мобильная версия сайта в виде приложения
Доброго времени суток, уважаемые форумчане! У меня задача - приложение под...

Пробная версия приложения на 2 часа, после которого оно самоудалится
Проблема и ее суть описана в теме. Повторюсь, как реализовать функцию...

"Фейсбучная" версия любого Android-приложения
Ребята, препод дал задание найти "фейсбучную версию андроид приложения".Любого...

Из приложения А проверить наличие установленного на устройстве приложения В
Извиняюсь за нубский вопрос. Подскажите в андроид есть возможность из...

51
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
14.12.2012, 22:52  [ТС] 2
Ни у кого нет опыта или этот опыт секретный? Хоть направляющий пинок дайте. Я понимаю, что можно сделать еще одно приложение и перекинуть туда код бесплатного удалив рекламу, но поддерживать целостность таким образом как то не айсово. Может есть какие отработанные способы.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.12.2012, 01:08 3
if(платное) {
показать рекламу;
}
1
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
15.12.2012, 01:15  [ТС] 4
Цитата Сообщение от V0v1k Посмотреть сообщение
if(!платное) {
показать рекламу;
}
Именно так я и сделал, но при попытке загрузить на гугл плэй это приложение, даже с другим именем он воспротивился, оно и понятно пэкедж то один и тот же.

Получается, придется делать новый проект, а потом копировать в него все после изменений
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.12.2012, 01:50 5
Цитата Сообщение от dubok79 Посмотреть сообщение
он воспротивился
конкретизируйте...
0
Good-bad man
255 / 233 / 38
Регистрация: 31.10.2010
Сообщений: 504
15.12.2012, 11:31 6
Ещё можно через платёж в приложении. Правда, не помню: сохраняется ли такие платежи, если приложение удалить и заново установить или установить на другое устройство. Можно создать отдельное приложение-ключ, без установки которого программа считается не купленной и отображается реклама, а если установлено - приложение куплено, рекламы нет (так сделали, например, разработчики Titanium Backup).
Цитата Сообщение от V0v1k Посмотреть сообщение
конкретизируйте...
Он пытался залить приложение в Play Store с тем же именем пакета, что и бесплатная версия приложения.
1
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.12.2012, 17:48 7
Цитата Сообщение от Good-bad man Посмотреть сообщение
Он пытался залить приложение в Play Store с тем же именем пакета, что и бесплатная версия приложения.
это я понял, меня интересует как именно Play Store выразил свое воспротевление.
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
16.12.2012, 15:47  [ТС] 8
Цитата Сообщение от V0v1k Посмотреть сообщение
это я понял, меня интересует как именно Play Store выразил свое воспротевление.
Просто в момент загрузки было написано, что такое приложение с тем же кодом версии уже существует.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.12.2012, 19:22 9
а если изменить код версии?
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
16.12.2012, 19:23  [ТС] 10
Цитата Сообщение от V0v1k Посмотреть сообщение
а если изменить код версии?
тогда боюсь у пользователей вместо бесплатной версии получится платная на халяву
Я так полагаю тут решение только через отдельный проект.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.12.2012, 19:24 11
Цитата Сообщение от dubok79 Посмотреть сообщение
тогда боюсь у пользователей вместо бесплатной версии получится платная на халяву
каким образом?
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
16.12.2012, 19:25  [ТС] 12
Цитата Сообщение от V0v1k Посмотреть сообщение
каким образом?
Не знаю, мне так кажется... а может смена кода версии и прокатит...
0
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
12.11.2013, 08:19 13
Цитата Сообщение от dubok79 Посмотреть сообщение
Не знаю, мне так кажется... а может смена кода версии и прокатит...
Подскажите как решили вопрос. Стою сейчас в ситуации когда надо сделать Donate в проекте и убрать рекламу после этого.

Спасибо
0
TanT
эволюционирую потихоньку
467 / 465 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
12.11.2013, 19:07 14
Лучший ответ Сообщение было отмечено как решение

Решение

Для создания платного (отличного от уже выложенного на маркет) как ни крути придётся менять имя пакета.
Опытные люди пишут приложения в пакете foo
Далее создают два пустых проекта с пакетами foo.free и foo.pro, которые подключают реальный код.
В первоначальном проекте foo реализуется класс.


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
 * The application class: main goal is checking free/full version is active
 */
public class FooApplication extends Application {
 
 
    /**
     * No smart checking for full version
     * Using no more 10 because without singleton
     * @return <code>true</code> if active full version
     */
    public boolean isFullVersion() {
        return !getPackageName().toLowerCase().endsWith("free");
    }
 
}
В манифесте, конечно, всё обёрнуто в
XML
1
2
3
4
 <application  
        android:name=".FooApplication" 
        android:icon="@drawable/icon" 
        android:label="@string/app_name">
Далее как понятно из класса функционал фильтруется по флагу
4
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
12.11.2013, 19:12  [ТС] 15
TanT, еще бы пример какой попробовать. Можете сварганить? Чисто то, что вы описали, а то мне не очень понятно. Заранее спасибо.
Или пошлите куда-нибудь где можно посмотреть.
0
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
14.11.2013, 15:31 16
Цитата Сообщение от dubok79 Посмотреть сообщение
TanT, еще бы пример какой попробовать. Можете сварганить? Чисто то, что вы описали, а то мне не очень понятно. Заранее спасибо.
Или пошлите куда-нибудь где можно посмотреть.
Коллеги, правда, поделитесь кодом или примером, или хоть ссылку дайте толковую, а то нет нигде нормальной информации, а вопрос актуальный.
0
TanT
эволюционирую потихоньку
467 / 465 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
14.11.2013, 17:07 17
вот подходящий пример

Это не тот же самый пример от которого отталкивался я, но по сути логика таже
1
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
15.11.2013, 07:15 18
Цитата Сообщение от TanT Посмотреть сообщение
вот подходящий пример

Это не тот же самый пример от которого отталкивался я, но по сути логика таже
Да, что-то начинает проясняться. То есть у меня должно быть в программе сразу 2 пакета, один с рекламой, другой без рекламы.
При запуске у меня должна происходить проверка "куплено приложение или нет?" и исходя из
этого указывать рабочий пакет с рекламой или без?/
Правильная логика?
0
TanT
эволюционирую потихоньку
467 / 465 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
15.11.2013, 18:01 19
NOSC,
в манифесте вы указываете имя пакета для Application. Это имя пакета будет уникальным ключём на маркете.
У себя вы проверяется имя пакета для класса FooApplication extends Application. Это класс-обёртка исключительно для диагностики free/pro.

Как это делал.
Я создовал пустой андроид проект в котором полностью повторяю манифест боевого приложения за исключением имени пакета.
То есть пустой адроид проект содержит манифест
XML
1
2
3
4
5
6
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
......
    package="foo.free"
>
 
тут содержимое вашего манифеста приложения с полными указаними старых пакетов
в этот пустой проект подключаете как зависимость ваш боевой и собираете. В итоге у вас имя пакета для маркета новое, а приложение тоже. Ну и не забудь логику в приложении адаптировать.
1
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
18.11.2013, 20:58 20
Делается три проекта:
- первый - library, здесь лежат исходники и ресурсы общие для платной и бесплатной версии.
Эта библиотека подключается к следующим двум проектам:
- free - проект с рекламой.
- paid - без рекламы.

А вариант с проверкой, я считаю не очень удачным.
Java
1
2
3
public boolean isFullVersion() {
        return !getPackageName().toLowerCase().endsWith("free");
    }
0
18.11.2013, 20:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2013, 20:58

Ошибка при вызове приложения из другого приложения
Сделано два простеньких приложения и я хочу чтобы одно приложение запускало...

Версия Gradle
Здравствуйте. Последняя версия Gradle 2.13 у меня используется 2.10. Надо ли...

Не устанавливается release версия
У меня debug версия собирается и устанавливается нормально, но release версия...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru