Разрешения Android не вызывают пользователя в отладке - PullRequest
0 голосов
/ 13 февраля 2019

Я новичок в разработке для Android и работаю над приложением, для которого требуются разрешения NFC.По какой-то причине приложение не запрашивает пользователя, когда оно открывается или когда я держу его возле тега или терминала NFC.Ниже мой AndroidManifest.xml.Может кто-нибудь сказать мне, что я здесь делаю не так?

<?xml version="1.0" encoding="utf-8"?>

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

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <service android:name=".MyHostApduService" android:exported="true"
        android:permission="android.permission.BIND_NFC_SERVICE">
        <intent-filter>
            <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
        </intent-filter>
        <meta-data android:name="android.nfc.cardemulation.host_apdu_service"
            android:resource="@xml/apduservice"/>
    </service>
</application>

1 Ответ

0 голосов
/ 13 февраля 2019

Разрешение NFC классифицируется как PROTECTION_NORMAL (см. Обзор разрешений - Нормальные разрешения ).Следовательно, это разрешение не требует явного согласия пользователя, и вообще не должно быть запроса:

От Обзор разрешений - Утверждение разрешения :

Есливаше приложение перечисляет обычные разрешения в своем манифесте (то есть разрешения, которые не представляют большого риска для конфиденциальности пользователя или работы устройства), система автоматически предоставляет эти разрешения вашему приложению.

[...]

Только опасные разрешения требуют согласия пользователя. [...]


Кстати.если вы имели в виду, что ваше приложение просто не запускает события обнаружения тегов NFC, причина этого в том, что в вашем манифесте нет фильтра намерений для обнаружения тегов NFC.См., Например, Как использовать NFC ACTIONS , как зарегистрироваться для обнаружения тегов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...