转载请注明出处:http://blog.csdn.net/droyon/article/details/20055301。
文中不当之处,请指正。
之所以会注意到Wifi的高级界面,是因为,它很特别,它叫AdvancedWifiSettingsActivity,它的特别之处就是它配置了parent_fragment_class。
<activity android:name="Settings$AdvancedWifiSettingsActivity" android:label="@string/wifi_advanced_settings_label" android:configChanges="orientation|keyboardHidden|screenSize" android:clearTaskOnLaunch="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <action android:name="android.settings.WIFI_IP_SETTINGS" /> <category android:name="android.intent.category.VOICE_LAUNCH" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.wifi.AdvancedWifiSettings" /> <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID" android:resource="@id/wifi_settings" /> <meta-data android:name="com.android.settings.PARENT_FRAGMENT_TITLE" android:resource="@string/wifi_settings" /> <meta-data android:name="com.android.settings.PARENT_FRAGMENT_CLASS" android:value="com.android.settings.Settings$WifiSettingsActivity" /> </activity>
<activity-alias android:name=".wifi.WifiSettings" android:label="@string/wifi_settings" android:targetActivity="Settings$WifiSettingsActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:exported="true" android:clearTaskOnLaunch="true"> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.wifi.WifiSettings" /> <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID" android:resource="@id/wifi_settings" /> </activity-alias>
1、新建Android应用,通过如下intent启动wifi高级界面
Intent intent=new Intent(); intent.setAction("android.settings.WIFI_IP_SETTINGS"); startActivity(intent);
2、新建Android 应用,通过如下intent启动
Intent intent = new Intent(); intent.setAction("android.settings.BLUETOOTH_SETTINGS"); startActivity(intent);
我一直很纠结第一步中启动的wifi高级界面为什么会有左上角的“<”号,之前一直以为是因为AdvancedWifiSettingsActivity在配置中多了两项meta-data,今天删掉了多出来的meta-data,才发现认知错误。
其原因时因为在AndroidManifest中还配置了一个属性,正是这个属性,使wifi高级界面出现了左上角“<”号。
android:parentActivityName="Settings$WifiSettingsActivity"
Settings源代码分析之wifi高级界面,布布扣,bubuko.com
原文:http://blog.csdn.net/droyon/article/details/20055301