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

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

13.12.2012, 17:06. Просмотров 6074. Ответов 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