iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >android实现添加耳机状态图标的方法
  • 677
分享到

android实现添加耳机状态图标的方法

耳机状态图方法Android 2022-06-06 09:06:04 677人浏览 泡泡鱼
摘要

本文实例讲述了Android实现添加耳机状态图标的方法。分享给大家供大家参考。具体如下: 原生态的android系统是没有耳机插入或未插入的状态指示的,本文就是讲解如何添加耳机

本文实例讲述了Android实现添加耳机状态图标的方法。分享给大家供大家参考。具体如下:

原生态的android系统是没有耳机插入或未插入的状态指示的,本文就是讲解如何添加耳机插入的状态指示。效果图如下

如图,当插入耳机后,在status bar上出现了一个耳机的图标。

这个耳机的图标和sim卡信号等图标在status bar的右边,因此这个实现肯定不是通过notification实现的,那么添加这个功能只能在framwork里面寻找了。具体的修改步骤如下:

1.在frameworks/base/core/res/res/drawable-mdpi目录先添加一个stat_sys_headset.png资源文件。这里面资源文件的目录要根据设备的分辨率来确定,我的设备是HVGA的,因此资源文件放在drawable-mdpi目录下。

2.修改frameworks/base/services/java/com/android/server/status/StatusBarPolicy.java


public class StatusBarPolicy {
 private static final String TAG = "StatusBarPolicy";
 private static StatusBarPolicy sInstance;
 .....
 // alarm clock
 // Icon lit when clock is set
 private IBinder mAlarmClockIcon;
 private IconData mAlarmClockIconData;
 //modify here start
 //HeadSet
 private IBinder mHeadSetPlugIcon;
 private IconData mHeadSetPlugIconData;
 //modify here end
 .....
 private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
  @Override
  public void onReceive(Context context, Intent intent) {
   String action = intent.getAction();
   if (action.equals(Intent.ACTION_TIME_TICK)) {
    updateClock();
   }
   .....
   else if (action.equals(Intent.ACTION_ALARM_CHANGED)) {
    updateAlarm(intent);
   }
   //modify here start
   else if (action.equals(Intent.ACTION_HEADSET_PLUG)) {
    updateHeadset(intent);
   }
   //modify here end
   else if (action.equals(Intent.ACTION_SYNC_STATE_CHANGED)) {
    updateSyncState(intent);
   }
   ......
  };
  private StatusBarPolicy(Context context, StatusBarService service) {
  mContext = context;
  mService = service;
  mSignalStrength = new SignalStrength();
  if(FeatureOption.MTK_GEMINI_SUPPORT == true) {
   mSignalStrengthGemini = new SignalStrength();
  }
  mBatteryStats = BatteryStatsService.getService();
  ....
  //modify here start
  //HeadSet
  mHeadSetPlugIconData = IconData.makeIcon(
   "headset", 
   null,com.android.internal.R.drawable.stat_sys_headset, 0, 0);
  mHeadSetPlugIcon = service.addIcon(mHeadSetPlugIconData, null);
  service.setIconVisibility(mHeadSetPlugIcon, false);
  //modify here end
  ....
  IntentFilter filter = new IntentFilter();
  // ReGISter for Intent broadcasts for...
  filter.addAction(Intent.ACTION_TIME_TICK);
  ....
  //modify here start
  filter.addAction(Intent.ACTION_HEADSET_PLUG);
  //modify here end
  ....
 }
 //modify here start
 private final void updateHeadset(Intent intent) {
  Slog.d(TAG, "updateHeadset: state=" + intent.getIntExtra("state", 0)); 
  mService.setIconVisibility(mHeadSetPlugIcon, (intent.getIntExtra("state", 0) == 1)?true:false);
 }
 //modify here end
 .....
}

3.修改frameworks/base/core/res/res/values/arrays.xml


<string-array name="status_bar_icon_order">
  <item><xliff:g id="id">clock</xliff:g></item>
  <item><xliff:g id="id">secure</xliff:g></item>
  <item><xliff:g id="id">alarm_clock</xliff:g></item>
  <item><xliff:g id="id">battery</xliff:g></item>
  <item><xliff:g id="id">phone_signal_2</xliff:g></item>
  <item><xliff:g id="id">phone_signal</xliff:g></item>
  <item><xliff:g id="id">phone_evdo_signal</xliff:g></item>
  <item><xliff:g id="id">data_connection</xliff:g></item>
  <item><xliff:g id="id">cdma_eri</xliff:g></item>
  <item><xliff:g id="id">tty</xliff:g></item>
  <item><xliff:g id="id">volume</xliff:g></item>
  <item><xliff:g id="id">mute</xliff:g></item>
  <item><xliff:g id="id">speakerphone</xliff:g></item>
  <!-- modify here start. -->
  <item><xliff:g id="id">headset</xliff:g></item>
  <!-- modify here end -->
  <item><xliff:g id="id">wifi</xliff:g></item>
  <item><xliff:g id="id">tty</xliff:g></item>
  <item><xliff:g id="id">bluetooth</xliff:g></item>
  <item><xliff:g id="id">gps</xliff:g></item>
  <item><xliff:g id="id">sync_active</xliff:g></item>
  <item><xliff:g id="id">sync_failing</xliff:g></item>
  <item><xliff:g id="id">ime</xliff:g></item>
</string-array>

其中“headset”这个字符串就是“mHeadSetPlugIconData = IconData.makeIcon( "headset", null0, 0);”中的第一个参数。“<item><xliff:g id="id">headset</xliff:g></item> ”这个语句的位置于图标在status bar上显示的位置有关。

希望本文所述对大家的Android程序设计有所帮助。

您可能感兴趣的文章:Android应用图标在状态栏上显示实现原理Android界面 NotificationManager使用Bitmap做图标android 左右滑动+索引图标实现方法与代码android如何添加桌面图标和卸载程序后自动删除图标android中TabHost的图标(48×48)和文字叠加解决方法Android百度地图实现搜索和定位及自定义图标绘制并点击时弹出泡泡Android不使用自定义布局情况下实现自定义通知栏图标的方法Android编程实现图标拖动效果的方法android app icon 图标大小尺寸android实现状态栏添加图标的函数实例Android应用中制作选中后图标变大浮动效果的代码分享Android设置个性化Dialog小图标的方法


--结束END--

本文标题: android实现添加耳机状态图标的方法

本文链接: https://www.lsjlt.com/news/26503.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android实现修改状态栏背景、字体和图标颜色的方法
    前言:Android开发,对于状态栏的修改,实在是不友好,没什么api可以用,不像ios那么方便.但是ui又喜欢只搞ios一套.没办法.各种翻源码,写反射.真的蛋疼.需求场景:当toolbar及状态栏需要为白色或浅色时(如简书),状态栏由于...
    99+
    2023-05-30
    android 状态栏 roi
  • Python中Matplotlib图像添加标签的方法实现
    目录一、添加文本标签 plt.text()二、添加注释 plt.annotate()一、添加文本标签 plt.text() 用于在绘图过程中,在图像上指定坐标的位置添加文本。需要用到...
    99+
    2023-05-14
    Python Matplotlib图像添加标签 Python Matplotlib添加标签
  • Android用RecyclerView实现动态添加本地图片
    本文介绍了Android用RecyclerView实现动态添加本地图片,分享给大家,具体如下:本文所用的多图选择的library来自:https://github.com/lovetuzitong/MultiImageSelector简单介...
    99+
    2023-05-30
    android 动态 添加图片
  • Android实现动态添加数据与堆叠折线图的方法是什么
    本篇内容介绍了“Android实现动态添加数据与堆叠折线图的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果视频引用描述本示例采...
    99+
    2023-06-25
  • Android动态添加view的方法示例
    由于项目需求菜单写活,效果如下:这里的按钮数量是可变的.png由于不是可滑动控件,我用的百分比布局做的适配 LinearLayout typeLayout = (LinearLayout) headerView.findViewById(R...
    99+
    2023-05-30
    android 动态 添加view
  • Android怎么实现加载状态视图切换效果
    这篇文章主要介绍了Android怎么实现加载状态视图切换效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。关于Android加载状态视图切换,具体内容如下1.关于Androi...
    99+
    2023-05-30
    android
  • Android给图片添加水印的方法
    这篇文章主要介绍Android给图片添加水印的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 前言PS:最近在项目执行过程中有这样一个需求,要求拍完照的图片必须达到以上的效果。需求分析:使用用预览布局Surf...
    99+
    2023-06-15
  • Android编程实现状态保存的方法分析
    本文实例讲述了Android编程实现状态保存的方法。分享给大家供大家参考,具体如下:当我们正在发短信的时候,已经写了几百字了,这时突然来了一个电话,我们接完电话之后,如果发现辛辛苦苦的几百字不见了,那可就火大了,而实际上这些内容都是保存了的...
    99+
    2023-05-30
    android 状态 保存
  • Android Studio实现标题栏和状态栏的隐藏
    Android Studio在实现隐藏标题栏和状态栏上和Eclipse是完全不一样的。在Eclipse上隐藏标题栏和状态栏的代码如下:方法一: requestWindowFeature(Window.FEATURE_NO_TITLE);方法...
    99+
    2023-05-30
    android 标题栏 状态栏
  • Android动态更换应用图标的方法
    这篇文章主要介绍“Android动态更换应用图标的方法”,在日常操作中,相信很多人在Android动态更换应用图标的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android动态更换应用图标的方法”的疑...
    99+
    2023-07-02
  • Java在PowerPoint中添加上标和下标的实现方法
    目录前言程序环境配置安装Spire.Presentation for Java添加上标和下标代码实现前言 当我们在演示文稿中添加商标、版权或其他符号时,我们可能希望该符号出现在某个文...
    99+
    2022-11-13
    Java添加上标和下标 Java PowerPoint上标和下标
  • Spring动态添加定时任务的实现方法
    本篇内容主要讲解“Spring动态添加定时任务的实现方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring动态添加定时任务的实现方法”吧!一、背景在工作中,有些时候我们有些定时任务的执行...
    99+
    2023-06-20
  • Android ListView实现ImageLoader图片加载的方法
    本文实例讲述了Android ListView实现ImageLoader图片加载的方法。分享给大家供大家参考,具体如下:最近一直忙着做项目,今天也是忙里偷闲,想写篇博客来巩固下之前在应用中所用的知识。之前我们可能会也会肯定遇到了图片的异步加...
    99+
    2023-05-30
    android listview imageloader
  • C#Windows应用程序开发添加状态条的方法
    这篇文章主要介绍“C#Windows应用程序开发添加状态条的方法”,在日常操作中,相信很多人在C#Windows应用程序开发添加状态条的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#Windows应用...
    99+
    2023-06-17
  • android listview动态添加数据的方法是什么
    在Android中,可以通过以下方法动态添加数据到ListView中:1. 创建一个数据源:首先,需要创建一个数据源,用于存储要显示...
    99+
    2023-09-16
    android listview
  • Android实现动态添加数据与堆叠折线图详解流程
    目录效果视频引用描述导包代码分析初始化动态添加数据温度数据湿度数据光照数据动态添加X轴时间值初始化自动刷新时间实现尾言效果视频 引用 描述 本示例采用的是非常、非常、非常好用的一款...
    99+
    2024-04-02
  • python画图添加数据标签的方法是什么
    在Python中,可以使用Matplotlib库的`annotate()`函数来添加数据标签。以下是一个例子:```pythonim...
    99+
    2023-09-20
    python
  • Android自定义图片地图坐标功能的实现方法
    本篇内容主要讲解“Android自定义图片地图坐标功能的实现方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android自定义图片地图坐标功能的实现方法”吧!一、前言最近项目要求实现一个在自...
    99+
    2023-06-20
  • 函数指针方法怎么实现简单状态机
    本篇内容主要讲解“函数指针方法怎么实现简单状态机”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“函数指针方法怎么实现简单状态机”吧!状态机简介有限状态机FSM是有限个状态及在这些状态之间的转移和动...
    99+
    2023-06-15
  • Android App开发超实用实例 | OpenCV在Android手机实现在图像上添加文本
     OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,它可以运行在Linux、Windows、Android和Mac OS等操作系统上。OpenCV原本由一系列 C 函数和少量 C++ 类构成,同时提供了Python等其...
    99+
    2023-09-07
    android opencv 计算机视觉
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作