Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行在ICS(冰激凌Sandwitch)上的Android蜂巢应用程序_Android_Screen_Android 3.0 Honeycomb_Android 4.0 Ice Cream Sandwich - Fatal编程技术网

运行在ICS(冰激凌Sandwitch)上的Android蜂巢应用程序

运行在ICS(冰激凌Sandwitch)上的Android蜂巢应用程序,android,screen,android-3.0-honeycomb,android-4.0-ice-cream-sandwich,Android,Screen,Android 3.0 Honeycomb,Android 4.0 Ice Cream Sandwich,我有一个为蜂巢(最初是3.0)开发的应用程序,在ICS发布后,用户可以用ICS将其安装到他们的手机上,而不仅仅是平板电脑上。我如何过滤这些电话?我试过使用,但不起作用。还有一件有趣的事(至少对我来说),我的应用程序不会缩小到更小的屏幕。我使用固定大小的控件,但大小以dp为单位 简言之: 有人知道我怎么过滤ICS手机吗?(最好来自代码) 我应该如何支持ICS手机?(我想我需要为ICS手机实施一个全新的布局,但我仍然有一个问题,如何确定它是哪种设备,手机还是平板电脑 您可以使用 if(Build.V

我有一个为蜂巢(最初是3.0)开发的应用程序,在ICS发布后,用户可以用ICS将其安装到他们的手机上,而不仅仅是平板电脑上。我如何过滤这些电话?我试过使用
,但不起作用。还有一件有趣的事(至少对我来说),我的应用程序不会缩小到更小的屏幕。我使用固定大小的控件,但大小以dp为单位

简言之:

  • 有人知道我怎么过滤ICS手机吗?(最好来自代码)
  • 我应该如何支持ICS手机?(我想我需要为ICS手机实施一个全新的布局,但我仍然有一个问题,如何确定它是哪种设备,手机还是平板电脑
  • 您可以使用

    if(Build.VERSION.SDK_INT >= 14) {
        //ics
    }
    
    其中Build是android.os.Build类

    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);
    }
    
    从以下答案复制:


    您可能还希望限制Android Market允许用户在您的清单中包含的手机上安装此应用程序。

    如果您只希望您的应用程序在平板电脑市场上显示,请在您的AndroidManifest.xml中使用
    属性(更多信息)。确保在蜂巢3.2(x-大,大)之前使用两个标识符和3.2+(600dp等)


    你说的“我的应用程序不能缩小”到底是什么意思?你能在这里提供更多信息吗?

    谢谢,我看不见森林了:)。顺便说一句,对第二个问题有什么想法吗?无论如何,这不好,我不能决定这是手机还是平板电脑。我假设它们有相同的版本号(14)。最好的方法是创建一个BaseActivity,根据上述条件的结果询问“factory”类使用哪种行为。然后,BaseActivity类将使用一个接口来告诉实际的活动使用什么行为。谢谢。我不知道为什么,但当我在三星Galaxy Nexus上试用时,应用程序启动时没有任何问题,因为手机的屏幕分辨率是HD(或FullHD?)(x-large,大于600dp)。我的意思是“我的应用程序没有缩小”,当我从屏幕上启动应用程序时,只有一部分是可见的(中间),我对每个用户控件都使用了dip,所以理论上它是好的。啊,好的。Nexus上的这种行为实际上是意料之中的,因为虽然标准像素的数量大于600,但倾斜的数量却不是。Galaxy Nexus是一款xhdpi设备,这意味着2个标准像素相当于1个dip,因此其最短宽度为360dip。具有相同1280x720标准分辨率的平板电脑仅为mdpi,因此1个标准像素为一个标准dip。