Лицензирование LVL в живых обоях? - PullRequest
0 голосов
/ 18 марта 2011

Успел ли кто-нибудь интегрировать Библиотеку верификации лицензий (LVL) с живыми обоями? Если бы он просто выполнял действие, было бы совершенно ясно, что я просто расширил мою активность от действия лицензирования, что, в свою очередь, расширяет действие. Но Live Wallpapers - это Служба, и я не уверен, как они предназначены для взаимодействия.

Я использую код, полученный из этого: http://www.droidforums.net/forum/android-app-developers/69899-market-license-easy-implementation-protect-your-apps.html, который, по-видимому, является кодом, на который ссылается почти все, что я могу найти в Интернете.

Я заметил, что настройки обоев - это занятие, и у меня они работают должным образом, но по какой-то причине я не могу взяться за лицензирование ...

Ответы [ 3 ]

2 голосов
/ 27 апреля 2011

Это на самом деле довольно просто, вам не нужно использовать какой-либо класс Activity для реализации лицензирования в WallpaperService.

Убедитесь, что вы тщательно следовали инструкциям на http://developer.android.com/guide/publishing/licensing.html

Вот как я это сделал:

Ваш расширенный класс Engine должен включать что-то похожее на следующее ... (код, несущественный для вашего вопроса, был удален)

class startYourEngines extends Engine {     

    public startYourEngines() {
        super();
        licenseStatus(); //custom license check method (for modularity)            
        //the rest of your engine would go here
    }

    public void onDestroy() {
        super.onDestroy();
        licenseChecker.onDestroy(); //we call this to close IPC connections
    }

//prep work
    private static final String BASE64_PUBLIC_KEY = //OMITTED//;
    private LicenseCheckerCallback licenseCallback;
    private LicenseChecker licenseChecker;  
    private byte[] salt = "rAnd0mStr!ng".getBytes();
    private AESObfuscator aes;
    private String deviceId;

//our custom license check method       
    private void licenseStatus() {
        deviceId = Secure.getString(getContentResolver(), Secure.ANDROID_ID);
        aes = new AESObfuscator(salt, getPackageName(), deviceId);
        licenseCallback = new licenseVerification();    
        licenseChecker = new LicenseChecker(context, new ServerManagedPolicy(context, aes), BASE64_PUBLIC_KEY);
        licenseChecker.checkAccess(licenseCallback);
    }

//our callback method
    private class licenseVerification implements LicenseCheckerCallback {
        @Override
        public void allow() {
             //allow full app use
        }

        @Override
        public void dontAllow() {
             //prevent or limit app use
        }
        @Override
        public void applicationError(ApplicationErrorCode errorCode) {
             //error handling here
        }

    }
}

Лицензирование наПлатформа Android была создана с учетом универсальности.Обязательно прочитайте документацию, и у вас не должно возникнуть никаких проблем.

1 голос
/ 18 марта 2011

У меня есть только написанные приложения, которые запускают действия, но, глядя на мой исходный код, кажется, что единственная причина, по которой вам нужно, чтобы Activity выполняла проверку лицензии, - это показ диалогов.

Во всехиз примеров, доступных онлайн, реализация LicenseCheckerCallback всегда показывает диалог в методах allow() и dontAllow().Почему бы просто не показать тост в dontAllow() и выйти из службы обоев (позвоните stopSelf(YourService.this))?

Дайте мне знать, если вам нужна дополнительная информация, потому что я не думаю, что вы ограничены использованием только деятельностипроверка лицензии.Кроме того, убедитесь, что вы не сохраняете целые строки и т. Д. В своем приложении или в настройках.Любой пользователь с правами root может получить доступ к вашим настройкам, и если ваше приложение декомпилировано, ваши строки будут видны ...

0 голосов
/ 18 марта 2011

Я думаю, что сейчас у меня это работает.Я расширяю LicenseCheckActivity на свой собственный класс Activity, который я вызываю в файле манифеста с обычным действием MAIN и категорией LAUNCH.Я создаю экземпляр своего класса, проверяю лицензию, а затем либо позволяю обоям функционировать, либо не основываясь на этом результате (хотя лучший способ сделать это - это то, что мне нужно разобраться).кажется слишком легким, что я думаю, что я что-то упускаю.Я буду признателен всем, кто имеет опыт продажи лицензионных живых обоев на Android Market, и поделится с ними всем, что им захочется.

...