Выбор действия по умолчанию на Android - PullRequest
1 голос
/ 01 февраля 2012

Я пытаюсь создать приложение, которое заменит действие по умолчанию на Android. Проблема в том, что когда действие должно быть выполнено, я получаю диалоговое окно «Выбрать действие» без флажка, чтобы выбрать его по умолчанию. Я думаю, что я должен получить диалог «Complete Action Using» (который, в свою очередь, имеет флажок). Я не понимаю, как я могу сделать Android, чтобы предложить мне диалоговое окно «Complete ...». Мой файл манифеста выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="si.cetrtapot.mobiris"
          android:versionName="1.0"
          android:versionCode="1" >

    <uses-sdk android:minSdkVersion="10" />

    <uses-permission android:name="android.permission.NFC" />

    <uses-feature android:name="android.hardware.nfc" 
                  android:required="true" />

    <application android:icon="@drawable/ic_launcher"
                 android:label="@string/app_name"
                 android:debuggable="true" >

        <activity android:name=".ReadTagActivity"
                  android:label="@string/app_name"
                  android:screenOrientation="portrait" >

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

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

            <meta-data android:name="android.nfc.action.TECH_DISCOVERED"
                       android:resource="@xml/nfc" />
        </activity>

    </application>
</manifest>

Может кто-нибудь сказать мне, что не так?

Ответы [ 2 ]

0 голосов
/ 02 февраля 2012

Я не верю, что что-то не так.Я не верю, что у намерений NFC должно было быть приложение по умолчанию, если у вас нет очень специфической фильтрации намерений для карт, отформатированных в Ndef.Я сделал это для своей работы, потому что мы хотели, чтобы наше приложение всплыло с нашим тегом.В противном случае это будет просто в списке все время (что раздражает).

0 голосов
/ 01 февраля 2012

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

Например, скажем, мое приложение обрабатывает: Intent.ACTION_SEND Это означает, что мое приложение будет отображаться в списке приложений, выполняющих определенные действия. К ним относятся приложение MMS / SMS по умолчанию и любые другие приложения, которые есть у пользователя, включая приложение MY , если оно установлено пользователем.

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

Для справки:

Намерение

Intent.CATEGORY_DEFAULT

...