其他应用跳转到Settings指定设置子项流程分析

1.纯代码实现:

在Settings.java 的下面方法中,


private void getMetaData(Intent intent) {}


添加以下代码


		if (action != null) {
			if (action.equals(individuationAction)) {//Action 是指定的Action
				mIndividuationHeader = new Header();//创建header对象
				mIndividuationHeader.fragment = "com.android.settings.individuation.SecuritySettings";//指定他的视图Fragment对象
				mIndividuationHeader.title = getResources().getString(
						R.string.running_settings);//设置header 的标题
				switchToHeaderLocal(mIndividuationHeader);
			} else {
				getMetaData();//处理已在manifest中注册的跳转项
			}
		} else {
			getMetaData();
		}


还要在Manifest中,Settings Activity的 intent-filter中,添加要拦截的Action 字段

2:在Manifest中配置,以wifi设置为例:

1、在Settings.java 中添加 入口Activity ,因为Manifest中只能配置4大组件及相关权限声明,Fragment无法在其中显式配置,并声明Action拦截。

public static class WifiSettingsActivity extends Settings { /* empty */
	}

2、在Manifest中添加,拦截的Action,并配置相关的Fragment和title。

<activity
            android:name="Settings$WifiSettingsActivity"
            android:clearTaskOnLaunch="true"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/wifi_settings"
            android:parentActivityName="Settings" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
		<!-- 拦截Action -->
<action android:name="android.settings.WIFI_SETTINGS" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.VOICE_LAUNCH" /> <category android:name="com.android.settings.SHORTCUT" /> </intent-filter> <!-- 设置Fragment 视图加载类 --> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.wifi.WifiSettings" />
		<!-- 设置title -->
<meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID" android:resource="@id/wifi_settings" />
</activity>
3、当其他应该请求跳转到wifi设置的时候,在oncreate()中,会先调用getMetaData(Intent intent) 去加载指定的Fragment,并显示。


第2中未验证,有什么问题意见,可以相互交流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值