IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Android Discussion :

NFC (appli pas au premier plan)


Sujet :

API standards et tierces Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 48
    Par défaut NFC (appli pas au premier plan)
    Bonjour,
    Je rencontre un problème sur la lecture des tags NFC.
    Quand mon appli est lancée, je vois bien les tags, pas de soucis.

    Quand on est sur le menu principal, si je passe un tag contenant des données, l'appli taginfo se lance sans qu'on me demande si je préfère utiliser la mienne.

    Quand le tag ne contient pas de données, j'ai le choix entre mon appli et l'autre.

    J'ai pourtant mis ceci dans mon manifest:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
     
                    <category android:name="android.intent.category.LAUNCHER" />
     
                    <action android:name="android.nfc.action.NDEF_DISCOVERED" />
     
                    <category android:name="android.intent.category.DEFAULT" />
     
                    <action android:name="android.nfc.action.TAG_DISCOVERED" />
     
                    <category android:name="android.intent.category.DEFAULT" />
     
                </intent-filter>
    Du coté de l'activité, j'ai bien mis ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    	private void resoudreIntent(Intent intent) {
    		String action = intent.getAction();
    		if (isActionNFC(action)) {
    			//Mon action si on rentre
    		} else {
    			//Sinon
    		}
    	}
     
    	private static boolean isActionNFC(String action) {
    		return NfcAdapter.ACTION_TAG_DISCOVERED.equals(action)
    				|| NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action)
    				|| NfcAdapter.ACTION_TECH_DISCOVERED.equals(action);
     
    	}
     
    	private PendingIntent getPendingIntent() {
    		PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
    				new Intent(this, this.getClass())
    						.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
    		return pendingIntent;
    	}
     
    	// Recuperer l'adapter NFC
    	private NfcAdapter getAdapter() {
    		NfcManager manager = (NfcManager) getApplicationContext()
    				.getSystemService(Context.NFC_SERVICE);
    		NfcAdapter adapter = manager.getDefaultAdapter();
    		return adapter;
    	}
     
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.r);
    		onNewIntent(getIntent());
    	}
     
    	// //////////////////////
    	// Surdefinition des methodes onnewintent et onresume
    	// ///////////////
    	@Override
    	protected void onNewIntent(Intent intent) {
    		setIntent(intent);
    		resoudreIntent(intent);
    		super.onNewIntent(intent);
    	}
     
    	@Override
    	public void onResume() {
    		PendingIntent pendingIntent = getPendingIntent();
    		if (getAdapter() != null) {
    			getAdapter().enableForegroundDispatch(this, pendingIntent, null,
    					null);
    		}
    		resoudreIntent(getIntent());
    		super.onResume();
    	}
    Je pense avoir codé les choses necessaires...

    Quelqu'un aurait une idée?

    Merci à vous

  2. #2
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Par défaut
    Bonjour,

    Taginfo peut se lancer de lui même s'il utilise TECH_DISCOVERED (supérieur dans la hiérarchie NFC à TAG_DISCOVERED).
    NDEF_DISCOVERED est en effet supérieur a TECH_DISCOVERED, mais ne fonctionne pas pour les Tags, seulement pour la communication terminal a terminal.

    Je vous conseille de jeter un coup d'oeil à ce tutoriel : http://sberfini.developpez.com/tutoriaux/android/nfc/

    Bonne continuation.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 48
    Par défaut
    Bonsoir et merci pour la réponse.
    Ce qui me surprend, c'est que j'ai mis un filtre sur ndef_discovered qui est supérieur à tech_discovered.

    Mais après réflexion, je me suis rendu compte que l'appli fournie par android prend le pas sur n'importe quelle autre appli qui veut lire un tag sans demander.

    Pourtant il n'y a pas de paramètre de lecture par défaut au niveau du paramétrage du téléphone dans 'applications'.

    Si les autres appli n'y parviennent pas, je me demande si c'est possible...

    Merci encore!

Discussions similaires

  1. Mon application ne reste pas au premier plan
    Par Eric dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/05/2011, 14h00
  2. Réponses: 1
    Dernier message: 09/02/2008, 18h55
  3. [VBA] Formulaire pas en premier plan
    Par dalmasma dans le forum VBA Access
    Réponses: 6
    Dernier message: 20/07/2007, 16h19
  4. <div> ne passe pas au premier plan
    Par Franck2mars dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 30/05/2007, 14h47
  5. [C#][.Net] Affichage d'une appli toujours au premier plan
    Par alncool dans le forum Windows Forms
    Réponses: 9
    Dernier message: 13/07/2005, 12h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo