0

NFC を介して特定のドメインの URI オープンを処理しようとしています。

マニフェストには次のものがあります。

<activity android:name="HistoryActivity"
        android:theme="@android:style/Theme.Light.NoTitleBar"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.nfc.action.NDEF_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="https"
                android:host="mydomain.me"
                android:pathPrefix="/x" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.nfc.action.NDEF_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="http"
                android:host="mydomain.me"
                android:pathPrefix="/x" />
        </intent-filter>
    </activity>

onResume と onNewIntent は次のようになります。

@Override
protected void onResume() {
    super.onResume();
    Intent intent = new Intent(this, this.getClass());
    //intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

    this.handleNfcBeam(intent);
}

@Override
protected void onNewIntent(Intent intent) 
{
    setIntent(intent);

    this.handleNfcBeam(intent);
}

handleNfcBeam は次のようになります。

protected boolean handleNfcBeam(Intent intent)
{
    String action = intent.getAction();

    if (action != null &&
            action.equalsIgnoreCase("android.nfc.action.NDEF_DISCOVERED"))
    {

        return true; // todo: process URL
    }

    return false;
}

正しい URL を送信すると、アプリが起動されます。ただし、アクションは常に null です!!

メッセージを実際に処理できるようになるまでには至っていません...

私は何を間違っていますか?

ありがとう、ダニエル

4

1 に答える 1