我有两款适用于Android平板电脑和Android手机的应用程序。对于平板电脑应用程序,我设置了android:minSdkVersion="11"
。但如今,像Galaxy S3这样的安卓手机已经安装了安卓4.0.4版本,因此S3用户可以从谷歌Play商店下载我的平板电脑应用。我想警告手机用户在安装平板电脑应用时下载手机应用。反之亦然,平板电脑用户在运行手机应用程序时下载平板电脑应用程序。
有什么简单的方法来检测设备类型吗?
编辑:
我在这个link上找到了解决方案。
在您的清单文件中,您可以声明手机和平板电脑的屏幕功能,然后Google Play决定手机和平板电脑的下载权限。
发布于 2012-07-04 22:22:58
使用以下命令:
public static boolean isTablet(Context context) {
return (context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK)
>= Configuration.SCREENLAYOUT_SIZE_LARGE;
}
如果设备在大屏幕上运行,则返回true。
。
发布于 2015-12-14 15:27:39
你也可以试试这个
在资源文件中添加布尔参数。
在res/values/dimen.xml文件中,添加以下行
<bool name="isTab">false</bool>
在res/values-sw600dp/dimen.xml文件中,添加以下行:
<bool name="isTab">true</bool>
然后在你的java文件中获取这个值:
if(getResources().getBoolean(R.bool.isTab)) {
System.out.println("tablet");
} else {
System.out.println("mobile");
}
发布于 2013-09-11 20:16:37
这段代码将告诉你设备类型是7英寸还是更大,以及Mdpi或更高的分辨率。你可以根据需要改变实现。
private static boolean isTabletDevice(Context activityContext) {
boolean device_large = ((activityContext.getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) ==
Configuration.SCREENLAYOUT_SIZE_LARGE);
if (device_large) {
DisplayMetrics metrics = new DisplayMetrics();
Activity activity = (Activity) activityContext;
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
if (metrics.densityDpi == DisplayMetrics.DENSITY_DEFAULT
|| metrics.densityDpi == DisplayMetrics.DENSITY_HIGH
|| metrics.densityDpi == DisplayMetrics.DENSITY_MEDIUM
|| metrics.densityDpi == DisplayMetrics.DENSITY_TV
|| metrics.densityDpi == DisplayMetrics.DENSITY_XHIGH) {
AppInstance.getLogger().logD("DeviceHelper","IsTabletDevice-True");
return true;
}
}
AppInstance.getLogger().logD("DeviceHelper","IsTabletDevice-False");
return false;
}
https://stackoverflow.com/questions/11330363
复制相似问题