Android 7.0 settings中添加新菜单
来源:互联网 发布:京东聊天软件 编辑:程序博客网 时间:2024/06/05 11:11
需求:
在设置中,添加一级菜单项,在设备中加入“按键交换”,此项菜单与“显示”并列
由于android 7.0 settings网上资料还没有,此需求在高通技术支持的帮助下加上自己的分析才实现(对高通技术支持小伙表示感谢),实现后发现特别简单,但是实现前一直没头绪,希望记下来能对网友有所帮助
只需实现Activity,写布局文件后,在AndroidManifest.xml中配置即可,配置如下
<activity android:name="HardKey" android:label="@string/hardkey_switch" android:icon="@drawable/a2_icon_hardkey_switch" android:taskAffinity=""> <intent-filter android:priority="1"> <action android:name="com.android.settings.HARDKEY" /> <action android:name="android.settings.HARDKEY" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.VOICE_LAUNCH" /> <category android:name="com.android.settings.SHORTCUT" /> </intent-filter> <intent-filter android:priority="9"> <action android:name="com.android.settings.action.SETTINGS" /> </intent-filter> <meta-data android:name="com.android.settings.category" android:value="com.android.settings.category.device" /> <meta-data android:name="com.android.settings.ACTIVITY_ACTION" android:value="com.android.settings.HardKey" /> <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" android:value="true" /> </activity>
其中HarKey.java是一个Activity文件,直接继承了Activity
设置下的一级菜单必须要有此intent,SettingsActivity文件会根据此filter过滤
android:priority="9"加这个属性与位置顺序有关,即两个同样的菜单,哪个在前,哪个在后
<intent-filter android:priority="9">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
此meta表示 菜单项在 device的分类中
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.device" />
表示此文件是一个Activity
<meta-data android:name="com.android.settings.ACTIVITY_ACTION"
android:value="com.android.settings.HardKey" />
如果是一个fragment,则用
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.DisplaySettings" />
这个必须要有,不然不会显示在设置菜单项中
<intent-filter android:priority="9"> <action android:name="com.android.settings.action.SETTINGS" /> </intent-filter>
这个属性也要加,因为其他的菜单项都有(添加新的类似功能时,对比已有功能实现),具体还不知道起什么作用,有知道的可以留言
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
效果图
原图
后续将介绍android 7.0 settings源码流程
- Android 7.0 settings中添加新菜单
- Android 7.0 settings中添加/删除菜单
- Android 7.0&8.0 Quick Settings 添加一个新项
- 在android settings.db数据库中添加一项新的设置
- 在android settings.db数据库中添加一项新的设置
- 在android settings.db数据库中添加一项新的设置
- 在android settings.db数据库中添加一项新的设置
- Android settings.db数据库中添加一条新的默认配置项
- 在android settings.db数据库中添加一项新的设置
- 在android settings.db数据库中添加一项新的设置
- 原生android中Settings模块添加步骤
- Android4.1 settings中添加一个新选项
- settings下新添加的菜单如何让search可以搜索到
- Android Settings添加选项
- Android 中添加menu菜单
- 在资源管理器右键菜单中添加新的菜单项
- 在资源管理器右键菜单中添加新的菜单项
- nopcommerce笔记:后台菜单中添加新菜单项
- Android Studio 中英文 汉化对照
- HashMap实现原理分析
- 每日学习20170301--单点登录实现方案
- 逻辑数据库设计-单纯的树(递归关系数据)
- 深入剖析Spring(四)——AOP
- Android 7.0 settings中添加新菜单
- 需要学习的
- 02_python_练习题——图形界面
- RequireJS 和 SeaJS的区别
- RRDtool文档
- mysql数据库字段格式统一转换方法
- 图形学中的计算问题汇总
- DAVINCI DM3730开发攻略——DVSDK4_03和双核CODEC机制介绍
- 2月份英语总结