1

我正在开发一个仅针对平板电脑而不针对手机的应用程序。

这段代码是否足以实现我的目标?有什么方法可以测试它或谷歌播放它本身并呈现给用户?

下面是我尝试过的代码。但是不知道怎么测试?

<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="18" />

<supports-screens
android:largeScreens="true"
android:normalScreens="false"
android:smallScreens="false"
android:requiresSmallestWidthDp="600"
android:xlargeScreens="true" />

是否android:anyDensity="true"应该与支持屏幕标签一起提供?或者只是保留该属性。我想在所有平板电脑上运行我的应用程序。

在这种情况下,任何帮助都是非常可观的。提前致谢。

4

3 回答 3

1

似乎还可以,据我所知应该可以工作。

想想你对平板电脑的定义。与 7 英寸平板电脑相比,是什么让您的应用更不适合 6 英寸手机?

在您将其上传到 Google Play 商店之前,您无法真正对此进行测试。manifest.xml 中的这些过滤器由 Google Play 商店使用,而不是在安装应用程序时使用。他们只是确保有人在他的平板电脑上找不到该应用程序,并且安装按钮在网站上不起作用。

你可以通过上传你的APK而不是发布我想来测试它。它将为您提供当前设置支持的设备列表。

于 2013-10-28T09:20:00.897 回答
1

无论你给出的是正确的,你都必须在平板电脑上测试它会加载,而对于手机它不会启动。

并进入 android 市场发布者页面。

1.确保您的应用已上传。

2.单击您的应用名称。

3.向下滚动到显示“显示设备”的位置。

4.单击它,您可以将所有手机排除在下载您的应用程序之外。

如果您无法在清单中为屏幕尺寸等设置一些参数,但这不太可靠。

于 2013-10-28T09:24:29.670 回答
0

你可以在这里使用一个技巧......

1)创建一个启动活动,它只在成功场景中创建一个启动实际活动时验证屏幕大小。像,

// In onCreate of startup activity
if (isTablet()) {
    startActivity(new Intent(StartupActivity.this, MainActivity.class));
    this.finish(); // don't forget to kill startup activity after starting main activity.
} else {
    setContentView(R.layout.startup);
}

这是关键点。在其他情况下,您应该为此活动设置布局,理想情况下,该活动可以带有标签,例如“不支持设备”。和一个关闭应用程序的按钮。

2)理想情况下,如果您只想支持平板电脑,您应该将所有字符串资源放在res/values-large/strings.xml中。所以这是诀窍,只需在您的字符串资源中添加以下项目......

<string name="is_supported_screen">true</string>

现在在res/values/strings.xml创建一个新的字符串资源文件,该文件将包含相同的字符串项,但具有错误值,例如...

<string name="is_supported_screen">false</string>

注意:确保此字符串资源文件必须至少包含 StarupActivity 中使用的所有资源,例如活动标题、设备不支持消息、关闭应用按钮文本等。

3)最后在您的 StartupActivity 中编写一个方法,例如,

private boolean isTablet() {
    if (Boolean.parseBoolean(context.getResources().getString(R.string.is_supported_screen))) {
        return true;
    } else {
        return false;
    }
}

它完成了...... :)

实际上这里发生的情况是,对于像平板电脑这样的大屏幕设备,将从res/values-large/strings.xml加载字符串资源,并且会找到true,在其他设备的情况下,android 将从res/values/strings 加载资源。 xml,它将找到falseint 的isTablet()值的方法R.string.is_supported_screen

最后,如果应用程序安装在平板电脑中,您的主要活动将启动,并且将显示设备不支持的消息。

我想强调这是一个技巧,因此您需要仔细执行所有步骤。任何错误,你都不会得到想要的结果。

于 2013-10-28T09:54:55.017 回答