Re: [問題] 在ICS上區分phone or tablet ?
※ 引述《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
02/17 13:04, 1F
→
02/17 13:04, , 2F
02/17 13:04, 2F
推
04/19 23:29, , 3F
04/19 23:29, 3F
→
04/19 23:30, , 4F
04/19 23:30, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):