Android NFC Intentions ne sont pas à démarrer mon activité
Je suis en train d'écrire une application simple d'interagir avec les tags NFC, mais je ne peux pas sembler obtenir mon téléphone rien à faire, mais de déclenchement par défaut tag NFC application. Vraiment, je veux juste être en mesure d'intercepter n'importe quelle balise, j'analyse, de déterminer si elle dispose de certaines données sur elle, et de prendre des mesures en conséquence.
Maintenant mon fichier de manifeste ressemble
<uses-sdk android:minSdkVersion="10" />
<uses-feature android:name="android.hardware.nfc" android:required="true"/>
<uses-permission android:name="android.permission.NFC"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".NfcActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
</intent-filter>
</activity>
</application>
Cependant lors de la numérisation d'un tag NFC, je n'ai jamais voir le début de l'activité. Suis-je manqué quelque chose? J'ai essayé de placer le filtre d'intention à l'intérieur d'un BroadcastReceiver
et pas eu de chance non plus...
OriginalL'auteur FlyingStreudel | 2012-06-17
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas avoir votre application a démarré par tous les tags NFC, vous pouvez numériser. Android permettra de déterminer quel est le plus adapté application est basée sur le filtre d'intention. Toutefois, si votre application est en cours d'exécution au premier plan, vous pouvez utiliser NFC premier plan de répartition pour attraper tous NFC intentions.
Dans
onCreate()
ajouter:Dans
onResume()
ajouter:Dans
onPause()
ajouter:Dans
onNewIntent
vous pouvez obtenir à la NFC balise comme ceci:L'idée de la technologie NFC est qu'il peut faire des choses comme automatiquement effectuer l'action appropriée sur votre téléphone. Quelques exemples: ouvrir une URL dans votre navigateur, vérifiez-en à Foursquare, connecter automatiquement à un réseau wi-fi. Android détermine l'application à l'avant de la NFC intention de base sur la façon dont les applications des filtres d'intention. La plupart filtre spécifique "gagne". Si plus d'une correspondance est trouvée, une application sélecteur est présenté à l'utilisateur. Il y a une exception: le NFC premier plan de répartition, où l'application qui s'exécute dans l'avant-plan peut demander à obtenir tous NFC intentions d'un type spécifique.
Je suppose que je ne comprends pas pourquoi cela a été la fonction sélectionnée, contrairement aux SMS, lorsque l'intention est de pouvoir être captée et retransmise par un nombre quelconque de récepteurs. Il semble idiot que vous êtes limité à prendre une seule action sur une interaction avec la technologie NFC.
Une différence est que le NFC intention est associée à relié à un dispositif NFC, par exemple un tag NFC. Une seule activité peut communiquer avec lui à un moment; un tag NFC ne prend pas en charge plusieurs connexions simultanées.
Merci beaucoup!:)
OriginalL'auteur NFC guy
Le SDK docs montrer cela comme un exemple de base.
category
élément dans l'exemple ci-dessus. C'est vraiment nécessaire (bien que le nom de "DÉFAUT", suggère le contraire).pouvez-vous m'indiquer à qui je peux lancer les différentes activités basées sur les différentes balises NFC ? tag1/prod/234 ou tag3/buyme/3422 . Si il y a de prod, je veux tirer un ProductionInfo activité, mais avec buyme que je voudrais mettre dans une liste,
OriginalL'auteur techiServices
Vous attendez les tags définis dans le format NDEF. Ainsi, votre programme sera lancé uniquement si les balises en cours de lecture est au format NDEF.
Vous pouvez essayer plus générique des filtres d'intention comme TAG_DISCOVERED ou TECH_DISCOVERED.
OriginalL'auteur Mert Akcakaya
Android automatiquement choisit la plus pertinents application pour gérer la numérisation de la balise NFC. Vous devez être plus précis dans votre
intent-filter
, c'est à dire de n'écouter que pour le TEXTE-Tags, URL, les Balises, ou CONTACTEZ-Tags. Cela peut être fait en précisant davantage le filtre, à l'aide de, votre exemple,<data android:mimeType="text/plain" />
pour le TEXTE des Balises. Sinon, la valeur par défaut NFC-Tag application sera déclenchée.OriginalL'auteur Nick