2014-06-23 3 views
2

Я создаю приложение для разблокировки, которое удалит рекламу и разблокирует премиальные функции в нескольких приложениях. Мой план состоит в том, чтобы просто позвонить PackageManager и проверить, установлено ли приложение для разблокировки, и если это так, проверьте подписи, чтобы убедиться, что это действительно мое приложение. Я следую этому ответу здесь: Detect if app was downloaded from Android MarketПодтвердить подпись приложения Android с помощью открытого ключа?

Однако, я думаю, я немного смущен тем, что подпись я проверяю ... Это мой открытый ключ, правильно? Если да, как я могу извлечь это из существующего приложения или хранилища ключей?

ответ

5

Самый простой способ использовать тот же ключ подписи для обоих приложений, а затем проверить в главном приложении, если установлено приложение разблокировки и был подписан с таким же ключом, используя следующий код:

PackageManager manager = App.getContext().getPackageManager(); 
    bool unlockAppInstalled = manager.checkSignatures("<main app package name>, "<unlock app package name>") == PackageManager.SIGNATURE_MATCH; 

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

+0

Я пока не могу утверждать, извините! :( В любом случае, это было прекрасно. Спасибо! – IAmTheSquidward

Смежные вопросы