【发布时间】:2013-02-03 09:45:14
【问题描述】:
我知道这个问题已经被打死了,但我不希望这里有任何超级复杂的东西。
我们的网站有一个配套应用程序,该应用程序仅与 7 英寸和 10 英寸平板电脑兼容。我们只需要提醒那些设备上的用户我们的应用程序。问题是,我不能通过决议去。我的 Galaxy S3 有一个 1280 x 720 的屏幕,但显然不是平板电脑。我也无法找到获得物理屏幕尺寸的方法。我想出的唯一解决方案是检测设备是否可以使用MobileCapabilities.CanInitiateVoiceCall 拨打电话。不幸的是,老板对这个解决方案并不满意。
那么...如何在我的网络应用(服务器端或客户端)中区分手机和平板电脑?
更新:到目前为止,Android 团队的博客文章似乎是最好的方法:所有 Android 手机在 UserAgent 中使用“Mobile”字符串,因此检查“Mobile”*和“Android”会告诉您它是否是手机,而“Android”应该是平板电脑。 iOS 设备应该同样简单——到目前为止,检查“iPhone”和“iPad”似乎已经奏效了。
【问题讨论】:
-
“我们只需要提醒那些设备上的用户我们的应用程序” – 为什么?如果设备具有适当的分辨率来显示您的内容,请不要将它们拒之门外。让您的设计具有响应性,并支持任何设备。
-
如果你真正想要的是区分手机和平板电脑,我认为手机成为手机的定义是它是否可以打电话。我不确定你的最终目标是什么,但平板电脑/电脑/手机之间的界限变得非常模糊,能够打电话是唯一能让手机成为手机的东西。
-
如果安卓手机和平板电脑都有足够大的分辨率来满足您的应用,那么您需要区分这两种设备有什么不同?答案应该是您使用什么来确定您的决定应该取决于什么。
-
@poke:不幸的是,我们没有编写应用程序,(外包)并且存在的应用程序仅与 7" 和 10" 平板电脑明确兼容。如果不兼容设备上的用户点击我们应用程序的链接,他们只会在 Play 商店中收到“您的设备不兼容”消息。所以基本上这是一个糟糕设计的解决方法。
-
那么检查电话呼叫能力可能不是一个强制的解决方案。一些 Galaxy 7/10" 平板电脑有 GSM 天线,因此可以打电话(尽管 IDK API 会报告什么,或者如果运营商在他们的操作系统构建中禁用它):gsmarena.com/samsung_p7100_galaxy_tab_10_1v-3831.php
标签: c# javascript asp.net mobile webforms