【问题标题】:How to make Multiple APKs based on uses-features "android.hardware.telephony" in Android?如何在 Android 中根据使用功能“android.hardware.telephony”制作多个 APK?
【发布时间】:2014-10-11 09:24:33
【问题描述】:

我想使用 Android 中的多 APK 支持来创建 2 个不同的 APK。

  • 一个适用于支持“电话和短信”的设备的 APK。

  • 另一个适用于不支持“电话和短信”的设备的 APK。

    其他功能在两个 APK 中都是通用的。

当我在Manifest.xml 中保留所需的功能和权限时,我已经获得了第一个 APK。

<uses-feature android:name="android.hardware.telephony" android:required="true"/>
<uses-permission android:name="android.permission.SEND_SMS"/>

我尝试为不应具有“电话和短信”功能的设备创建另一个 APK,并进行了以下Manifest 更改。

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

但是,我没有成功。谁能告诉我如何实现这一目标。

提前致谢。

【问题讨论】:

    标签: android multiple-apk uses-feature


    【解决方案1】:

    无需创建多个 APK。

    如果你使用:

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

    您的 apk 可用于支持此功能的设备和不支持此功能的设备。只需在您的代码中检查电话适配器的实例是否为空:

    hasSystemFeature(PackageManager.FEATURE_TELEPHONY)
    

    getPhoneType()
    

    【讨论】:

    • 是的,无论有没有这个功能,结果都是一样的。但是,当我给出“”时,所有没有电话功能的设备都被删除了。我需要此权限才能发送 SMS,并且无法在运行时强制执行。所以,我需要在清单本身中以某种方式处理它。
    • &lt;uses-permission android:name="android.permission.SEND_SMS"/&gt; 不应强制使用电话,因为它只是一个必须匹配的字符串,以防您使用电话功能。无论如何,我认为您可以使用 PackageManager 以编程方式通过代码添加权限。
    猜你喜欢
    • 1970-01-01
    • 2021-04-12
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 2018-05-05
    • 1970-01-01
    相关资源
    最近更新 更多