在 Android 清单中,如何要求至少两个硬件中的一个?
In Android manifest, how to require at least one of two pieces of hardware?
例如,如果编写涉及两个设备之间无线数据传输的应用程序,则可以通过蓝牙或 NFC 来完成。那么,在 Manifest 中,您将如何表示该应用至少需要这两者之一?我对 XML 没有什么经验,所以我不确定如何处理这个问题。
一种解决方案是使用 build variants in Android Studio。此功能使您可以轻松共享代码,并为同一应用程序的不同变体提供自定义代码和配置。您将需要创建两个 "product flavors",一个用于 NFC,另一个用于蓝牙。通用代码和 AndroidManifest 将位于 Android Studio 项目的 main
文件夹中。自定义项将位于每个变体的单独文件夹中。这包括 Android 具有不同 <uses-permission>
标签的清单文件。您可能还会有不同的代码来实际实现您的 hardware-dependent 功能。
当您准备好发布到 Google Play 时,您需要构建两个不同的 APK 文件,一个用于 NFC 支持,一个用于蓝牙。您可以将这两个 APK 上传到同一个 Google Play 应用。 (参见Multiple APK Support。)从用户的角度来看,只有一个应用程序。
例如,如果编写涉及两个设备之间无线数据传输的应用程序,则可以通过蓝牙或 NFC 来完成。那么,在 Manifest 中,您将如何表示该应用至少需要这两者之一?我对 XML 没有什么经验,所以我不确定如何处理这个问题。
一种解决方案是使用 build variants in Android Studio。此功能使您可以轻松共享代码,并为同一应用程序的不同变体提供自定义代码和配置。您将需要创建两个 "product flavors",一个用于 NFC,另一个用于蓝牙。通用代码和 AndroidManifest 将位于 Android Studio 项目的 main
文件夹中。自定义项将位于每个变体的单独文件夹中。这包括 Android 具有不同 <uses-permission>
标签的清单文件。您可能还会有不同的代码来实际实现您的 hardware-dependent 功能。
当您准备好发布到 Google Play 时,您需要构建两个不同的 APK 文件,一个用于 NFC 支持,一个用于蓝牙。您可以将这两个 APK 上传到同一个 Google Play 应用。 (参见Multiple APK Support。)从用户的角度来看,只有一个应用程序。