我正在创建将数据写入标记的应用。 A没有添加任何意图过滤器,因为不必在Tag发现的意图上触发应用程序。 主要问题是它在Note3上工作正常,但在SGS4上,一些默认应用程序被打开,应用程序无法捕获NFC意图。 这是我的示例代码:
public void onNewIntent(Intent intent)
{
if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction()))
{
Tag discoveredTag = (Tag) intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
writeSomeStuffToTag(discoveredTag);
}
}
private void writeSomeStuffToTag(Tag tag) throws IOException,FormatException {
Ndef ndefTag = Ndef.get(tag);
int size = Integer.parseInt(tagSize.getText().toString());
byte[] bytes = new byte[1024 * size];
NdefRecord dataToWrite = NdefRecord.createMime("Application/com.android.nfctest", bytes);
ndefTag.connect();
ndefTag.writeNdefMessage(new NdefMessage(dataToWrite));
ndefTag.close();
}
我的xml
<uses-sdk
android:minSdkVersion="12"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.NFC" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:keepScreenOn="true"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.nfctest.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>