我可以在没有清单许可的情况下在Android中访问NFC吗?

use*_*063 3 android nfc android-permissions

我需要使用可选的NFC功能创建应用。未经清单许可(Android),我可以访问NFC吗?还是应该创建两个应用程序:一个NFC版本和一个不带该版本的应用程序。

Pan*_*mar 6

根据thorbear的发现进行了更新

uses-feature使您的应用程序仅在具有NFC硬件的设备上显示的元素:

<uses-feature android:name="android.hardware.nfc" android:required="true" />
Run Code Online (Sandbox Code Playgroud)

如果您的应用程序使用NFC功能,但是该功能对您的应用程序不是至关重要的,则可以忽略uses-feature元素,并通过检查getDefaultAdapter()是否为null 来在运行时检查NFC的可用性。


没有在清单中添加许可,这是不可能的。并且您无需为这种情况创建两个应用程序。

阅读Android清单中的请求NFC访问以获取更多详细信息

但是,是的,您可以说“ 我的应用程序使用NFC功能但可选 ”。为此,您需要添加<uses-feature android:name="android.hardware.nfc" android:required="false" />到清单中。因此,Google Play可以使您的应用程序可用于所有已拥有NFC或未拥有的设备。

注意:如果您未使用将该<uses-feature .../>标签添加到清单中android:required="false",则Google Play会将您的应用程序视为“ 此应用程序仅适用于具有NFC的设备 ”。而没有此NFC功能的设备无法从Google Play下载您的应用程序。


这是清单示例

<manifest ...>
    <uses-feature android:name="android.hardware.nfc" android:required="true" />
    <uses-permission android:name="android.permission.NFC" />

</manifest>
Run Code Online (Sandbox Code Playgroud)

进一步了解 <uses-feature>