Как изменить способ открытия приложения по умолчанию - PullRequest
0 голосов
/ 30 марта 2012

Я написал приложение о NFC в Android ,, но у меня есть проблема. Когда я поднесу тег NFC близко к мобильному телефону, появится диалоговое окно, в котором я могу выбрать, какое приложение считывать информацию из тега NFC. Но мне не нужно это диалоговое окно. Я просто хочу, чтобы, когда тег NFC был рядом с мобильным телефоном, приложение, которое я написал, автоматически открывалось. Я пытался изменить код на:

<intent-filter android:priority = "100">
    <action android:name="android.nfc.action.TECH_DISCOVERED" />                
</intent-filter>
<meta-data android:name="android.nfc.action.TECH_DISCOVERED"
     android:resource="@xml/filter_nfc"/>   

Ответы [ 2 ]

0 голосов
/ 31 марта 2012

Единственный способ для Android определить, какое приложение открывать автоматически, - это если Android может сам прочитать содержимое тега. Это возможно только в том случае, если тег соответствует одному из стандартов тегов типа форума NFC и содержит сообщение NDEF. В этом случае Android отправит намерение ACTION_NDEF_DISCOVERED, содержащее данные, основанные на содержимом тега, такие как URI или тип MIME. Ваше приложение может объявить фильтр намерений на основе этого, чтобы получить такое намерение. Если тип MIME или URI является уникальным, ваше приложение будет единственным, которое соответствует и будет автоматически открыто.

Если теги NFC, с которыми вы работаете, не содержат сообщения NDEF, вам, по сути, не повезло. У Android нет способа определить что-то более конкретное, чем технология тега, и часто существует множество приложений, которые подписались на такие намерения. Поэтому пользователю будет предложен выбор приложения, чтобы выбрать правильное приложение.

0 голосов
/ 30 марта 2012

Когда вы установите уникальный URI .. он откроет ваше приложение вместо других ... http://developer.android.com/guide/topics/nfc/nfc.html#ndef

...