Re: [問題] 在ICS上區分phone or tablet ?

看板AndroidDev作者 (逛逛...)時間12年前 (2012/02/17 10:53), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《weruioi (傑)》之銘言: : ※ 引述《PeterLiu (阿勇)》之銘言: : : 在舊版的android上,可以簡單利用系統版本來區分device : : ver 2.x 是手機,ver 3.x 是平板 : : (至少八九不離十) : : 現在 4.x 則是手機平板通用, : : 當app上某個功能我希望只能在平板上才開放時, : : 請問要如何去區別app是裝在手機or平板? : : 本來想說利用解析度去判別,但是現在手機也是有 1280x720...=.= : 節錄自GoogleIO 2011 app source code : 兩個判斷版本與螢幕大小的function : 希望有幫助XD : public static boolean isHoneycomb() { : // Can use static final constants like HONEYCOMB, declared in later versions : // of the OS since they are inlined at compile time. : // This is guaranteed behavior. : return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB; : } 恕刪 其實ICS本身有利用density來判斷UI應該用phone還是tablet的機制 http://baroqueworksdev.blogspot.com/2012/01/phone-mode-or-tablet- mode-in-ice-cream.html 看過文章之後可以看出來framework透過ro.sf.lcd.density的值去算出 shortSizeDp的值 然後根據文章找到 \frameworks\base\policy\src\com\android\internal\policy\impl - PhoneWindowManagerService.java 從裡面可以發現ICS要套用哪一套UI由shortSizeDp是否大於600決定 所以光從ICS的角度來判斷的話可以參考framework的判斷方式 除非你的開發裝置這部份的設定本來就有問題導致framework誤判 當然這是從framework的角度去探討...對上層app來說是否有參考價值 就見仁見智了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.124.112.76

02/17 13:04, , 1F
感謝您的分析,weruioi大的文章我都還沒爬完,大大就已經
02/17 13:04, 1F

02/17 13:04, , 2F
有處理方案,實在是太厲害了... m(_._)m
02/17 13:04, 2F

04/19 23:29, , 3F
話說其實我在想直接分開會不會比較快啊 印象中iOS tablet
04/19 23:29, 3F

04/19 23:30, , 4F
的app後面都會加一個HD
04/19 23:30, 4F
文章代碼(AID): #1FFS53GJ (AndroidDev)
文章代碼(AID): #1FFS53GJ (AndroidDev)