1

Я использую PackageManager.checkSignatures, чтобы проверить, установлено ли платное приложение «unlocker». Хотя это прекрасно работает на KitKat (на Galaxy S4), вызов checkSignatures ниже возвращает код -3 на Lollipop (v5.0.1). Нужно ли пересматривать мой код для Lollipop?PackageManager.checkSignatures, не работающие на Lollipop

final PackageManager pkgMgr = context.getPackageManager(); 
final int sigMatch = 
     pkgMgr.checkSignatures(context.getApplicationContext().getPackageName(), 
       "com.myname1.myname2.myappunlocker"); 
+0

Вы уверены, что подписи действительно совпадают? -3 - 'SIGNATURE_NO_MATCH'. – CommonsWare

+0

if (sigMatch == PackageManager.SIGNATURE_MATCH) возвращает false –

+0

Просто, чтобы быть ясным, установлен com.myname1.myname2.myappunlocker, но моя проверка для PackageManager.SIGNATURE_MATCH теперь терпит неудачу (тогда как она прошла на Android 4.4.2) –

ответ

0

Когда я протестировать приложение в режиме отладки (AndroidStudio) Я никогда не использовал, чтобы получить проблемы с матча подписи на Android 4.4.2, но сейчас (на 5.0.1) поведение изменилось.

В то время как я не использовал checkSignatures(), это поведение могло бы оглушить меня. Единственное, о чем я могу думать, это если у них была некоторая ошибка безопасности, в которой всегда были возвращены сборки отладки true от checkSignatures(). В противном случае приложение, подписанное с ключом подписи отладки, никогда не должно совпадать с подписью другого приложения, подписанного ключом производства.

Я знаю наверняка, что Android будет сообщать о различных ключах подписи во время выполнения с помощью PackageManager для различных сборок, как я сделал много экспериментов вокруг того, как часть моей работы с SignatureUtils.

Означает ли это, что эта функция не может быть протестирована с помощью Android Studio на Android 5.0.1?

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

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