开发中关于手机的听筒模式的设置

1 篇文章 0 订阅
1 篇文章 0 订阅

  最近在做一个OA类的项目,当然产品经理可不止希望他是一个单纯的OA(CRM)项目,在开发中 产品经理要求做一个类似微信朋友圈的页面,可以查看一些类型的信息,其中有语音信息。

      开始忙碌加班,项目在测试阶段,产品经理过来说咱们的内部信息不能让别人听到,所以,要加类似微信的听筒模式,这里我也是现学现卖的。下面是我的代码 (代码渣,多多指教)

/***************************1:这里首先实现接口SensorEventListener (这里我是在适配器里实例化的 ,对于三星手机可能会出问题 这里建议写在Activity里)

public class CRMCustomInformationAdapter extends BaseAdapter  implements SensorEventListener {


private List<CustomerInformation> mlist;
private BaseActivity mBaseActivity;

/************************2:声明控件
SensorManager _sensorManager = null; // 传感器管理器
Sensor mProximiny = null; // 传感器实例
private Object mlock = new Object();
float f_proximiny; // 当前传感器距离AudioManager audioManager = null; // 声音管理器



public CRMCustomInformationAdapter(List<CustomerInformation> list,
BaseActivity BaseActivity) {


this.mlist = list;
this.mBaseActivity = BaseActivity;

//***************************3:这里是实例化距离传感器 和管理者
audioManager = (AudioManager) mBaseActivity.getSystemService(Context.AUDIO_SERVICE);
_sensorManager = (SensorManager) mBaseActivity.getSystemService(Context.SENSOR_SERVICE);
mProximiny = _sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
_sensorManager.registerListener(this, mProximiny,SensorManager.SENSOR_DELAY_NORMAL);
}

/***************************************




/*
* 4:实现SensorEventListener需要实现的两个方法。   

  *         这里的 mProximiny.getMaximumRange()  是监听手机听筒旁的红外线感应器的  如果检测到有物体靠近听筒时  自动开启听筒播放功能  

  * if (f_proximiny >= mProximiny.getMaximumRange()) {
  * audioManager.setMode(AudioManager.MODE_NORMAL);
  * } else {
  * audioManager.setSpeakerphoneOn(false);
  * audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
  * }

*/
@Override
public void onSensorChanged(SensorEvent event) {
synchronized (mlock) {
f_proximiny = event.values[0];

if (f_proximiny >= mProximiny.getMaximumRange()) {
audioManager.setMode(AudioManager.MODE_NORMAL);
} else {
audioManager.setSpeakerphoneOn(false);
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
}
}
}


/*
  */
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {


}

public void releaseSensor() {
_sensorManager.unregisterListener(new SensorEventListener() {

@Override
public void onSensorChanged(SensorEvent event) {
}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
});
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值