Domanda

Salvo l'AAR sul mio tag NFC. Se eseguo la scansione del tag con il Nexus S (Android 4.1.1), ottengo il Nfcadapter.action_ndef_discover ha iniziato direttamente.

Se faccio lo stesso con HTC X (Android 4.0.3), inizia l'applicazione ma ho appena il Android.intent.action.main e quindi la NFCreaderattività non viene visualizzata e il tag non è scansionato.

Funziona su Samsung Nexus S ma non su 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>   
.

Questa sono le mie attività e filtri.

qualcuno un'idea?


.

Modifica:

funziona su HTC ma non su 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>   
.

Qui ho ottenuto la seguente eccezione @ HTC - Forse questo è il problema che non ricordo: Stack:

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!
.


.

Forse il problema è la versione 4.1.1 vs 4.0.3 - Non lo so: Il fatto è: Solo NDEF funziona su Samsung, se aggiungo il

È stato utile?

Soluzione

C'è un bug in Android che rende fondamentalmente AARsenza valore.A seconda dello stato del telefono, l'AAR o il filtro intento prendono la precedenza quando il servizio NFC sta gestendo il tag.Se l'AAR vince, non hai il mezzo per ottenere il tag.

L'unico modo in cui è possibile gestire questo correttamente è quello di rimuovere l'AAR, sostituirlo con un URL a un server che controlli, che può reindirizzare alla tua pagina APP su Google Play.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top