仅为平板电脑开发应用程序

时间:2013-11-25 05:06:11

标签: android google-play

虽然很多次都会问这个问题,但我无法找到适当的解决方法。

我只想将我的应用程序安装在平板电脑上。我已经拥有相同的手机应用程序,现在我希望它安装在平板电脑上。平板电脑的用户界面与手机完全不同。

Play商店现已添加了“平板电脑的精选应用”选项。我查看了this

我应该通过添加<supports-screens android:requiresSmallestWidthDp="600">开发另一个仅适用于平板电脑的应用吗?

但我已阅读here google play不会使用标记requiresSmallestWidthDp进行过滤。

看到这个Phones are picking tablet build from Android play store如果我使用像Note2这样的android:largeScreens="true"手机,Grand,Nexus-4可以选择平板电脑版本。但我想要屏幕&gt; 7英寸应安装我的应用程序。其他不应该在Play商店中显示安装按钮。

由于此选项似乎不起作用,那我该如何开始呢?对我可以使用的清单有任何限制,以便应用程序只安装在平板电脑中吗?

另一种方法是我为手机和平板电脑制作通用应用程序。 应用任何条件检查设备的屏幕尺寸。根据屏幕尺寸,我可以区分平板电脑的流量和手机的流量。

我完全糊涂了,哪种方式应该是最好的去。 任何指导或暗示都会帮助我做出正确的决定。

3 个答案:

答案 0 :(得分:2)

正如Android开发者网站的Best Practices部分所指出的那样:

  

如果你不希望你的应用程序在手机上使用(或许你的应用程序只在大屏幕上才有意义),或者你需要时间来优化它以适应更小的屏幕,你可以防止小屏幕设备下载你的app使用<supports-screens>清单元素。

因此,您要做的是决定您认为是平板电脑的屏幕尺寸,并且仅支持这些屏幕。例如,正如开发人员所建议的那样。再次站点,您可能会将其限制为只有大屏幕和更大的¹,并且清单中包含<supports-screen>元素,如此(也是从Android开发站点借用):

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

这并不保证你的应用程序不会在某些类别的超大手机上运行(“phablets”就像年轻人喜欢称之为'em),但这只是试图根据任意的东西来限制它的本质在Android开发中作为手机与平板电脑,特别是当真正的差异只是屏幕尺寸。我还可以提一下,最好只将平板电脑用户界面构建到您的应用中,但这可能涉及一些额外的工作,具体取决于两个用户界面的不同。

无论如何,你的主要问题只是决定它的小小,并相应地限制它。 Google Play应该尊重屏幕尺寸的下限,但<supports-screens>元素的上限将在较大的屏幕上被忽略,因为应用程序将以兼容模式运行。为了防止更大的屏幕,无论出于何种原因,您都希望使用<compatible-screens>,除非您的UI由于某种原因完全不灵活,否则您可能不想这样做。

¹这听起来很奇怪。

答案 1 :(得分:0)

  

但我已在此处阅读http://developer.android.com/guide/topics/manifest/supports-screens-element.html,Google Play并未过滤标记requiresSmallestWidthDp。

仅适用于3.2。您可以使用this article中提到的以下内容。

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

如果您的用户界面完全不同,我建议您重新查看,因为同一位用户可以在手机和平​​板电脑上使用相同的应用。此外,维护不同的代码库可能是一项非常重要的任务。我建议你也为平板电脑优化相同的应用程序。片段的设计和设计完全相同。

如果Google Play仍然显示您的应用程序设备,例如Note,您可以在仅限平板电脑的应用中使用以下内容:

将config.xml文件放在包含以下内容的值文件夹中:

<bool name="isTablet">false</bool>

将config.xml文件放在包含以下内容的值-sw600dp文件夹中

<bool name="isTablet">true</bool>

MainActivity的代码:

onCreate(Bundle bundle){
    if(!getResources().getBoolean(R.bool.isTablet)){
        // Direct User to the phone version of the app.
    }
}

还有一件事:当您上传到Play商店时,您将获得一个设备列表,可以根据您的清单下载该应用。您可以在那里取消选中Note类型的设备。一个问题是,如果第二天新的Note类设备上市,该设备仍然可以下载该应用程序,除非您定期更新支持的设备列表。

答案 2 :(得分:0)

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

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

要获得HoneyComb平板电脑,您只需更改minSdk

即可
 <uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="14" />

因此,姜饼及以下手机无法下载您的应用程序
没有带蜂窝的手机(api 11)

最后

支持ICS平板电脑,因为它会查看您的smallestWidth属性

最后ICS手机并不是因为我们说ICS使用了smallestWidth属性