Android開發需要適配手機和平板,有些需求實現時就要求判斷設備是手機還是平板。
網上很多說通過設備尺寸、DPI、版本號、是否具備電話功能等進行判斷,不過都不算太精確。
這裏分享一個簡潔給力的方法(官方用法):
/** * 判斷當前設備是手機還是平板,代碼來自 Google I/O App for Android * @param context * @return 平板返回 True,手機返回 False */ public static boolean isPad(Context context) { return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE; }
令附上是否具備電話功能判斷方法(現在部分平板也可以打電話):
public static boolean isPad(Activity activity) { TelephonyManager telephony = (TelephonyManager)activity.getSystemService(Context.TELEPHONY_SERVICE); if (telephony.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE) { return true; }else { return false; } }
至於設備尺寸、分辨率、版本號,以目前手機來看,個人認爲精度太差了,不建議使用。