我如何知道(例如在Activity中)該應用程序是從Eclipse安裝並運行的(通過USB插入移動設備)?瞭解Android應用程序是否從Eclipse運行
2
A
回答
3
所有應用程序都由證書籤名。即使在日食發射時。在eclipse中使用android SDK時,默認情況下會創建一個調試密鑰庫,並且每次使用IDE構建並將您的應用程序推送到設備/仿真器時都會使用它。
您可以在代碼中獲取有關密鑰庫的信息,並驗證它是否是您自己的簽名代碼或其他內容。我用下面的快速和骯髒的代碼在我的應用程序在Eclipse:
try {
PackageInfo pi = this.getPackageManager().getPackageInfo(this.getPackageName(), PackageManager.GET_SIGNATURES);
Signature[] signatures = pi.signatures;
byte[] cert = signatures[0].toByteArray();
InputStream input = new ByteArrayInputStream(cert);
CertificateFactory cf = CertificateFactory.getInstance("X509");
X509Certificate cf509 = (X509Certificate) cf.generateCertificate(input);
Log.d(LOG_TAG, "Certificate issued by: " + cf509.getIssuerDN());
} catch (Exception e) {
結果是:
Certificate issued by: CN=Android Debug, O=Android, C=US
結構更好的代碼,並歸功於此鏈接: http://thomascannon.net/misc/android_apk_certificate/
+0
好主意!有用 :) – Trick
1
從eclipse構建你的應用程序android:debuggable = true flag。然後,您可以使用此方法檢查應用程序的值:Getting "debuggable" value of androidManifest from code?
相關問題
- 1. 是否有可能從android應用程序運行android應用程序?
- 2. 在Eclipse中運行Android應用程序
- 3. 應用程序未運行,android(eclipse)
- 4. 瞭解Android應用程序執行
- 5. 從Eclipse IDE運行C++應用程序
- 6. 從Eclipse導出簽名應用程序後Android應用程序無法運行
- 7. 當我單擊運行時,Eclipse不運行Android應用程序
- 8. 無法從eclipse運行android應用程序
- 9. 什麼決定了Node.js應用程序是否繼續運行?
- 10. 瞭解應用程序是否正在測試環境中運行
- 11. 從android應用程序運行tcpdump
- 12. 從Android應用程序運行python
- 13. 是否有可能找出另一個應用程序運行了多久? Android
- 14. 運行Android應用程序
- 15. 運行Android應用程序
- 16. 運行Android應用程序
- 17. 瞭解Android瀏覽器是在應用程序中運行還是爲自己運行
- 18. 在eclipse中運行android應用程序沒有迴應
- 19. Eclipse失去了運行/調試java應用程序的能力
- 20. 是否可以在Android Things上運行多個應用程序?
- 21. android:如何檢查應用程序是否在後臺運行
- 22. Android應用程序是否在後臺運行?
- 23. 是否可以在JVM中運行Android應用程序?
- 24. 檢查我的應用程序是否在Android中運行
- 25. Android應用程序是否在後臺運行?
- 26. 我的Android應用程序是否在根設備上運行?
- 27. 是否可以在Android下運行MIDP應用程序
- 28. 檢測Android應用程序是否在後臺運行
- 29. android如何檢測應用程序是否在過去運行
- 30. 檢查Android應用程序是否首次運行?
你爲什麼想要那樣做?也許還有另一個根本問題的解決方案。 – Bananeweizen
這不是問題:)它只會幫助我發展。因爲當我開發時,我連接到測試服務器並在生產服務器上進行生產。所以我只想更小心些。 – Trick