功能描述:Android7.1.2 设置下添加一级菜单[ZedielPcbTest],点击ZedielPcbTest,启动ZedielPcbTest.apk应用。

编译:需要在out目录删除Setttings编译生成的文件,然后remake Settings模块


此功能用到以下类:

packages/apps/Settings/AndroidManifest.xml
packages/apps/Settings/res/values/strings.xml
packages/apps/Settings/src/com/android/settings/Settings.java
packages/apps/Settings/src/com/android/settings/SettingsActivity.java
packages/apps/Settings/src/com/android/settings/ZedielPcbTest.java

功能实现

1.Activity的布局设置在AndroidManifest.xml中实现即可,添加后菜单就可以在:设置下显示  "  ZedielPcbTest "


path:packages/apps/Settings/AndroidManifest.xml

<!--Add menu under Settings and open app by zfc 20190525 start-->

<activity android:name="Settings$ZedielPcbTestActivity"
  android:label="@string/setting_zedielpcbtest"
  android:icon="@drawable/ic_settings_display"
  android:taskAffinity="">
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>

<!-- 在category类别中的物理位置(按优先级排序时用到,并不是指第9个位置,数越大优先级越大越靠前) -->
  <intent-filter android:priority="15">

    <!-- 指定此项在settings中显示 -->
    <action android:name="com.android.settings.action.SETTINGS" />
  </intent-filter>

  <!-- 指定此项显示在device这个类别中 -->
  <meta-data android:name="com.android.settings.category"
    android:value="com.android.settings.category.device" />

  <!-- ACTIVITY_ACTION表明 value指向的类是Activity -->

  <meta-data android:name="com.android.settings.ACTIVITY_ACTION"
    android:value="com.android.settings.HardKey" />

  <!-- FRAGMENT_CLASS 表明value指定的类是fragment -->

  <meta-data android:name="com.android.settings.FRAGMENT_CLASS"

    <!-- ZedielPcbTest是具体实现类 -->
    android:value="com.android.settings.ZedielPcbTest" />


  <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
    android:value="true" />
</activity>
<!--Add menu under Settings and open app by zfc 20190525 end-->

2.path:packages/apps/Settings/res/values/strings.xml


<string name="setting_zedielpcbtest">ZedielPcbTest</string>

3.path:packages/apps/Settings/src/com/android/settings/Settings.java


//Add menu under Settings and open app by zfc 20190525
public static class ZedielPcbTestActivity extends SettingsActivity { /* empty */ }

4.path:packages/apps/Settings/src/com/android/settings/SettingsActivity.java


// Show only these settings for restricted users
private String[] SETTINGS_FOR_RESTRICTED = {
  //wireless_section
  WifiSettingsActivity.class.getName(),
  Settings.BluetoothSettingsActivity.class.getName(),
  Settings.DataUsageSummaryActivity.class.getName(),
  Settings.SimSettingsActivity.class.getName(),
  Settings.WirelessSettingsActivity.class.getName(),
  //device_section
  Settings.HomeSettingsActivity.class.getName(),
  Settings.SoundSettingsActivity.class.getName(),
  Settings.DisplaySettingsActivity.class.getName(),
  //Add menu under Settings and open app by zfc 20190525
  Settings.ZedielPcbTestActivity.class.getName(),
};

private static final String[] ENTRY_FRAGMENTS = {
  WirelessSettings.class.getName(),
  WifiSettings.class.getName(),
  AdvancedWifiSettings.class.getName(),
  SavedAccessPointsWifiSettings.class.getName(),
  //Add menu under Settings and open app by zfc 20190525
  ZedielPcbTest.class.getName(),

}

 

5.packages/apps/Settings/src/com/android/settings/ZedielPcbTest.java


/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.android.settings;

import android.content.Context;
import android.os.Build;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceGroup;
import com.android.settings.search.Indexable;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

public class ZedielPcbTest extends SettingsPreferenceFragment implements Indexable{

  @Override
  public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    Intent intent = new Intent();
    ComponentName component = new ComponentName("com.zediel.pcbtest","com.zediel.pcbtest.ZedielTools");
    intent.setComponent(component);
    startActivity(intent);
    finish();
  }

  @Override
  protected int getMetricsCategory() {
    return MetricsEvent.DEVICEINFO;
  }

}

MTK Android 设置下添加一级菜单[ZedielPcbTest]的更多相关文章

  1. Android Studio下添加assets目录

    Android Studio下添加assets目录 分类: Android Studio2013-11-06 18:09 10872人阅读 评论(2) 收藏 举报 android studioasse ...

  2. MTK Android 设置-选择日期格式 [管理和组织首选项,ListPreference,CheckBoxPreference,EditTextPreference,RingtonePreference]

    ###android.preference.ListPreference的一些特性 android:key  选项的名称或键 android:title  选项的标题 android:summary  ...

  3. Android Studio下添加引用jar文件和so文件

    博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 博客园: 追风917 安卓开发中我们常会遇到jar文件和so文件的引用,下面介绍下在as下如何添加使用,这里以百度地图s ...

  4. Android给ListView添加侧滑菜单功能

    贼简单,但是上次集成完之后忘记整理,所以写的有点简单 SwipeMenu类 继承自ViewGroup package com.onepilltest.others; import android.co ...

  5. ATL 工程下添加右击菜单

    首先在dllmain.cpp中添加如下声明 HINSTANCE g_hInstance;  g_hInstance = hInstance; 源码如下: CPoint point;  ::GetCur ...

  6. Android下拉快捷设置面板添加快捷开关流程

    快速设定面板上快捷开关的加载流程,包括图标等的加载和点击事件等的处理过程,以及创建一个快捷开关的主要过程(以增加一个锁屏开关为例).本文所讨论的Android版本为5.1. 快捷开关的加载流程 资源模 ...

  7. Android开发 ---代码创建选项菜单、隐藏菜单项、菜单的生命周期,菜单按钮图标设置、搜索框、xml中设置子菜单

    1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding="utf-8"?> < ...

  8. android 多级下拉菜单实现教程

    原创,如转载请标明链接:http://blog.csdn.net/q610098308/article/details/50333387 很多App,都有二级菜单出现,但android 本身实现的菜单 ...

  9. Android实现下拉导航选择菜单效果

    本文介绍在Android中如何实现下拉导航选择菜单效果.   关于下拉导航选择菜单效果在新闻客户端中用的比较多,当然也可以用在其他的项目中,这样可以很方便的选择更多的菜单.我们可以让我们的应用顶部有左 ...

随机推荐

  1. C++ 选择排序的理解

    #include<stdio.h> #include <iostream> using namespace std; void swap(int *a, int *b) //元 ...

  2. C++ for循环练习

    #include <stdio.h> //题目:现有公鸡5元一只,母鸡3元一只,小鸡1元3只(小鸡不能单买 最少3只起卖),此时顾客有100元,请问有多少种购买方案. int main() ...

  3. 学习ConcurrentHashMap1.7分段锁原理

    1. 概述 接上一篇 学习 ConcurrentHashMap1.8 并发写机制, 本文主要学习 Segment分段锁 的实现原理. 虽然 JDK1.7 在生产环境已逐渐被 JDK1.8 替代,然而一 ...

  4. git重新学习

    一个学习网址:https://learngitbranching.js.org/ 一.对于一个新的远程空仓库 本地新建文件后推送 #初始化 git init #添加文件 git add README. ...

  5. C++ 理解类 和 类中的public、protected、private

    我们要明确,不只是C++有类,很多语言也会用到类,因为现在很多都是面向对象编程... 在c++中,关于类的理解,个人理解是这样的,具有共同属性的一个集合被称为类, 比如说人这个集合,具有性别,年龄,出 ...

  6. C++ json解决方案

    前段时间用到C++来封装com 因此从数据转换上我采用的Json来当两种语言的传递方式,现做下json的序列化与反序列化方案的总结: Rapidjson 文档地址:http://rapidjson.o ...

  7. Python3 + requests + unittest接口测试

    一.缘 起 笔者最近完成了基于Python3 + requests + unittest的接口测试脚本,故在此做一下记录,于己为复盘,于彼为学习和参考 二.思 路 接口测试无非三步: 首先,造数据 - ...

  8. Java多线程并发04——合理使用线程池

    在此之前,我们已经了解了关于线程的基本知识,今天将为各位带来,线程池这一技术.关注我的公众号「Java面典」了解更多 Java 相关知识点. 为什么使用线程池?线程池做的工作主要是控制运行的线程的数量 ...

  9. Python基础 | 关于“循环”那些事

    目录 for 循环 list range enumerate zip while 循环 while相当于if时 while充当for和if的混合体 泛循环 列表解析 map 迭代器 生成器 循环的跳出 ...

  10. Who Gets the Most Candies? POJ - 2886(线段树单点更新+区间查询+反素数)

    预备知识:反素数解析 思路:有了反素数的解法之后就是线段树的事了. 我们可以用线段树来维护哪些人被淘汰,哪些人没被淘汰,被淘汰的人的位置,没被淘汰的人的位置. 我们可以把所有人表示为一个[1,n]的区 ...