我为移动设备和平板电脑做了一个应用程序。在这里,我想在移动设备上看到我的一些内容,但不是在平板电脑中。
如何在启动活动时检测Android设备是手机还是平板电脑。
我谷歌并找到一些像User -agent这样的建议.. 我该如何使用它或任何其他解决方案??
提前致谢...
答案 0 :(得分:1)
public static boolean isTablet (Context context)
{
return (context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK)
>= Configuration.SCREENLAYOUT_SIZE_LARGE;
}
如果是平板电脑,这将返回true;如果是移动设备,则返回false
答案 1 :(得分:1)
TelephonyManager manager = (TelephonyManager) getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
if (manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE)
{
//It's a tablet
}
else
{
//It's a phone
}
应该有效
答案 2 :(得分:1)
好吧,当针对不同类型的屏幕尺寸使用不同的资源时,最好的文章是"Supporting Multiple Screens"
。
我检测设备类型的最简单方法是在strings.xml
中为单个密钥添加不同的值,我们称之为"device_type"
。所以在:
strings.xml
我将<string name="device_type">smartphone</string>
strings.xml
我将<string name="device_type">tablet</string>
strings.xml
我将<string name="device_type">small</string>
strings.xml
我将<string name="device_type">xlarge</string>
有了上下文,我将读取此值并确定我拥有的设备类型。
答案 3 :(得分:0)
使用
public static boolean isTablet(Context context) {
return hasHoneycomb() && isTab(context);
}
有支持功能
public static boolean hasHoneycomb() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB;
}
public static boolean isTab(Context context) {
return (context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK)
>= Configuration.SCREENLAYOUT_SIZE_LARGE;
}