2012-02-28 129 views
1

我创建了在平板电脑和手机上非常好用的应用程序。对于检测(界面设置)即时使用的宽度和高度.. if width > 1280 - 它必须是平板电脑..但是..我的朋友测试这个应用程序上三星银河注..这是一个小电话(不是平板),但屏幕分辨率= 1280×800。现在我遇到了显示问题..可以告诉我 - 有没有办法检测:平板电脑或手机?如何知道:它是手机还是平板电脑?

请告诉我,如果有人知道..

问候彼得。

对不起,因为我的英语不好..我想要更好。

+0

我不这么认为其可能的......由于Android OS开发者认为,您的应用程序willadapt本身,无论它是设备..也许这就是为什么他们有不同的可绘制文件夹的低,中,高分辨率... – ngesh 2012-02-28 08:49:08

+0

@Kheldar http://upload.wikimedia.org/wikipedia/commons/thumb/4/42/Samsung_Galaxy_Note_Screenshot.png/800px -Samsung_Galaxy_Note_Screenshot.png看到这个图像..姆布里克不正确的了解你 – Peter 2012-02-28 08:53:24

回答

0

以像素为单位的宽度(或高度)不决定屏幕尺寸。屏幕尺寸取决于分辨率(像素)和密度。 Android提供了各种概念来支持不同的屏幕尺寸。详情请参阅此处:http://developer.android.com/guide/practices/screens_support.html

+0

非常好的链接。我会特别补充一点,你可能会发现最常用的布局大,布局正常等。 – Knossos 2012-02-28 08:51:03

0

您可以使用类似Device Atlas的内容来检测用户代理的这些功能。提供您可以托管自己的API,并且还提供云服务。两者都是溢价(付费)

或者,您可以使用类似Wurfl,根据我的经验,这是不准确的。

0

要让手机成为手机,必须能够拨打电话。你为什么不检查TelephonyManager有一个叫做getPhoneType()的方法。如果它返回PHONE_TYPE_NONE,那么它不是电话。

+0

好主意,但平板电脑可以调用:( – Peter 2012-02-28 09:24:35

1

你可以试试这个代码,在Chrome中发现电话分机例如:

static boolean isTablet (Context context) { 
     // TODO: This hacky stuff goes away when we allow users to target devices 
     int xlargeBit = 4; // Configuration.SCREENLAYOUT_SIZE_XLARGE; // upgrade to HC SDK to get this 
     Configuration config = context.getResources().getConfiguration(); 
     return (config.screenLayout & xlargeBit) == xlargeBit; 
    } 
相关问题