2011-07-29 13 views

答えて

5

あなたはGoogle I/O App for Android SRCコードを確認することができます。では

UIUtilsクラスには、次のメソッドがあります。

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; 
} 

public static boolean isTablet(Context context) { 
    return (context.getResources().getConfiguration().screenLayout 
      & Configuration.SCREENLAYOUT_SIZE_MASK) 
      >= Configuration.SCREENLAYOUT_SIZE_LARGE; 
} 

public static boolean isHoneycombTablet(Context context) { 
    return isHoneycomb() && isTablet(context); 
} 
+0

それは正常に動作します。ありがとう! – Alex

+0

こんにちはMacarse、私はこのトピックに関連する1つの質問があります...どのように私は電話(2.2以降)とタブレットで実行されるユニバーサルアプリを開発することができますか? –

+0

アプリを開発する際に互換性パッケージを使用します。もっと読むことができます[http://developer.android.com/sdk/compatibility-library.html] – Sandra

0

(画面解像度、ラム、タッチスクリーン、GPS ....)

0

これは実際には興味深い質問です。 私は絶対的な答えはありませんが、ここに良い入力があります。How to detect system information like os or device type

また、TelephonyManager.getPhoneType()とTelephonyManagerの他のメソッドも重要です。

Context.getSystemService(Context.TELEPHONY_SERVICE)を使用して、TelephonyManagerのインスタンスを取得します。 Googleのジェリービーンから

+0

Macarseの答えも有望そうです。 – Petrus

0

新実装:

// SystemUI (status bar) layout policy 
     int shortSizeDp = shortSize 
       * DisplayMetrics.DENSITY_DEFAULT 
       /DisplayMetrics.DENSITY_DEVICE; 

     if (shortSizeDp < 600) { 
      // 0-599dp: "phone" UI with a separate status & navigation bar 
      mHasSystemNavBar = false; 
      mNavigationBarCanMove = true; 
     } else if (shortSizeDp < 720) { 
      // 600-719dp: "phone" UI with modifications for larger screens 
      mHasSystemNavBar = false; 
      mNavigationBarCanMove = false; 
     } else { 
      // 720dp: "tablet" UI with a single combined status & navigation bar 
      mHasSystemNavBar = true; 
      mNavigationBarCanMove = false; 
     } 
     } 
+0

'shortSize'とは何ですか? –

関連する問題