2011-11-29 110 views
1

如果我有一个需要拨打电话的应用程序,并且想要使其他版本不使用它(使其只能在平板电脑上工作),并且还可以使用它从市场上安装当然)我怎么能做到这一点?在Android Market的多个APK - 拨打电话

多APK的支持不会帮我,因为它只允许多个APK,如果他们有下列不同的:

  1. 的OpenGL纹理压缩格式
  2. 屏幕尺寸(和,可选,屏幕像素密度)
  3. API级别

请问我需要有2 differente应用? (这是lameee)。

我可以通过编译与两种不同的API(2.0:到应用程序没有电话权限和2.1与电话的权限应用程序)犯规问题/市场,但同时设置的MINVERSION到1.6,使他们无论在工作相同的设备?

即使它接受这个..市场会向设备显示正确的版本吗?

回答

2

如果你想支持通话,但你不想让没有通话的设备被排除,你不需要有两个APK。

只是这行添加到您的清单:

<uses-feature android:name="android.hardware.telephony" android:required="false" />

这将指出应用程序将使用电话(如果可用)。

-1

这个问题是非常普遍的,因为你不公开你的应用程序的哪些部分需要进行调用。

作为一个建议,您可避免通过执行以下操作与电话模块链接:

PackageManager pm = root.getContext().getPackageManager(); 
boolean telefon = pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY); 

如果电话等于假,应用程序不支持电话,因此,你应该不显示调用模块。

+0

问题是不显示或不显示。如果它具有清单许可权,则只有在使用WiFi下载到平板电脑时,它才会显示为不兼容。 – neteinstein

+0

@ kikoso,因为应用程序必须在清单中指定权限,所以应用程序不能“避免与调用模块链接” – pandre