Как заставить одно действие с теми же фильтрами намерений в Android? - PullRequest
0 голосов
/ 30 июня 2011

Я делаю приложение для Android с Discovery NFC.Когда я обнаруживаю тег NFC, мне нужно выбрать приложение (приложение по умолчанию для Android и мое приложение).

Что я могу сделать в своем приложении для системы Android, не спрашивайте, какое приложение я открываю?Моя идея - запустить мое приложение по умолчанию.

<activity android:name=".Test">
        <intent-filter>
            <action android:name="android.nfc.action.TAG_DISCOVERED"/>
           <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

Ответы [ 2 ]

0 голосов
/ 24 октября 2012

Используйте элемент «data» в фильтре намерений для определения пользовательского типа MIME.

<intent-filter>
    <action android:name="android.nfc.action.NDEF_DISCOVERED" />
    <data android:mimeType="application/com.example.package" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

Вы можете добавить этот фильтр намерений к любому виду деятельности, который хотите запустить. Вы даже можете добавить это в качестве дополнительного фильтра к активности запуска вместе с фильтром запуска.

Если вы это сделаете, вы можете использовать следующий код, чтобы определить, была ли ваша активность запущена NFC или значком запуска:

Intent intent = getIntent();
if (intent.getType() != null && intent.getType().equals("application/com.example.package")) {
// app is launched from NFC
} else {
// app is launched from launcher icon
}
0 голосов
/ 01 июля 2011

Похоже, что в Android само приложение не может установить себя в качестве обработчика по умолчанию и вместо этого полагаться на пользователя, который выберет действие, если существует более одного выбора и не указано значение по умолчанию.коробка должна иметь флажок, который говорит что-то вроде «Использовать это приложение по умолчанию».Пользователь должен установить этот флажок, если он хочет использовать ваше приложение каждый раз.

...