2013年5月24日

【Android】タブレット判別



デバイスがタブレットか電話かを判別するメソッドのメモ


private boolean isTabletDevice() {                                                                           
    // Verifies if the Generalized Size of the device is XLARGE to be
    // considered a Tablet
    boolean xlarge = ((mContext.getResources().getConfiguration().screenLayout &
            Configuration.SCREENLAYOUT_SIZE_MASK) == 4);

    // If XLarge, checks if the Generalized Density is at least MDPI
    // (160dpi)
    if (xlarge) {
        DisplayMetrics metrics = mContext.getResources().getDisplayMetrics();

        // MDPI=160, DEFAULT=160, DENSITY_HIGH=240, DENSITY_MEDIUM=160,
        // DENSITY_TV=213, DENSITY_XHIGH=320
        if (metrics.densityDpi == DisplayMetrics.DENSITY_DEFAULT
                || metrics.densityDpi == DisplayMetrics.DENSITY_HIGH
                || metrics.densityDpi == DisplayMetrics.DENSITY_MEDIUM
                || metrics.densityDpi == 213/** DisplayMetircs.DENSITY_TV */
                || metrics.densityDpi == 320/** DisplayMetrics.DENSITY_XHIGH */
        ) {  
            // Yes, this is a tablet!
            return true;
        }    
    }    

    // No, this is not a tablet!
    return false;
}

大体これで大丈夫。

(これ前にも書いたっけ?)