Question

Je sauvegarde l'AAR sur ma balise NFC. Si je numérise la balise avec le Nexus S (Android 4.1.1), je reçois le Nfcadapter.action_ndef_discouverted et la NFCreaderactivity démarre directement.

Si je fais la même chose avec le HTC X (Android 4.0.3), l'application commence mais je viens d'obtenir le Android.Intent.action.Action.main et la nfcreaderactivité ne s'affiche pas et la balise n'est pas numérisée.

Cela fonctionne sur Samsung Nexus S mais pas sur HTC:

<activity android:name=".activities.NFCWriterActivity"></activity>
<activity android:name=".activities.NFCReaderActivity">
        <intent-filter>
          <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
          <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>              
</activity>
<activity android:name=".activities.NFCBeamActivity">        
</activity>
<activity android:name=".activities.WifiManagerActivity"></activity>
<activity android:name=".activities.WifiConfiguratorActivity"></activity>
<activity android:name=".activities.TagWriterOptionsActivity"></activity>
<activity android:name=".activities.WifiScannerTagActivity"></activity>
<activity android:name=".activities.WifiScannerActivity"></activity>  
<activity android:name=".activities.WifiListActivity">

</activity>   

Ceci sont mes activités et mes filtres.

Quelqu'un une idée?


EDIT:

Ceci fonctionne sur HTC mais pas sur Samsung Nexus S:

<activity android:name=".activities.NFCWriterActivity"></activity>
<activity android:name=".activities.NFCReaderActivity">
        <intent-filter>
          <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
          <category android:name="android.intent.category.DEFAULT"/>
          <data android:mimeType="application/vnd.wfa.wsc" />
        </intent-filter>              
</activity>
<activity android:name=".activities.NFCBeamActivity">    

</activity>
<activity android:name=".activities.WifiManagerActivity"></activity>
<activity android:name=".activities.WifiConfiguratorActivity"></activity>
<activity android:name=".activities.TagWriterOptionsActivity"></activity>
<activity android:name=".activities.WifiScannerTagActivity"></activity>
<activity android:name=".activities.WifiScannerActivity"></activity>  
<activity android:name=".activities.WifiListActivity"></activity>   

Ici, j'ai eu l'exception suivante @ htc - peut-être que c'est le problème que je ne sais pas: Pile:

D/AudioTrack( 3938): stop 0x1601940
D/AudioFlinger(  142): releasing 231 from 3938
D/AudioTrack( 3938): AudioTrack destructor X
D/power   (  277): Already locked performance.
W/CpuWake (  277): >>acquireCpuPerfWakeLock!
W/CpuWake (  277): <<acquireCpuPerfWakeLock!
E/ActivityManager(  277): startLaunchActivity get appname failed
E/ActivityManager(  277): java.lang.NullPointerException
E/ActivityManager(  277):   at com.android.server.am.ActivityStack.startLaunchActivity(ActivityStack.java:4831)
E/ActivityManager(  277):   at com.android.server.am.ActivityStack.startActivityMayWait(ActivityStack.java:3352)
E/ActivityManager(  277):   at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:2509)
E/ActivityManager(  277):   at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:131)
E/ActivityManager(  277):   at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1751)
E/ActivityManager(  277):   at android.os.Binder.execTransact(Binder.java:338)
E/ActivityManager(  277):   at dalvik.system.NativeStart.run(Native Method)
I/ActivityManager(  277): START {act=android.nfc.action.NDEF_DISCOVERED typ=application/vnd.wfa.wsc pkg=at.nfc.wifi (has extras)} from pid 3938
W/ActivityManager(  277): Duplicate finish request for ActivityRecord{41163a90 com.android.nfc/.NfcRootActivity}
D/power   (  277): Already locked performance.
I/Intent  (  277): @test_code: getHtcIntentFlag: 0 obj: 1094379848
W/CpuWake (  277): >>acquireCpuPerfWakeLock!
W/CpuWake (  277): <<acquireCpuPerfWakeLock!


Peut-être que le problème est la version 4.1.1 vs 4.0.3 - Je ne sais pas: Le fait est: Seulement NDEF fonctionne sur Samsung, si j'ajoute le

Était-ce utile?

La solution

Il y a un bug dans Android qui rend AAR fondamentalementsans valeur.Selon l'état du téléphone, l'AAR ou le filtre à l'intention prennent la priorité lorsque le service NFC gère la balise.Si l'AAR gagne, vous n'avez aucun moyen d'obtenir la balise.

La seule façon de gérer cela correctement est de supprimer l'AAR, le remplaçant par une URL à un serveur que vous contrôlez, qui peut rediriger vers votre page d'application sur Google Play.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top