0

タグにデータを書き込むアプリを作成しています。タグが検出したインテントでアプリケーションを起動する必要がないため、A はインテント フィルタを追加していません。主な問題は、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>
4

1 に答える 1