关于android录音权限被用户禁用的问题解决方案
来源:互联网 发布:淘宝网宝贝分类怎么弄 编辑:程序博客网 时间:2024/05/01 02:41
/**
* 用于检测权限管理状态的类
* @author Administrator
*
*/
public class CheckAudioPermission {
public static final int STATE_RECORDING=-1;
public static final int STATE_NO_PERMISSION=-2;
public static final int STATE_SUCCESS=1;
/**
* 用于检测录音权限是禁用还是允许状态
* @return 返回1表示权限是允许状态,返回-2表示权限是禁用状态
* @author ZhuJian
*/
public static int getRecordState(){
int minBuffer=AudioRecord.getMinBufferSize(44100, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);
AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.DEFAULT, 44100, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, (minBuffer*100));
short[] point = new short[minBuffer];
int readSize=0;
try {
audioRecord.startRecording();//检测是否可以进入初始化状态
} catch (Exception e) {
if(audioRecord != null){
audioRecord.release();
audioRecord=null;
Log.i("TAGS","无法进入录音初始状态");
}
return STATE_NO_PERMISSION;
}
if(audioRecord.getRecordingState() != AudioRecord.RECORDSTATE_RECORDING){
//6.0以下机型都会返回状态,故使用时需要判断bulid版本
//检测是否在录音中
if(audioRecord != null){
audioRecord.stop();
audioRecord.release();
audioRecord=null;
Log.i("TAGS","录音机被占用");
}
return STATE_RECORDING;
}else{//检测是否可以获取录音结果
readSize = audioRecord.read(point, 0, point.length);
if(readSize <= 0){
if(audioRecord != null){
audioRecord.stop();
audioRecord.release();
audioRecord = null;
}
Log.i("TAGS", "录音的结果为空");
return STATE_NO_PERMISSION;
}else{
if(audioRecord != null){
audioRecord.stop();
audioRecord.release();
audioRecord = null;
}
return STATE_SUCCESS;
}
}
}
* 用于检测权限管理状态的类
* @author Administrator
*
*/
public class CheckAudioPermission {
public static final int STATE_RECORDING=-1;
public static final int STATE_NO_PERMISSION=-2;
public static final int STATE_SUCCESS=1;
/**
* 用于检测录音权限是禁用还是允许状态
* @return 返回1表示权限是允许状态,返回-2表示权限是禁用状态
* @author ZhuJian
*/
public static int getRecordState(){
int minBuffer=AudioRecord.getMinBufferSize(44100, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);
AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.DEFAULT, 44100, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, (minBuffer*100));
short[] point = new short[minBuffer];
int readSize=0;
try {
audioRecord.startRecording();//检测是否可以进入初始化状态
} catch (Exception e) {
if(audioRecord != null){
audioRecord.release();
audioRecord=null;
Log.i("TAGS","无法进入录音初始状态");
}
return STATE_NO_PERMISSION;
}
if(audioRecord.getRecordingState() != AudioRecord.RECORDSTATE_RECORDING){
//6.0以下机型都会返回状态,故使用时需要判断bulid版本
//检测是否在录音中
if(audioRecord != null){
audioRecord.stop();
audioRecord.release();
audioRecord=null;
Log.i("TAGS","录音机被占用");
}
return STATE_RECORDING;
}else{//检测是否可以获取录音结果
readSize = audioRecord.read(point, 0, point.length);
if(readSize <= 0){
if(audioRecord != null){
audioRecord.stop();
audioRecord.release();
audioRecord = null;
}
Log.i("TAGS", "录音的结果为空");
return STATE_NO_PERMISSION;
}else{
if(audioRecord != null){
audioRecord.stop();
audioRecord.release();
audioRecord = null;
}
return STATE_SUCCESS;
}
}
}
}
我的微博http://weibo.com/laokuzai ,加关注
微信:zhuj8989,找到我问答探讨
0 0
- 关于android录音权限被用户禁用的问题解决方案
- android判断是否禁用了录音权限
- 检测录音程序是否被禁用 录音权限
- 检测录音程序是否被禁用 录音权限
- 【笔记】android录音权限遇到的问题和兼容8.0权限请求的方案
- 关于android 的消息推送问题解决方案
- android之三星手机权限问题解决方案
- Android中关于EditText不能取得值的问题解决方案
- 关于android gridview 加载大量图片的OOM问题解决方案
- android 关于webview不显示的问题解决方案
- android 关于textview跑马灯的问题解决方案
- 关于Android v7包的资源文件错误问题解决方案
- iOS10 权限导致crash的问题解决方案
- Android录音权限被禁解决方案
- android 权限录音权限检测
- 关于即时通讯中Android录音与ios录音的兼容问题
- 关于AVAudioRecorder录音后播放音量小的问题解决方法
- 关于部分国产手机的相机录音等权限判断
- SQL 触发器
- 【NOIP 2001提高组】Car的旅行路线(car.cpp)
- Linux查看CPU,内存,网络
- Kafka分布式流平台的理解
- tensorflow学习笔记(二):tensor 变换
- 关于android录音权限被用户禁用的问题解决方案
- 了解硬盘
- Attempt to invoke virtual method 'int android.view.View.getImportantForAccessibility()' on a null ob
- Eclipse使用技巧 - 自定义JavaDoc注解和代码模版,提升开发效率和规范性
- [完]机器学习实战 第十二章 使用FP-growth算法来高效发现频繁项集
- nagios详细安装配置
- 为什么main方法是public static void?
- Responsive设计
- 携程移动端架构演进与优化之路