创建一个intent-filter来启动我的应用程序的问题

时间:2010-12-16 05:37:40

标签: android android-intent android-manifest intentfilter

我想在进入“Wi-Fi设置”(设置/无线设置)时启动我自己的设置应用程序。检查android源代码中的Settings应用程序的AndroidManifest.xml ...为该WifiSettings活动创建的intent过滤器是这样的:

<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>

对于我自己的应用,我创建的intent-filter是:

    <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>

出于某种原因,这不起作用。我错过了什么,我不知道是什么。有什么建议吗?

先谢谢!!

2 个答案:

答案 0 :(得分:0)

您可能想尝试将字符串“android.settings.WIFI_SETTINGS”更改为不以“android”开头的内容(因为如果您是非平台应用,则可能不允许使用'android ' 字首)。尝试将其更改为“com.foo.WIFI_SETTINGS”,然后使用“com.foo.WIFI_SETTINGS”启动活动,看它是否有帮助。

答案 1 :(得分:0)

实际上,设置应用程序是通过特定组件名称启动的(Intent {act = android.settings.SETTINGS flg = 0x10200000 cmp = com.android.settings / .Settings})。所以你不能用自己的替换它。