当前位置: 首页 > news >正文

android FM播放时拔出耳机后,FM APP出现拔出耳机,Fm停止的提示框,然后自动close...

客户要求FM播放时拔出耳机后,FM APP出现“拔出耳机,Fm停止"的提示框,然后自动close
修改FMRadioService.java
1.添加如下import,以便能显示toast
AAAAA add start
import android.widget.Toast;
AAAAA add end
public class FMRadioService extends Service implements FMRecorder.OnRecorderStateChangedListener {
 
2.在下面函数onBind()前添加 
//AAAAA add start
 public static final int MSG_EXIT_FM = 1234;
 private Handler sHandler11 = new Handler() {
   @Override
   public void handleMessage(Message msg) {
    FMRadioLogUtils.d(TAG, "sHandler11 =  " + msg.what);
    switch (msg.what) {
     case MSG_EXIT_FM:
      android.os.Process.killProcess(android.os.Process.myPid());
      break;
    }
   }
 };
 private Toast mToast = null;
 private void showToast(CharSequence text) {
 if (null == mToast) {
     mToast = Toast.makeText(mContext, text, Toast.LENGTH_SHORT);
     }
        mToast.setText(text);
        mToast.show();
        LogUtils.v(TAG, "FMRadioActivity.showToast: toast = " + text);
    };
//AAAAA add end
@Override
    public IBinder onBind(Intent intent) {
        return mBinder;
    }
 
3.修改onReceive 方法,这样子就可以显示toast以及关闭Fm app了
在  switchAntennaAsync(mValueHeadSetPlug);
之后添加:
 if(mValueHeadSetPlug == 1 && mIsPowerUp )
{
   showToast(getString(R.string.toast_plugin_headphone_before_FM));
   sHandler11.sendMessageDelayed(sHandler.obtainMessage(MSG_EXIT_FM, FMRadioService.this),(long)
1000);
mFmServiceHandler.removeCallbacksAndMessages(null);
stopFMFocusLoss(AudioManager.AUDIOFOCUS_LOSS);

}
 else
 sHandler11.removeMessages(MSG_EXIT_FM);
 
4.在alps\mediatek\packages\apps\FMRadio\res\values\ strings.xml中添加
<string name="toast_plugin_headphone_before_FM">The FM will close because you have been plug out
the headphone</string>
 

 

相关文章:

  • 编写shell脚本的另一种方法
  • 《CLR via C#》 之运行时序列化(3)
  • 一些可能没用过的调试窗口
  • Uboot 运行时内存的分配 -- 转
  • Linux系统下4个扇区的解释
  • Kerberos简介
  • ArgoUML 的简单用法
  • 修改eclipse自动生成的comments中的author名字
  • 怎么配置zen coding,我用的是Adobe Dreamweaver CS5 这个有解决么?
  • 安装jdk、安装Tomcat
  • MongoDB学习笔记
  • 中小企业如何设计存储系统方案
  • 九位不同数字乘法等式的递归与非递归回溯算法(三)
  • 超棒的JS移动设备滑动内容幻灯实现 - Swiper
  • 关于SQLite,SQLCipher和FMDB
  • 深入了解以太坊
  • 0基础学习移动端适配
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • ECMAScript6(0):ES6简明参考手册
  • FastReport在线报表设计器工作原理
  • Iterator 和 for...of 循环
  • Javascript弹出层-初探
  • Java-详解HashMap
  • laravel with 查询列表限制条数
  • leetcode讲解--894. All Possible Full Binary Trees
  • PHP变量
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • Zepto.js源码学习之二
  • 跨域
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 如何胜任知名企业的商业数据分析师?
  • 树莓派 - 使用须知
  • 扩展资源服务器解决oauth2 性能瓶颈
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 整理一些计算机基础知识!
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (Java)【深基9.例1】选举学生会
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (汇总)os模块以及shutil模块对文件的操作
  • (接口封装)
  • (六)c52学习之旅-独立按键
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (状压dp)uva 10817 Headmaster's Headache
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .Net程序帮助文档制作
  • .net对接阿里云CSB服务
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • .pyc文件是什么?
  • @property括号内属性讲解
  • @selector(..)警告提示
  • [ 第一章] JavaScript 简史