Как такое вообще может быть?
В своей Activity перебираю все публичные ключи от своего пакета кодом ниже. Все ОК на всех эмуляторах и моих устройствах кроме третьего самсунга.
На самвысунге моего публичного ключа нет. Перебериаю все возможное, ошибка с отладочным сертификатом исключена. Где тут собака порылась?
PackageManager pm = getPackageManager();
String packageName = getPackageName();
PackageInfo pi = pm.getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
Signature[] signatures = pi.signatures;
// Все все сигнатуры
for (Signature sig : signatures)
{
byte[] bytes = sig.toByteArray();
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
CertificateFactory certFactory = CertificateFactory.getInstance("X509");
// Все все сертификаты
Collection certs = certFactory.generateCertificates(in);
for (Object cert : certs)
{
X509Certificate x509cert = (X509Certificate)cert;
PublicKey pk = x509cert.getPublicKey();
String publicKey = pk.toString();
// И нет такого publicKey, который ищется
}
}