我想使用Modernizr来检测用户是在桌面,平板电脑还是移动设备上查看网站.
我最初的第一个想法显然是检查屏幕尺寸应该足够用于移动设备以及更大的桌面.对于屏幕尺寸也可能与小型桌面屏幕(1024 x 768)相同的平板电脑设备,我也会测试触摸事件.
在这个时候,我想专注于移动/平板电脑设备,就像jQuery mobile所说的那样,A级.我不打算使用任何特定的移动设备功能,只需检测桌面,平板电脑或移动设备,并根据测试结果附加CSS类,为每个设备提供量身定制的UI.
你认为这足以实现我想要的,或者你认为我应该测试其他功能吗?提前谢谢了.
我刚刚发布了我的手机和平板电脑的应用程序,但它没有出现在谷歌播放平板电脑上.
检查Nexus 7和华硕eeeePad
这是我在清单文件中的内容
<compatible-screens>
<!--no small size screens -->
<!--Only hdpi and xhdpi for normal size screens -->
<screen android:screenSize="normal" android:screenDensity="mdpi" />
<screen android:screenSize="normal" android:screenDensity="hdpi" />
<screen android:screenSize="normal" android:screenDensity="xhdpi" />
<!-- all large size screens -->
<screen android:screenSize="large" android:screenDensity="ldpi" />
<screen android:screenSize="large" android:screenDensity="mdpi" />
<screen android:screenSize="large" android:screenDensity="hdpi" />
<screen android:screenSize="large" android:screenDensity="xhdpi" />
<!-- all xlarge size screens -->
<screen android:screenSize="xlarge" android:screenDensity="ldpi" />
<screen android:screenSize="xlarge" android:screenDensity="mdpi" />
<screen android:screenSize="xlarge" android:screenDensity="hdpi" />
<screen android:screenSize="xlarge" android:screenDensity="xhdpi" />
</compatible-screens>
Run Code Online (Sandbox Code Playgroud)
uses-sdk标签
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="11" …Run Code Online (Sandbox Code Playgroud) 在Play开发者控制台中,它说:
您的APK似乎不是专为平板电脑设计的
但我添加了layout-sw600dp,layout-sw600dp-land,layout-sw720dp和layout-sw720dp-land文件夹的布局.完整的清单(原样):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.technicosa.unjumble"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="18" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Sherlock.Light.DarkActionBar" >
<activity
android:name="com.technicosa.unjumble.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.technicosa.unjumble.UserSettingsActivity"
android:label="@string/title_activity_user_settings" >
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
该应用程序在模拟器中的Nexus 7和Nexus 10上运行完美.同样在开发者控制台的优化提示下,它说:
您的制作APK需要符合以下条件:使用10英寸平板电脑上的可用屏幕空间
我的应用的截图:

虽然应用程序似乎在平板电脑上运行(我只在模拟器上测试过),但必须采取哪些措施来满足Play标准?
我一直在思考这个问题,我无法想办法解决这个问题.有没有办法检测用户是使用虚拟(软件)键盘还是传统(硬件)键盘?
新的Windows Surface在封面上有自己的键盘,对于Android/iPad,有大量不同的蓝牙键盘.
那么,你们中有人对此有任何意见吗?
我的目标是Android,IOS和Windows平板电脑/手机.
动机:(非常主观)
在开发平板电脑/智能手机的网络应用程序时,我已经认识到在许多情况下使用JavaScript键盘而不是操作系统的软件键盘会更容易.
假设您要输入PIN码.而不是让键盘填满屏幕的一半:
软件(OS)键盘:
|----------------|
| [ input] |
| |
|----------------|
| 1 2 3 4 5 |
| 6 7 8 9 0 |
|----------------|
Run Code Online (Sandbox Code Playgroud)
JavaScript键盘:
|----------------|
| [ input] |
| | 1 2 3| |
| | 4 5 6| |
| |_7_8_9| |
| |
| |
|----------------|
Run Code Online (Sandbox Code Playgroud)
如果您需要处理大量输入,可能需要对输入进行叠加div并使用软件键盘:
|----------------|
| P1 P2 P3 P4 |
| [inp 1][inp 2] |
|----------------|
| KEYBOARD |
| | …Run Code Online (Sandbox Code Playgroud) 一位家庭成员几年前中风,现在有表现性失语症.她理解对她说的是对正在发生的事情的认知,但不能表达自己.她可以回答是/否问题(你想去购物吗?你在寻找你的耳环吗?)但她不能阅读(英语不是她的母语,她没有读过印地语几十年.)
我是这个家庭的技术专家,我打算想出一些东西来帮助我们沟通.这个想法是有一些图画书,她可以指出她想要的东西.
我的第一个问题:对于有表现性失语症的人,是否已经存在某种辅助技术?这些可以是硬件还是软件设备?
如果没有,那么这样的软件似乎并不难写.我最初的想法是有一个图片界面 - 可能按类别(食物,购物)分开 - 在那里她可以指向一张单独的图片来表明她需要什么.我们可以使用这样的软件轻松添加更多项目,我们可以有一个界面,她(或我们)可以"翻页".
这表明最好的解决方案是使用触摸屏而不是鼠标.训练她瞄准鼠标或在键盘上找到键是非常困难的.
我们正在考虑购买平板电脑并编写一些基本软件.但平板电脑价格昂贵且易碎 - 我不确定它是否能够在养老院遭受泄漏或被撞倒.
所以我的下一个问题是:我可以在哪种类似平板电脑的设备上进行编程?我对硬件一无所知,但如果有什么东西,我们可以特别订购它.这样一个项目的安全性和持久性是什么?我们可以在iPod或手机上做点什么,但我觉得这个界面太小了.
最后,这里有没有人有这种辅助技术的经验?在设计这样的系统时我可能没有预料到的事情?
编辑
我添加了一个(非常大的!)赏金.我有点想把这个问题提到人们可能有的任何建议,评论和经验.这是一个非常现实和重要的项目,因此,虽然我们将(正在制定)解决方案,但任何见解都会特别有用.
现在计划是在她的房间里安装一个屏幕.在看到她能够使用简单的原型后,我们要么教她使用轨迹球,要么使用触摸屏.然后软件类似于旧的"超级卡"套牌:
---------------------------------------------------------------- | -------------- -------------- | | | Clothes | | Food | ... | | -------------- -------------- | | | | Pic of item 1 Pic of item 2 Pic of item 3 | | | | | | | | | | Pic of item 4 Pic of item 5 Pic of item 6 | | | | | | | | …
有没有办法在Android平板电脑上设置python 2.7.x + matplotlib,以便您可以运行简单的标准python代码?我希望能够运行我在Linux桌面上运行的相同脚本.这仅供我自己使用,我不需要将代码分发给其他任何人.
作为一个具体的例子,是否可以运行此脚本?
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 5, 0.1);
y = np.sin(x)
plt.plot(x, y)
Run Code Online (Sandbox Code Playgroud) 是否有任何漂亮和干净的方法或技巧,以确定用户是否在触摸设备上?
我知道有类似的东西
var isiPad = navigator.userAgent.match(/iPad/i) != null;
但我只是想知道是否有一个技巧来确定用户是否在Touch设备上?因为有更多的触摸设备和平板电脑,那么只有iPad.
谢谢.
由于Eclipse可以在Linux中运行,而且这款平板电脑具有新的Honeycomb(Linux内核),Eclipse IDE可以在Android Honeycomb中运行吗?
我知道在平板电脑中编码并不是很舒服,但我想用于UML建模.
不久前,我能够在Android上调整屏幕大小.例如,我有一个Xoom,并且能够从ADB运行一个命令,将它缩小到一个7英寸的屏幕(在它周围留下一个黑色边框).当然,这是一个小小的车,因为家/后/应用程序 - 切换按钮消失了,但我知道这是可能的.这是一个1行命令,我在X和Y像素中为Xoom输入新的屏幕分辨率.
我想知道是否有人熟悉这一点,并知道如何做到这一点.
(如果有人说这是不可能的,我可以向你保证)
(我想这样做,所以我可以在我的Nexus 10上测试各种屏幕尺寸的应用程序,我不想使用模拟器)
我在Play商店发布我的应用程序,我不希望它可用于平板电脑.我怎样才能实现呢?
我不想手动排除android开发者控制台中的每一个平板电脑,但我真的需要我的应用程序专门在智能手机上运行.
编辑:我按你的建议做了,但结果如下:

并进一步解释:我需要我的应用程序在普通人称为智能手机的设备上运行,而不是在普通人称为平板电脑的设备上运行...例如,它必须在"Galaxy Note 2"上运行,而不是在"Galaxy Tab"上运行
已解决感谢@CommonsWare:
我必须在清单中设置以下标记:
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="9"/>
Run Code Online (Sandbox Code Playgroud)
和:
<compatible-screens>
<!-- all small size screens -->
<screen android:screenSize="small" android:screenDensity="ldpi" />
<screen android:screenSize="small" android:screenDensity="mdpi" />
<screen android:screenSize="small" android:screenDensity="hdpi" />
<screen android:screenSize="small" android:screenDensity="xhdpi" />
<!-- all normal size screens -->
<screen android:screenSize="normal" android:screenDensity="ldpi" />
<screen android:screenSize="normal" android:screenDensity="mdpi" />
<screen android:screenSize="normal" android:screenDensity="hdpi" />
<screen android:screenSize="normal" android:screenDensity="xhdpi" />
<!-- all large size screens -->
<screen android:screenSize="large" android:screenDensity="ldpi" />
<screen android:screenSize="large" android:screenDensity="mdpi" />
<screen android:screenSize="large" android:screenDensity="hdpi" />
<screen android:screenSize="large" android:screenDensity="xhdpi" …Run Code Online (Sandbox Code Playgroud)