首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅为片剂开发应用程序

仅为片剂开发应用程序
EN

Stack Overflow用户
提问于 2013-11-25 05:06:11
回答 3查看 2.2K关注 0票数 2

虽然这个问题已问过很多次,但我仍未能找到适当的解决办法。

我只想把我的应用程序安装在平板电脑上。我已经有了同样的手机应用程序,现在我希望它能安装在平板电脑上。我的平板电脑用户界面和手机完全不同。

Play Store现在增加了一个“平板电脑功能应用程序”选项。我查过

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

但是我读过这里google play并没有使用标记过滤

如果我使用像手机正在从Android游戏机商店中挑选平板电脑。、Grand、Nexus-4这样的android:largeScreens="true"手机,就可以看到这款平板电脑。但是我希望屏幕>7英寸应该安装我的应用程序。其他不应在play商店中显示安装按钮。

由于这个选项似乎不起作用,那么我怎么开始呢?是否有任何限制清单,我可以使用,以便应用程序将只安装在平板电脑?

另一方面,我发现要使通用应用于手机和平板电脑,可以对设备的屏幕大小进行任何条件检查。根据屏幕大小,我可以区分流量,一个是平板电脑,另一个是手机。

我完全糊涂了,哪条路最好走。任何指导或暗示都会对我做出正确的决定有很大帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-25 05:22:19

正如Android站点的http://developer.android.com/guide/practices/screens-distribution.html#FilteringTabletApps部分指出的那样:

如果你不想在手机上使用你的应用程序(也许你的应用程序只在大屏幕上才有意义)或者你需要时间来为小屏幕优化它,你可以通过使用清单元素阻止小屏幕设备下载你的应用程序。

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

代码语言:javascript
复制
<supports-screens
  android:smallScreens="false"
  android:normalScreens="false"
  android:largeScreens="true"
  android:xlargeScreens="true"
  android:requiresSmallestWidthDp="600"
  />

这并不能保证你的应用程序不会在特定类型的大型手机上运行(年轻人喜欢这样称呼它为“平板手机”),但这只是试图限制它的本质,因为它在Android开发中是任意的,比如手机和平板电脑,特别是当真正的区别仅仅是屏幕大小时。我也可以提到,最好将平板用户界面内置到你的应用程序中,但这可能需要额外的工作,这取决于这两个UI的不同。

无论如何,您的主要问题只是决定大小是否太小,并对其进行相应的限制。Google应该尊重屏幕大小的下限,但是在大屏幕上,<supports-screens>元素中的上限将被忽略,因为应用程序将在兼容性模式下运行。为了防止屏幕变大,无论出于什么原因,您都希望使用,除非您的UI由于某种原因完全不灵活,否则您可能不想使用它。

这听起来很奇怪。

票数 4
EN

Stack Overflow用户

发布于 2013-11-25 05:17:22

代码语言:javascript
复制
   <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

代码语言:javascript
复制
 <uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="14" />

因此,带姜饼的手机不能下载你的应用程序。

没有带蜂巢的手机(Api 11)

最后

支持ICS平板,因为它确实查看您的smallestWidth属性。

最后,ICS电话并不是因为正如我们所说的ICS使用smallestWidth属性

票数 1
EN

Stack Overflow用户

发布于 2013-11-25 05:15:11

但是我在这里读到了http://developer.android.com/guide/topics/manifest/supports-screens-element.html,google没有过滤标签requiresSmallestWidthDp。

只有3.2是正确的。您可以使用这篇文章中提到的以下内容。

代码语言:javascript
复制
<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文件放入包含以下内容的values文件夹中:

代码语言:javascript
复制
<bool name="isTablet">false</bool>

将config.xml文件放入值中-sw600dp文件夹,其中包含:

代码语言:javascript
复制
<bool name="isTablet">true</bool>

“主行动守则”:

代码语言:javascript
复制
onCreate(Bundle bundle){
    if(!getResources().getBoolean(R.bool.isTablet)){
        // Direct User to the phone version of the app.
    }
}

还有一件事:当你上传到Play Store时,你会收到一张可以根据你的清单下载应用程序的设备列表。你可以取消在那里的Note之类的设备。一个问题是,如果第二天有一种新的Note类设备上市,除非你定期更新支持的设备列表,否则该设备仍然可以下载该应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20185123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档