我想在进入“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>
出于某种原因,这不起作用。我错过了什么,我不知道是什么。有什么建议吗?
先谢谢!!
答案 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})。所以你不能用自己的替换它。