일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 메이플
- 휴대용무선충전기
- 괌맛집
- 스투키
- 안드로이드
- 방울토마토 유기농
- 에어팟충전기
- 다크나이트
- 2in1무선충전기
- Android
- 다이소 방울토마토
- 핫엔드
- 집에서 방울토마토 키우기
- 방토 농사
- 메이플스토리
- 방울토마토 씨부터 키우기
- 맥세이프충전기
- 겨울나기
- 다이소 방울토마토키트
- 집 방울토마토
- 쿠폰나눔
- 방울토마토키우기
- 보일러절약
- 괌 신혼여행
- 괌
- 메이플스토리M
- 어플만들기
- 신혼여행
- Ender 3 V3 KE
- 안방농사
Archives
- Today
- Total
괴도군의 블로그
[Android] 폰/태블릿 구분코드 (Phone/Tablet device code) 본문
반응형
첫번째는 화면사이즈..
두번째는 웹뷰를 통한 UserAgent확인!
세번째는 디바이스 정보를 가져와서 확인.. phone / tablet / defalut? 도 에뮬레이터에서는 나오더라구요
코드를 통해 확인하세요
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | public static boolean isTabletDevice(Context context) { if (Build.VERSION.SDK_INT >= 19){ return checkTabletDeviceWithScreenSize(context) && checkTabletDeviceWithProperties() && checkTabletDeviceWithUserAgent(context); }else{ return checkTabletDeviceWithScreenSize(context) && checkTabletDeviceWithProperties() ; } } private static boolean checkTabletDeviceWithScreenSize(Context context) { boolean device_large = ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE); if (device_large) { DisplayMetrics metrics = new DisplayMetrics(); Activity activity = (Activity) context; activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); if (metrics.densityDpi == DisplayMetrics.DENSITY_DEFAULT || metrics.densityDpi == DisplayMetrics.DENSITY_HIGH || metrics.densityDpi == DisplayMetrics.DENSITY_MEDIUM || metrics.densityDpi == DisplayMetrics.DENSITY_TV || metrics.densityDpi == DisplayMetrics.DENSITY_XHIGH) { return true; } } return false; } private static boolean checkTabletDeviceWithProperties() { try { InputStream ism = Runtime.getRuntime().exec("getprop ro.build.characteristics").getInputStream(); byte[] bts = new byte[1024]; ism.read(bts); ism.close(); boolean isTablet = new String(bts).toLowerCase().contains("tablet"); return isTablet; } catch (Throwable t) { t.printStackTrace(); return false; } } private static boolean checkTabletDeviceWithUserAgent(Context context) { WebView webView = new WebView(context); String ua=webView.getSettings().getUserAgentString(); webView = null; if(ua.contains("Mobile Safari")){ return false; }else{ return true; } } | cs |
반응형
'#프로그래밍 > Android' 카테고리의 다른 글
[Android]SurfaceView Camera Preview(카메라 프리뷰) (0) | 2016.04.12 |
---|---|
[Android] 최근사용앱화면에서 앱화면 가리기(홀드키 꾹화면) (0) | 2016.04.08 |
[Android] onConfigurationChanged() 호출이 안될때 / 화면회전시 onc (0) | 2016.04.08 |
[android]네이버 퀵메뉴만들기(바탕화면 플로팅버튼) (1) | 2016.04.07 |
[Android] 핸드폰에 저장된 wifi 비밀번호 알아내기(루팅x) (6) | 2016.03.14 |
Comments