Фильтр намерений Android NDEF с данными для схемы http и хоста - PullRequest
2 голосов
/ 25 апреля 2011

Я пытаюсь определить фильтр намерений, который будет срабатывать только при получении сообщений NDEF, содержащих URI определенного веб-сайта.

Я определил его так:

        <intent-filter>
            <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="http" />
            <data android:host="ta.bcntouch.com" />
        </intent-filter>

Но это не сработает.Я также попробовал:

            <data android:scheme="http"android:host="ta.bcntouch.com" />

Без удачи.Также только с DEFAULT.Удаление элемента вызовет его срабатывание.

Можно ли это сделать?Документация Android показывает только примеры использования MIME-типа в элементе .....

Любая помощь приветствуется.

Ответы [ 3 ]

5 голосов
/ 18 октября 2012

Вот фильтры, которые я, наконец, использовал для захвата ряда определенных известных комбинаций URL.

Символ * в начале поля хоста позволяет мне использовать тот же фильтр при тестировании с тестовыми серверами.которые находятся в поддомене или следуют тому же формату для имени.

Второй (просмотр) захватывает те же форматы URL с веб-страниц, электронных писем и т. д.: *

        <intent-filter>
          <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
          <category android:name="android.intent.category.DEFAULT"/>
            <data android:scheme="http"
                  android:host="*ta.bcntouch.com" 
                  android:pathPattern="/p/.*" />
            <data android:scheme="http"
                  android:host="*ta.bcntouch.com" 
                  android:pathPattern="/l/.*" />
            <data android:scheme="http"
                  android:host="*ta.bcntouch.com" 
                  android:pathPattern="/a.*" />
            <data android:scheme="http"
                  android:host="*ta.bcntouch.com" 
                  android:pathPattern="/t.*" />
        </intent-filter>

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="http"
                  android:host="*ta.bcntouch.com" 
                  android:pathPattern="/p/.*" />
            <data android:scheme="http"
                  android:host="*ta.bcntouch.com" 
                  android:pathPattern="/l/.*" />
            <data android:scheme="http"
                  android:host="*ta.bcntouch.com" 
                  android:pathPattern="/a.*" />
            <data android:scheme="http"
                  android:host="*ta.bcntouch.com" 
                  android:pathPattern="/t/.*" />
        </intent-filter>
3 голосов
/ 03 февраля 2012

Этот формат работает для меня

<data android:scheme="http" android:host="www.domain.com" android:pathPattern=".*" />
0 голосов
/ 06 мая 2011

Я сделал нечто подобное, но я думаю, что вы не можете использовать URI.Вам нужно написать сообщение MIME ndef и назначить свой тип MIME, например, x-myapp / mydemo, для своей деятельности с помощью фильтра намерений.Затем вы можете прочитать любой контент, например, URL-адрес, и, например, запустить веб-браузер.

...