在進行Java開發時,我們有時需要判斷當前程序是在真機還是在模擬器上運行。下面介紹幾種常用的判斷方法。
1. 通過System屬性判斷
String javaVmVendor = System.getProperty("java.vm.vendor"); //獲取Java虛擬機供應商 String javaVmName = System.getProperty("java.vm.name"); //獲取Java虛擬機名稱 if (javaVmVendor.equals("The Android Project") && javaVmName.contains("Android")) { //當前是在Android模擬器上運行 } else { //當前是在真機上運行 }
2. 通過android.os.Build類判斷
if ("sdk".equals(android.os.Build.MODEL) || "google_sdk".equals(android.os.Build.MODEL)) { //當前是在Android模擬器上運行 } else { //當前是在真機上運行 }
3. 通過TelephonyManager類判斷
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String deviceId = tm.getDeviceId(); //獲取設備ID if (deviceId == null || deviceId.trim().length() == 0 || deviceId.matches("0+")) { //當前是在Android模擬器上運行 } else { //當前是在真機上運行 }
以上就是幾種常用的判斷Java程序是在真機還是在模擬器上運行的方法。根據實際需求選擇適合自己的方法即可。