Android请求麦克风权限+系统权限页面回调

这篇具有很好参考价值的文章主要介绍了Android请求麦克风权限+系统权限页面回调。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、效果展示

二、代码实现

1、设置权限

2、UI

3、代码逻辑


之前写的基于原生api太复杂了,现基于PermissionX重新实现。

一、效果展示

Android基于PermissionX请求mic权限

二、代码实现

1、设置权限

在manifest文件中配置RECORD_AUDIO权限

<uses-permission android:name="android.permission.RECORD_AUDIO" />

2、添加依赖

dependencies {
    implementation 'com.guolindev.permissionx:permissionx:1.7.1'
}

3、UI

简单的button按钮,点击触发动态申请权限逻辑

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">

    <Button
        android:id="@+id/btPermission"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="请求mic权限" />


</LinearLayout>

4、代码逻辑

package com.example.myapplication;

import static android.content.ContentValues.TAG;

import android.Manifest;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentActivity;

import com.permissionx.guolindev.PermissionX;
import com.permissionx.guolindev.callback.ExplainReasonCallback;
import com.permissionx.guolindev.callback.ForwardToSettingsCallback;
import com.permissionx.guolindev.request.ExplainScope;
import com.permissionx.guolindev.request.ForwardScope;

import java.util.List;


/**
 * Created by tzbc
 */
public class PermissionActivity extends FragmentActivity implements View.OnClickListener {

    private Button permission;


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.kk_activity);

        permission = findViewById(R.id.btPermission);
        permission.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if (v == null) {
            return;
        }
        if (v.getId() == R.id.btPermission) {
            judgeNeedRequestMicPermission();
        }
    }

    /**
     * 请求mic权限
     */
    private void judgeNeedRequestMicPermission() {
        Log.v(TAG, "judgeNeedRequestMicPermission...");
        PermissionX.init(this).permissions(Manifest.permission.RECORD_AUDIO)
                .onExplainRequestReason(new ExplainReasonCallback() {
                    @Override
                    public void onExplainReason(@NonNull ExplainScope scope, @NonNull List<String> deniedList) {
                        scope.showRequestReasonDialog(deniedList, "这是必要的权限",
                                "ok", "cancel");
                    }
                })
                .onForwardToSettings(new ForwardToSettingsCallback() {
                    @Override
                    public void onForwardToSettings(@NonNull ForwardScope scope, @NonNull List<String> deniedList) {
                        scope.showForwardToSettingsDialog(deniedList, "前往设置页面手动开启权限",
                                "ok", "cancel");
                    }
                })
                .request((allGranted, grantedList, deniedList) -> {
                    if (allGranted) {
                        Toast.makeText(PermissionActivity.this, "granted"
                                , Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(PermissionActivity.this, "deny"
                                , Toast.LENGTH_SHORT).show();

                    }
                });
    }

}

Android请求麦克风权限+系统权限页面回调文章来源地址https://www.toymoban.com/news/detail-509651.html

到了这里,关于Android请求麦克风权限+系统权限页面回调的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MacOS 为指定应用添加指定权限(浏览器无法使用摄像头、麦克风终极解决方案)

    起因:需要浏览器在线做一些测评,但我的 Chrome 没有摄像头/麦克风权限,并且在设置中是没有手动添加按钮的。 我尝试了重装软件,更新系统(上面的 13.5 就是这么来的,我本来都半年懒得更新系统了),都没有任何用。 系统版本:MacOS 13.5.1(需要开启 sip,可参考 macOS

    2024年02月07日
    浏览(76)
  • uni_app授权登录及授权麦克风防止用户点击拒绝按钮,权限无法再次被挂起。

    在用uni-app开发小程序的时候我们经常会遇到,需要授权的时候,用户没有点击确认按钮,然后用户再次点击的时候,系统默认执行失败回调函数,权限获取无法再次被挂起。 1、授权登录 先调取uni.getUserProfile  设置desc: \\\'Wexin\\\' 再调去uni.login 然后用返回的code码向接口换取open

    2024年02月09日
    浏览(62)
  • 用Android手机充当台式电脑的摄像头、麦克风和音箱

    需要两个软件(都需要装电脑端和手机端): DroidCam:起摄像头和麦克风的作用 AudioRelay:起输出音频的作用 步骤: 打开手机USB调试模式,连电脑(电脑没反应就重启手机) 电脑、手机启动AudioRelay,在app界面下拉打开USB网络共享,回到主界面随便切换一下,看到DESKTOP字样说

    2024年02月11日
    浏览(82)
  • 解决ubunut20.04系统麦克风异常问题

    方式一:通过PulseAudio,可视化窗口查看 方式二:通过PulseAudio,命令行方式查看   0代表源索引 auto_null.monitor 中的monitor代表是一个监听设备,表示是一个麦蛾啃过 s16le 表示 16 位小端(Signed 16-bit Little Endian)的音频采样格式。 2ch 表示双声道。 44100Hz 是采样率,表示每秒采样

    2024年02月06日
    浏览(42)
  • Android 使用外置USB麦克风MIC录音遇到问题并解决(含录音播放源码)

    使用RK3399的开发板,跑Android8.1系统 一开始插上外置的USB麦克风的时候,无法使用 查看USB麦克风拔插过程的debug打印日志 插入USB麦克风后,adb 查询当前声卡信息 cat cards 通过分析发现,USB麦克风设备没有枚举出来,节点都没挂载上去 这时候就怀疑是硬件问题, USB麦克风设备

    2024年02月09日
    浏览(78)
  • Android 13 定制化开发--开启相机或麦克风时,去掉状态栏上的绿色图标

     Android 12 或更高版本的设备上,当应用使用麦克风或相机时,图标会出现在状态栏中。如果应用处于沉浸模式,图标会出现在屏幕的右上角。用户可以打开“快捷设置”,并选择图标以查看哪些应用当前正在使用麦克风或摄像头。图 1 显示了包含图标的示例屏幕截图。 需求

    2024年04月24日
    浏览(77)
  • 会议音响系统麦克风阵列波束形成算法C语言实现

    一 应用麦克风阵列波束成形算法做的项目产品 二 麦克风波束形成技术应用领域? 麦克风波束形成技术是一种利用多个麦克风阵列来实现声音定向捕捉和增强的技术。通过对多个麦克风信号进行处理和合成,可以使麦克风系统在特定方向上具有更高的灵敏度和抑制非期望方向

    2024年02月16日
    浏览(39)
  • macOS录制系统声音及麦克风的三种方法

    首先下载系统声音录制驱动 blackhole ,2ch/16ch/64ch都可,一般用前两个就行了,具体参考:blackhole下载地址,安装之后前往在“audio midi setup”app中即可看到装好的驱动 创建 聚集设备(Aggregate Devices) ,并勾选刚才下载的录制系统声音的驱动,以及想要录制的麦克风(也可以使用外置

    2024年02月06日
    浏览(43)
  • 音频——数字麦克风和模拟麦克风(DMIC/AMIC)

    麦克风 (microphone):是将声音信号转换为电信号的能量转换器件,也就是用来采集你说话的声音 扬声器 (speaker):是一种把电信号转变为声信号的换能器件,就是把对方说话产生的电信号转换成声音播放出来。 简单来说,麦克风的功能是采集声音,扬声器的功能是播放声音。

    2024年02月10日
    浏览(74)
  • 麦克风分类汇总

    1)按声电转换原理分为:电动式(动圈式、铝带式),电容式(直流极化式)、压电式(晶体式、陶瓷式)、以及电磁式、碳粒式、半导体式等。 2)按声场作用力分为:压强式、压差式、组合式、线列式等。 3)按电信号的传输方式分为:有线、无线(无线麦克风分为三个频段,

    2024年02月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包