1 import android.content.pm.PackageInfo;
2 import android.content.pm.PackageManager;
3 import android.content.pm.Signature;
4 import android.support.v7.app.AppCompatActivity;
5 import android.os.Bundle;
6 import android.util.Log;
7 import android.widget.TextView;
8
9 import java.io.ByteArrayInputStream;
10 import java.io.InputStream;
11 import java.security.cert.CertificateException;
12 import java.security.cert.CertificateFactory;
13 import java.security.cert.X509Certificate;
14
15 public class MainActivity extends AppCompatActivity {
16 private TextView one;//随便定义一个TextView显示出来
17
18 public StringBuffer getcert() {
19 PackageManager pm = getPackageManager();
20 StringBuffer sb = new StringBuffer();
21 try {
22 PackageInfo info = pm.getPackageInfo(getPackageName(),getPackageManager().GET_SIGNATURES);
23 Signature[] sigs = info.signatures;
24 for(Signature sig : sigs) {
25 final byte[] rawCert = sig.toByteArray();
26 InputStream certStream = new ByteArrayInputStream(rawCert);
27
28 final CertificateFactory certFactory;
29 final X509Certificate x509Cert;
30
31 try {
32 certFactory = CertificateFactory.getInstance("X509");
33 x509Cert = (X509Certificate)certFactory.generateCertificate(certStream);
34
35 sb.append("Certificate subject:" + x509Cert.getSubjectDN() + "\n\n");
36 sb.append("Certificate issuer:" + x509Cert.getIssuerDN() + "\n\n");
37 sb.append("Cretificate serival number:" + x509Cert.getSerialNumber() + "\n\n");
38
39 } catch (CertificateException e) {
40 //e.printStackTrace();
41 }
42
43 }
44 } catch (PackageManager.NameNotFoundException e) {
45 //e.printStackTrace();
46 }
47 return sb;
48 }
49 protected void onCreate(Bundle savedInstanceState) {
50
51 super.onCreate(savedInstanceState);
52 setContentView(R.layout.activity_main);
53 one = (TextView) findViewById(R.id.one);
54 StringBuffer cert;
55 cert = getcert();
56 one.setText(cert);
57
58
59
60 }
61 }
//其实就是这篇blog的代码http://blog.csdn.net/l173864930/article/details/3840952。。。。