1

您可以使用以下方法检查您的应用程序是否在不同版本的 Android 上运行:

int sdk = Build.VERSION.SDK_INT;
if (sdk <= Build.VERSION_CODES.ECLAIR){
    //do stuff
} else {
    //do some other stuff
}

是否有这样的平板电脑使用检查?目前我有两种方法可以找出我不喜欢的:

Configuration configuration = getResources().getConfiguration();
if (configuration.orientation == Configuration.ORIENTATION_LANDSCAPE) {
   try {
       return configuration.screenWidthDp >= 1024; 
    } catch (NoSuchFieldError ex) {
        return false;
    }
} else {
    return false;
}

而且,如果我使用具有不同视图 ID 的不同布局文件:

return findViewById(R.id.mytabletlinearlayout) == null;

是否有类似可用的版本代码?还是有另一种更优雅的解决方案?

编辑

为了清楚起见,如果我在平板电脑上运行我的应用程序,我需要执行一些不同的操作,因为那时我使用的是多窗格布局。

4

2 回答 2

3

与其尝试检测平板电脑,不如考虑检测屏幕尺寸和检测设备支持的功能,因为手机和平板电脑之间的差异并没有完全明确(​​并且可能会发生变化)。

要检测功能,请使用PackageManager类,特别是hasSystemFeaturegetSystemAvailableFeatures。为了检测屏幕尺寸,您在不同文件夹中嗅探布局更改的第二种方法是处理它的合适方法。

如果您在运行时检查可用功能,您将不会被迫提前对平板电脑进行概括,例如假设它们没有后置摄像头或类似的其他功能。

于 2012-07-02T20:54:47.060 回答
0

要检查它是否在平板电脑上运行,这个答案就足够了。请记住,您可能会问错误的问题。您的程序应该更关心您正在使用的设备的具体特性。(例如屏幕尺寸、内存容量等)

于 2012-07-02T20:54:50.113 回答