Если же пользователь решил не загружать ваше приложение, метки становятся бесполезными, поскольку Android не сможет доставить их куда-либо еще. На самом деле последнее утверждение не совсем верно: допускается перезаписывать AAR за счет использования фоновой диспетчеризации.
Было бы заманчиво использовать записи AAR с метками в качестве основного механизма для подключения меток к вашему приложению, но вдобавок должны применяться типы MIME и указатели URI, чтобы обеспечить поддержку более широкого спектра устройст. В таком случае, возможно, лучше отдать предпочтение одним лишь типам MIME и указателям URI, не беспокоясь о записях AAR.
Если вы решаете создавать собственные фильтры намерений в коде или в файле AndroidManifest.xml, то должны знать, что вы ищете, и тщательно подготовить эти фильтры намерений. Например, установив слишком жесткие фильтры, вы вообще не получите уведомлений об интересующих метках. Если фильтры окажутся слабыми, будут поступать метки, обрабатывать которые не планировалось. Ситуация, когда ваше приложение получает метку NFC, которая не должна обрабатываться, может означать, что на устройстве существует другое приложение, которое могло бы обработать ее, но метка в него не попала. Такое случается, если логика сопоставления намерений находит несколько подходящих приложений, запрашивает у пользователя выбор, а пользователь выбирает ваше приложение. Это еще одна причина тщательного определения фильтров намерений для меток NFC; когда пользователю предлагается выбрать приложение для запуска, ему наверняка понадобится отодвинуть устройство от метки NFC, чтобы произвести выбор, а тем временем метка окажется за пределами доступности. При наличии выбора того, какие данные передавать с метками, эти данные можно сделать очень специфичными для своих потребностей, используя, к примеру, специальную схему URI или тип MIME.
Выбор фильтра намерений зависит от того, какое действие было помещено в намерение метки NFC (это рассматривалось выше). . пример фильтра намерений для метки NDEF, который помещен в файл AndroidManifest.xml.
Естественно, вместо "type/subtype" должен быть подставлен специфический тип MIME, который требуется искать, или групповые символы, чтобы принимать любой тип или подтип. Например, для mimeType можно указать "text/" и обеспечить совпадение для всех текстовых типо. Однако указывать тип MIME для метки NDEF не понадобится. Если метка имеет URI, а не тип MIME, должен использоваться фильтр намерений, ный .
В этом примере применяется схема geo, так что активность будет запущена, если в метке обнаруживается URI вида geo:. Чтобы указать, какие данные NFC ожидает активность, можно использовать любые другие атрибуты дескриптора . http://www.automaxi.ru/
Если активность ищет метки NFC с определенной технологией, необходимо применять фильтр намерений, .
Также возможна ситуация, когда метка с NDEF обнаружена, но не найдено активности для обработки намерения NDEF_DISCOVERED. Это может привести к получению вашей активностью этого намерения, до тех пор, пока оно соответствует фильтру намерений. Другими словами, если намерение метки NDEF_DISCOVERED не может быть доставлено активности, ожидающей метки NDEF, активность, которая ищет конкретную технологию, может в конечном итоге получить намерение технологии для данной метки.
|