4

我希望我的应用同时适用于手机和平板电脑。手机和平板电脑版本之间的唯一区别是:在“手机”版本中,我的应用程序有按钮,允许拨打特定号码的电话。我的问题是什么:为了能够打电话,我需要向清单文件添加权限-

<uses-permission android:name="android.permission.CALL_PHONE" />

此权限使应用程序与平板电脑不兼容。如果我删除权限,应用程序无法拨打正在手​​机上启动的电话。如何制作一个同时支持手机和平板电脑并允许从手机拨打电话的应用程序?

4

2 回答 2

7

Play Store 上的单个应用程序可以有多个 apk,很多应用程序使用它来自定义体验。如果您在 Play 商店页面上看到提到的 Android 版本有所不同,那么您就知道他们正在遵循这种方法。

您可以在第二个项目中删除此权限并删除与电话相关的代码。根据设备的类型,Play Store 将显示相应的 apk(即电话权限 apk 用于手机,第二个用于平板电脑)

或者

在 Android Manifest 文件中使用

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

在你的代码中

boolean hasTelephony = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY);

我已从Supporting android devices with phone and without phone capabilities中获取此信息

于 2012-06-26T15:53:28.513 回答
2

请参考这个问题,android.permission.CALL_PHONE 用于平板电脑,手机应用程序通常适用于平板电脑,如果您遇到问题,请考虑发布两个不同版本的应用程序,一个用于手机,另一个用于平板电脑。

于 2012-06-26T15:19:06.367 回答