Как получить название разработанной организации, используя apk программно? - PullRequest
0 голосов
/ 07 мая 2018

Если кто-нибудь знает, как получить название развитой организации с помощью apk в Android, программно поделитесь своими предложениями. К вашему сведению, я прикрепил изображение.

This image I have marked the WhatsApp organization name, How to get this organization name programmatically by using apk.

1 Ответ

0 голосов
/ 08 мая 2018

Нет прямого способа прочитать эту информацию из настроек. Однако вы можете прочитать эту информацию из сертификата подписи АПК следующим образом:

 public String getOrganizationName(final String packageName) {
        String orgName = null;
        try {
            Signature signatures[] = getPackageManager().getPackageInfo(packageName, PackageManager.GET_SIGNATURES).signatures;                
            for (Signature signature : signatures) {
                final byte[] rawCert = signature.toByteArray();
                InputStream certStream = new ByteArrayInputStream(rawCert);

                try {
                    CertificateFactory certFactory = CertificateFactory.getInstance("X509");
                    X509Certificate x509Cert = (X509Certificate) certFactory.generateCertificate(certStream);
                    String issuerDn = x509Cert.getIssuerDN().getName();
                    int indexOfOrg = issuerDn.indexOf("O=");
                    int indexOfSeperator = issuerDn.indexOf(",", indexOfOrg);
                    final String organizationName = issuerDn.substring(indexOfOrg+2, indexOfSeperator);
                    if (orgName == null) {
                        orgName = organizationName;
                    }
                    Log.d("Test", "Organization Name: " + organizationName);

                } catch (Exception e) {
                     e.printStackTrace();
                }

            }
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return orgName;
 }

Вызовите этот метод следующим образом:

getOrganizationName("com.whatsapp"); //You can use any installed package name

Будет возвращено:

WhatsApp Inc.

...