我将AAR保存在NFC标签上。
如果我使用Nexus S(Android 4.1.1)扫描TAG,
NfcAdapter.ACTION_NDEF_DISCOVERED和NFCReaderActivity直接启动。

如果我对HTC X(Android 4.0.3)执行相同操作,则该应用程序将启动,但我得到的只是
android.intent.action.MAIN等等NFCReaderActivity不露面和标签进行扫描。

这适用于Samsung Nexus S,但不适用于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>


这是我的活动和过滤器。

有人有主意吗?



编辑:

这适用于HTC,但不适用于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>


在这里,我收到了以下@ HTC异常-也许这是我不知道的问题:
堆:

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!




也许问题是版本4.1.1和4.0.3-我不知道:
事实是:
如果我添加了,只有Ndef可以在Samsung上使用

最佳答案

有一个bug in Android使AAR基本上毫无价值。根据电话状态,当NFC服务处理标签时,AAR或意图过滤器优先。如果AAR赢了,你有获得标签的手段。

正确处理此问题的唯一方法是删除AAR,将其替换为您所控制的服务器的URL,该URL可以重定向到您在Google Play上的应用页面。

关于android - 三星Nexus S VS HTC - NFC Intent 过滤器+ AAR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12695967/

10-11 22:31
查看更多