【问题标题】:Can I get access to NFC without manifest permission in android?我可以在没有 android 清单权限的情况下访问 NFC 吗?
【发布时间】:2015-05-22 08:00:09
【问题描述】:

我需要创建具有可选 NFC 功能的应用。 我可以在没有清单许可的情况下访问 NFC(Android)吗?或者我应该创建两个应用程序:一个 NFC 版本,一个没有它。

【问题讨论】:

    标签: android nfc android-permissions


    【解决方案1】:

    根据thorbear的发现更新

    uses-feature 元素,以便您的应用程序仅在具有 NFC 硬件的设备上显示在 Google Play 中:

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

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


    如果不在清单中添加权限,这是不可能的。和你 不需要为这种情况创建两个应用程序。

    阅读Requesting NFC Access in the Android Manifest了解更多详情

    但是是的,您可以说“我的应用程序使用 NFC 功能,但可选”。 为此,您需要将 &lt;uses-feature android:name="android.hardware.nfc" android:required="false" /&gt; 添加到清单中。因此,Google play 可以使您的应用程序可用于所有具有或没有NFC 的设备。

    注意:如果您没有将这个&lt;uses-feature .../&gt; 标签添加到带有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>
    

    阅读更多关于&lt;uses-feature&gt;

    【讨论】:

    • 你有关于&lt;uses-feature&gt;需要明确声明为required="false"的注释的参考吗?根据linked documentation&lt;uses-feature&gt; NFC 不在Permissions that Imply Feature Requirements 列表中。
    • 您的引用似乎暗示了相反的意思:If your application uses NFC functionality, but that functionality is not crucial to your application, you can omit the uses-feature element [...]
    • 完成。请立即查看
    【解决方案2】:

    如果不向清单添加以下权限,您将无法访问 NFC。

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

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 2020-06-10
      • 1970-01-01
      • 1970-01-01
      • 2014-03-23
      • 2011-01-14
      • 2023-03-26
      • 1970-01-01
      • 2017-06-30
      相关资源
      最近更新 更多