在Android清单中,如何要求两个硬件中的至少一个?

在Android清单中,如何要求两个硬件中的至少一个?,android,xml,bluetooth,nfc,Android,Xml,Bluetooth,Nfc,例如,如果编写一个应用程序涉及两个设备之间的无线数据传输,则可以通过蓝牙或NFC完成。那么,在清单中,您如何表示该应用程序至少需要这两个选项中的一个?我对XML没有什么经验,所以我不知道如何处理这个问题。一个解决方案是使用XML。此功能允许您轻松共享代码,并为同一应用程序的不同变体提供自定义代码和配置。您需要创建两种“产品风格”,一种用于NFC,另一种用于蓝牙。公共代码和AndroidManifest将位于Android Studio项目的main文件夹中。每个变量的自定义设置将位于单独的文件夹

例如,如果编写一个应用程序涉及两个设备之间的无线数据传输,则可以通过蓝牙或NFC完成。那么,在清单中,您如何表示该应用程序至少需要这两个选项中的一个?我对XML没有什么经验,所以我不知道如何处理这个问题。

一个解决方案是使用XML。此功能允许您轻松共享代码,并为同一应用程序的不同变体提供自定义代码和配置。您需要创建两种“产品风格”,一种用于NFC,另一种用于蓝牙。公共代码和AndroidManifest将位于Android Studio项目的
main
文件夹中。每个变量的自定义设置将位于单独的文件夹中。这包括带有不同标签的AndroidManifest文件。您可能还会有不同的代码来实际实现与硬件相关的功能


当您准备发布到Google Play时,您将需要构建两个不同的APK文件,一个用于NFC支持,另一个用于蓝牙。您可以将两个APK上传到同一个Google Play应用程序。(请参阅。)从用户的角度来看,只有一个应用程序。

根据硬件之间的差异,实现是否有所不同?如果是这样的话,你应该考虑在Android工作室中创建两种不同的“口味”。每种风格都有自己的清单,说明支持哪些硬件;如果您的设备同时具有蓝牙和NFC,您可以选择其中一种用于传输,但如果您的设备没有NFC,则(显然)您只能选择使用蓝牙。您如何访问应用程序中的硬件?与访问蓝牙相比,访问NFC有不同的代码吗?我还没有写,我假设清单是第一步。我假设每种类型的硬件都有不同的代码。我的建议是使用androidstudio中的“flavors”功能来实现这一点。您将在
main
文件夹中共享一些代码。特定于NFC和蓝牙的代码将在单独的文件夹中。其中每一个都会有带有正确的
标记的清单。
main
文件夹中也会有一个公共清单。这意味着您将构建两个单独的APK文件。您可以将两者作为一个应用程序上传到Google Play。从用户的角度来看,只有一个应用程序。