【问题标题】:Find device type(smartphone/tablet) in android在 android 中查找设备类型(智能手机/平板电脑)
【发布时间】:2012-07-06 22:51:05
【问题描述】:

如何通过我的程序找到设备是智能手机或桌子?我尝试了 android.os.Build 类的所有字段。我得到的信息是

操作系统版本:2.6.35.7(DXKL2)
操作系统 API 级别:10
设备:GT-S5360 型号(及产品):GT-S5360(GT-S5360)
董事会:龙猫
品牌:三星
CPU_ABI:armeabi
显示:姜饼.DXKL2
指纹:samsung/GT-S5360/GT-S5360:2.3.6/GINGERBREAD/DXKL2:user/release-keys
主机:DELL152
编号:姜饼
制造商:三星
类型:用户
用户:root

此信息对我没有帮助。谁能告诉我如何找到它?

【问题讨论】:

    标签: android


    【解决方案1】:

    您可以调用此代码查看屏幕密度:

    int screen_density = (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK);
    
    if (screen_density == Configuration.SCREENLAYOUT_SIZE_LARGE || screen_density == Configuration.SCREENLAYOUT_SIZE_XLARGE) {
         //The device is a tablet or at least has the screen density of a tablet
    }
    

    您还可以通过以下代码获取屏幕尺寸:

    Display display = getWindowManager().getDefaultDisplay(); 
    int width = display.getWidth();
    int height = display.getHeight();
    

    最后,请记住,android Honeycomb(3.+) 只能在平板电脑上运行,因此您可以使用以下方法检查 Android 版本:

    int currentapiVersion = android.os.Build.VERSION.SDK_INT;
    
    if(currentapiVersion == android.os.Build.VERSION_CODES.HONEYCOMB ||
       currentapiVersion == android.os.Build.VERSION_CODES.HONEYCOMB_MR1 || 
       currentapiVersion == android.os.Build.VERSION_CODES.HONEYCOMB_MR2) {
    
      //The device is a tablet
    }
    

    编辑:为了澄清,上面的代码假设您对设备屏幕尺寸和密度感兴趣,以便将设备分类为平板电脑。正如 Michael Kohne 的回答所述,有许多技术方面使这种分类变得困难(如果不是不可能的话)。

    希望这会有所帮助:)

    【讨论】:

    • 还有一些平板电脑在 ICS Android 4.0 上运行,因此 currentApiVersion 检查不是很有用。
    【解决方案2】:

    你真正想知道什么?您想知道设备是否可以拨打电话吗?你想知道屏幕有多大吗?有一些 API 可以找出这些东西。

    “智能手机”和“平板电脑”是营销标签——它们在技术层面上并没有真正的意义,因为一个人可以制造平板大小的设备,通过手机网络拨打电话,一个人可以制造电话大小的设备,除了 wi-fi 之外没有任何网络!

    告诉我们您真正想了解的内容,我们可以为您指明正确的 API。

    【讨论】:

    • @Michel 感谢您的回复。实际上,在我的应用程序中,我需要将设备类型发送到我的服务器。在服务器端,他们根据此设备类型生成报告。你清楚吗?
    • @VenuGopal - 然后将模型/产品发送到服务器并让他们弄清楚这意味着什么。问题是你有一些产品在市场上有相当大的冲击力——比如三星Galaxy Note——那是一款小型平板电脑吗?还是大型智能手机?这有点随意,所以操作系统不能告诉你。如果您真的必须在设备上回答问题,那么我会以蜂窝电话的存在或不存在作为要处理的事情。
    猜你喜欢
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 2014-04-14
    • 2014-03-27
    • 1970-01-01
    • 2018-09-04
    • 2015-05-28
    • 1970-01-01
    相关资源
    最近更新 更多