以前都是直接安裝一個開發者助手獲取的,但是呢,開發者助手也有bug啊,應用寶下載安裝,在我的紅米手機上發現打不開,於是我又去酷安網下載了一個,可以打開了,但是有問題,沒法獲取到完整的root許可權,檢測不准確,當前應用根本看不到東西,於是只能另想辦法了,老套路就是百度,然後照著搞,發現很多都是直接 k ...
以前都是直接安裝一個開發者助手獲取的,但是呢,開發者助手也有bug啊,應用寶下載安裝,在我的紅米手機上發現打不開,於是我又去酷安網下載了一個,可以打開了,但是有問題,沒法獲取到完整的root許可權,檢測不准確,當前應用根本看不到東西,於是只能另想辦法了,老套路就是百度,然後照著搞,發現很多都是直接 keytool 命令,但是我這裡報 'keytool' 不是內部或外部命令 也不是可運行的程式,這個不是什麼大問題,網上很多解決方案,但是本人比較懶,太麻煩的操作一般懶得做,但是又沒辦法,所以搜集了一下各路解決方案,總結了一下快速直接且方便的方案,記錄下來,以後可以直接用
首先獲取測試版的SHA1值,就很簡單,一般最簡單的就是在AndroidStudio上,右邊菜單,點擊,點擊signingReport就行了,如下圖
as直接就給你列印出來了,很方便,但是如果要獲取簽名的SHA1值呢,看到上面的路徑了嗎,其實就是用keytool命令然後附帶上我們的jks就行了,這個方法測試正式都通用,有的可能直接敲命令就行了,但是肯定很多人也跟我一樣,提示不是內部或外部命令,有的時候很久沒搞過就會忘記,雖然百度一下的事,但是也浪費自己的時間,所以還是整理一下好,如下圖
進入到jdk路徑里,在使用命令就行了,測試的jks路徑就是 C:\Users\LiuZhen\.android\debug.keystore
還有一個辦法就是用代碼去獲取了,不過個人還是覺得一步到位的好,下麵是獲取代碼,在高德那複製的
public String sHA1(){ try { PackageInfo info = getPackageManager().getPackageInfo( getPackageName(), PackageManager.GET_SIGNATURES); byte[] cert = info.signatures[0].toByteArray(); MessageDigest md = MessageDigest.getInstance("SHA1"); byte[] publicKey = md.digest(cert); StringBuffer hexString = new StringBuffer(); for (int i = 0; i < publicKey.length; i++) { String appendString = Integer.toHexString(0xFF & publicKey[i]) .toUpperCase(Locale.US); if (appendString.length() == 1) hexString.append("0"); hexString.append(appendString); hexString.append(":"); } String result = hexString.toString(); return result.substring(0, result.length()-1); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return null; }