проблема с созданием фильтра намерений для запуска моего приложения

Я хочу запустить собственное приложение настроек при входе в «Настройки Wi-Fi» (Настройки/Настройки беспроводной сети). Проверка AndroidManifest.xml приложения «Настройки» в исходном коде Android... фильтр намерений, созданный для этого действия WifiSettings, таков:

<activity android:name=".wifi.WifiSettings"
                android:label="@string/wifi_settings"
                android:configChanges="orientation|keyboardHidden"
                android:clearTaskOnLaunch="true"
                >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.settings.WIFI_SETTINGS" />
                <action android:name="android.net.wifi.PICK_WIFI_NETWORK" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.VOICE_LAUNCH" />
                <category android:name="com.android.settings.SHORTCUT" />
            </intent-filter>
</activity>

Для моего собственного приложения фильтр намерений, который я создал, выглядит следующим образом:

    <activity android:name=".MyWifiSettings"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <action android:name="android.settings.WIFI_SETTINGS" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

По какой-то причине это не работает. Я что-то упускаю и не знаю что. Какие-либо предложения?

Заранее спасибо!!


person mortimer    schedule 16.12.2010    source источник


Ответы (2)


Возможно, вы захотите попробовать изменить строку «android.settings.WIFI_SETTINGS» на что-то, что не начинается с «android» (потому что, если вы являетесь неплатформенным приложением, вам может быть запрещено использовать префикс «android») . Попробуйте изменить его на «com.foo.WIFI_SETTINGS», а затем запустите активность, используя «com.foo.WIFI_SETTINGS», чтобы посмотреть, поможет ли это.

person Jo Jo    schedule 16.12.2010

На самом деле приложение настроек запускается через определенное имя компонента (Intent {act=android.settings.SETTINGS flg=0x10200000 cmp=com.android.settings/.Settings}). Таким образом, вы не можете заменить его на свой собственный.

person Paul Turchenko    schedule 20.01.2011