检查应用是否在平板电脑上运行

时间:2012-07-02 20:46:37

标签: android

您可以使用以下方法检查您的应用是否在不同版本的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;

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

修改

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

2 个答案:

答案 0 :(得分:3)

不要尝试检测平板电脑,而应考虑检测屏幕尺寸并检测设备支持的功能,因为手机和平板电脑之间的差异并未明确定义(并且可能会发生变化)。

要检测功能,请使用PackageManager课程,特别是hasSystemFeaturegetSystemAvailableFeatures。为了检测屏幕大小,第二种方法是嗅探不同文件夹中布局的变化,这是处理它的一种合适方式。

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

答案 1 :(得分:0)

要检查它是否在平板电脑上运行this answer就足够了。请记住,你可能会问错误的问题。您的程序应该更担心您正在使用的设备的特定特征。 (例如屏幕尺寸,记忆功能等)