public static synchronized boolean isVoicePermission() {
AudioRecord record = null;
try {
record = new AudioRecord(MediaRecorder.AudioSource.MIC, 22050,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
AudioRecord.getMinBufferSize(22050,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT));
record.startRecording();
int recordingState = record.getRecordingState();
if (recordingState == AudioRecord.RECORDSTATE_STOPPED) {
return false;
}
//第一次 为true时,先释放资源,在进行一次判定
//************
record.release();
record = new AudioRecord(MediaRecorder.AudioSource.MIC, 22050,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
AudioRecord.getMinBufferSize(22050,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT));
record.startRecording();
int recordingState1 = record.getRecordingState();
if (recordingState1 == AudioRecord.RECORDSTATE_STOPPED) {
}
//**************
//如果两次都是true, 就返回true 原因未知
return true;
} catch (Exception e) {
return false;
} finally {
if (record != null) {
record.release();
}
} }

  只判定一次的话 ,一般第一次拒绝 会得到true,表示有权限,但是再次获取 就会为false,不知道什么原理

  据说是判定有没有被占用,表示疑问

安卓6.0之前的系统 判断app是否有录音权限的更多相关文章

  1. (转载)安卓6.0之前的系统 判断app是否有录音权限

    卓6.0之前的系统 判断app是否有录音权限   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...

  2. 关于安卓6.0权限申请 PermissionDog

    最近在一家公司实习,项目中需要用到适配安卓6.0以上的系统,我本来是想用其他人已经写好的权限申请框架来实现的,但是发现跟我的需求有点小区别,所以就自己写了一个 这个权限申请的帮助类很小,只有一个jav ...

  3. 安卓4.0以上系统怎么不用root激活XPOSED框架的方法

    在大多单位的引流或业务操作中,基本上都需要使用安卓的高端技术Xposed框架,近期,我们单位购买了一批新的安卓4.0以上系统,基本上都都是基于7.0以上版本,基本上都不能够刷入root超级权限,即便是 ...

  4. 安卓5.0系统怎么无Root激活XPOSED框架的方法

    在大多团队的引流或业务操作中,基本上都需要使用安卓的强大Xposed框架,几天前,我们团队买来了一批新的安卓5.0系统,基本上都都是基于7.0以上系统,基本上都不能够获得Root的su权限,纵然一些能 ...

  5. 安卓9.0系统机器(亲测有效)激活Xposed框架的步骤

    对于喜欢玩手机的哥们来说,经常会用到xposed框架及其种类繁多功能无敌的模块,对于5.0以下的系统版本,只要手机能获得root权限,安装和激活xposed框架是非常简便的,但随着系统版本的持续更新, ...

  6. 记录修改安卓5.0系统浏览器UI遇到的部分问题

    碎碎念 今年七月份本科毕业后入职一家会议平板公司,经过一个一个多月的咸鱼培训轮岗生活,接手了几个小任务,本次记录一下其中一个任务:修改安卓5.0系统浏览器UI.刚接到任务的时候,本以为是很简单的一个任 ...

  7. Android 7.0以上版本 系统解决拍照的问题 exposed beyond app through ClipData.Item.getUri()

    解决方案1: android.os.FileUriExposedException: file:///storage/emulated/0/ilive/images/photophoto.jpeg e ...

  8. 从0到1搭建移动App功能自动化测试平台(2):操作iOS应用的控件

    转自:http://debugtalk.com/post/build-app-automated-test-platform-from-0-to-1-Appium-interrogate-iOS-UI ...

  9. 判断App是否在后台运行

    在一些场景中,经常会需要判断App是否在后台运行,比如是否显示解锁界面,收到新消息是否显示Notification等.需求可能是多样化的,但所依仗的原理是相通的,今天Stay打算说说这些需求的最优解. ...

随机推荐

  1. Microsoft Speech SDK开发包 使用

    下载开发包.我们首先从微软的官网上面下载开发包,下载地址如下: http://www.microsoft.com/en-us/download/details.aspx?id=10121我们主要下载三 ...

  2. ubuntu16.04 + cuda9.0(deb版)+Cudnn7.1

    https://blog.csdn.net/Umi_you/article/details/80268983

  3. ceph学习之PG

    PG的计算公式: 整个集群PG的计算公式 Total PGs = ((Total_number_of_OSD * ) / max_replication_count) 每个POOL中PG的计算公式: ...

  4. 【旧文章搬运】为什么win32k.sys在System进程空间无法访问

    原文发表于百度空间,2010-01-02========================================================================== 玩过Sha ...

  5. python 去停用词

    Try caching the stopwords object, as shown below. Constructing this each time you call the function ...

  6. c/c++时间相关

    本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时.时间的获取.时间的计算和显示格式等方面进行了阐述.本文还通过大量的实例向你展示了time.h头文件中声明的 ...

  7. TypeScript完全解读(26课时)_13.TypeScript完全解读-高级类型(2)

    13.TypeScript完全解读-高级类型(2) 高级类型中文网的地址:https://typescript.bootcss.com/advanced-types.html 创建文件并在index. ...

  8. 让webStorm支持自动监听编译scss文件

    前提概要 今日,重装了两波系统,,,之前安装的各种环境都忘光了,重新又踩一次坑的感觉很不舒服,所以记录一下配置自动编译scss一路遇到的坑 一.webstrom run的时候控制台输出的错误中文提示乱 ...

  9. 201621123016 《Java程序设计》第十三周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 为你的系统增加网络功能(购物车.图书馆管理.斗地主等)-分组完成 为了让你的系统可以被多个用户通过网 ...

  10. MFC对话框程序 屏蔽ESC和ENTER键关闭对话框的方法

    http://blog.csdn.net/xgx198831/article/details/6713651 MFC对话框程序  屏蔽ESC和ENTER键关闭对话框的方法 或许还有其它更好的办法,但下 ...