Android修改媒体音量以及修改屏幕亮度

简介: Android修改媒体音量以及修改屏幕亮度

Android音频相关

音量类型

铃声:STREAM_RING
闹钟:STREAM_ALARM
系统:STREAM_SYSTEM
通话:STREAM_VOICE_CALL
通知:STREAM_NOTIFICATION
媒体音量:STREAM_MUSIC

获取当前媒体音量

// 获取当前媒体音量
public static int getCurrentVolume(Context context){
    if (context == null){
        return -1;
    }
    AudioManager audioManager = (AudioManager)context.getSystemService(context.AUDIO_SERVICE);
    return audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
}

获取最大媒体音量

// 获// 获取最大媒体音量
public static int getMaxVolume(Context context){
    if (context == null){
        return -1;
    }
    AudioManager audioManager = (AudioManager)context.getSystemService(context.AUDIO_SERVICE);
    return audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
}

设置媒体音量

// 设置媒体音量
public static void setVolume(Context context){
    if (context == null){
        return;
    }
    AudioManager audioManager = (AudioManager)context.getSystemService(context.AUDIO_SERVICE);
    int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
    /**
     * setStreamVolume
     *      streamType:音量类型
     *      index:需设置的音量值
     *      flags:附加参数:
     *              AudioManager.FLAG_SHOW_VIBRATE_HINT:震动提示
     *              AudioManager.FLAG_SHOW_SILENT_HINT:静音提示
     *              AudioManager.FLAG_PLAY_SOUND:调整音量时播放声音
     *              AudioManager.FLAG_SHOW_UI:调整音量时显示系统音量进度条;0则不显示
     */
    audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,((int)maxVolume / 2 + 1),0);
}

Android屏幕亮度相关

获取当前屏幕亮度

// 获取当前屏幕亮度
public static int getCurrentScreenBrightness(Context context) throws Settings.SettingNotFoundException {
    if (context == null){
        return -1;
    }
    return Settings.System.getInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
}

获取系统亮度模式

// 获取系统亮度模式(自动亮度:1  手动亮度:0)
public static int getBrightnessMode(Context context) throws Settings.SettingNotFoundException {
    if (context == null){
        return -1;
    }
    return Settings.System.getInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);
}

获取最大屏幕亮度

// 获取最大屏幕亮度
public static int getMaxScreenBrightness(Context context) throws Settings.SettingNotFoundException {
    if (context == null){
        return -1;
    }
    int brightnessSettingMaximumId = context.getResources().getIdentifier("config_screenBrightnessSettingMaximum", "integer", "android");
    return context.getResources().getInteger(brightnessSettingMaximumId);
}

设置屏幕亮度

需要在AndroidManifest.xml中添加此权限

<!-- 修改系统屏幕亮度 -->
<uses-permission android:name="android.permission.WRITE_SETTINGS" tools:ignore="ProtectedPermissions" /> 
// 设置屏幕亮度
@RequiresApi(api = Build.VERSION_CODES.M)
public static void setScreenBrightness(Context context){
  //判断是否有系统设置权限
    if (Settings.System.canWrite(context)){
        Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, 0);//设置手动亮度
        int brightnessSettingMaximumId = context.getResources().getIdentifier("config_screenBrightnessSettingMaximum", "integer", "android");
        int brightnessSettingMaximum = context.getResources().getInteger(brightnessSettingMaximumId);
        Settings.System.putInt(context.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS, brightnessSettingMaximum);//修改系统的亮度
    }else {
      // 具体操作...
    }
}

带权限返回值

package cn.com.lttc.loginui;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.view.View;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

import cn.com.lttc.loginui.util.SystemServiceUtil;

public class TextActivity extends AppCompatActivity {

    public static final int REQUEST_CODE = 100;

    @RequiresApi(api = Build.VERSION_CODES.M)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_register_step_one);

        setScreenBrightness();
    }

    // 设置屏幕亮度
    @RequiresApi(api = Build.VERSION_CODES.M)
    public void setScreenBrightness(){
        if (Settings.System.canWrite(this)){
            Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, 0);//设置手动亮度
            int brightnessSettingMaximumId = getResources().getIdentifier("config_screenBrightnessSettingMaximum", "integer", "android");
            int brightnessSettingMaximum = getResources().getInteger(brightnessSettingMaximumId);//获取系统亮度最大值
            Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_BRIGHTNESS, brightnessSettingMaximum);//修改系统的亮度
        }else {
            // 进入设置页面手动添加权限
            Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse("package:" + getPackageName()));
            startActivityForResult(intent,REQUEST_CODE);
        }
    }

    @RequiresApi(api = Build.VERSION_CODES.M)
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_CODE) {
            if (Settings.System.canWrite(this)) {
                setScreenBrightness();
            } else {
                Toast.makeText(this, "拒绝了权限", Toast.LENGTH_SHORT).show();
            }
        }
    }

}

SystemServiceUtil类

package cn.com.lttc.loginui.util;

import android.content.Context;
import android.media.AudioManager;
import android.os.Build;
import android.provider.Settings;
import androidx.annotation.RequiresApi;

public class SystemServiceUtil {

    // 获取当前媒体音量
    public static int getCurrentVolume(Context context){
        if (context == null){
            return -1;
        }
        AudioManager audioManager = (AudioManager)context.getSystemService(context.AUDIO_SERVICE);//获取音频管理器
        return audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
    }

    // 获取最大媒体音量
    public static int getMaxVolume(Context context){
        if (context == null){
            return -1;
        }
        AudioManager audioManager = (AudioManager)context.getSystemService(context.AUDIO_SERVICE);
        return audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
    }

    // 设置媒体音量
    public static void setVolume(Context context){
        if (context == null){
            return;
        }
        AudioManager audioManager = (AudioManager)context.getSystemService(context.AUDIO_SERVICE);
        int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
        /**
         * setStreamVolume
         *      streamType:音量类型
         *      index:需设置的音量值
         *      flags:附加参数:
         *              AudioManager.FLAG_SHOW_VIBRATE_HINT:震动提示
         *              AudioManager.FLAG_SHOW_SILENT_HINT:静音提示
         *              AudioManager.FLAG_PLAY_SOUND:调整音量时播放声音
         *              AudioManager.FLAG_SHOW_UI:调整音量时显示系统音量进度条;0则不显示
         */
        audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,((int)maxVolume / 2 + 1),0);
    }

    // 获取当前屏幕亮度
    public static int getCurrentScreenBrightness(Context context) throws Settings.SettingNotFoundException {
        if (context == null){
            return -1;
        }
        return Settings.System.getInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
    }

    // 获取系统亮度模式(自动亮度:1  手动亮度:0)
    public static int getBrightnessMode(Context context) throws Settings.SettingNotFoundException {
        if (context == null){
            return -1;
        }
        return Settings.System.getInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);
    }

    // 获取最大屏幕亮度
    public static int getMaxScreenBrightness(Context context) throws Settings.SettingNotFoundException {
        if (context == null){
            return -1;
        }
        int brightnessSettingMaximumId = context.getResources().getIdentifier("config_screenBrightnessSettingMaximum", "integer", "android");
        return context.getResources().getInteger(brightnessSettingMaximumId);
    }

    // 设置屏幕亮度
    @RequiresApi(api = Build.VERSION_CODES.M)
    public static void setScreenBrightness(Context context){
        if (Settings.System.canWrite(context)){
            Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, 0);//设置手动亮度
            int brightnessSettingMaximumId = context.getResources().getIdentifier("config_screenBrightnessSettingMaximum", "integer", "android");
            int brightnessSettingMaximum = context.getResources().getInteger(brightnessSettingMaximumId);//获取系统亮度最大值
            Settings.System.putInt(context.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS, brightnessSettingMaximum);//修改系统的亮度
        }
    }

}
目录
相关文章
|
10月前
|
JavaScript Android开发
使用贝叶斯曲线滑动安卓屏幕(autojsPro7)
使用贝叶斯曲线滑动安卓屏幕(autojsPro7)
312 0
|
数据采集 前端开发 Android开发
Android平台RTMP推送或GB28181设备接入端如何实现采集audio音量放大?
我们在做Android平台RTMP推送和GB28181设备对接的时候,遇到这样的问题,有的设备,麦克风采集出来的audio,音量过高或过低,特别是有些设备,采集到的麦克风声音过低,导致播放端听不清前端采集的audio,这时候,就需要针对采集到的audio,做音量放大处理。
103 0
|
10月前
|
XML Java Android开发
Android Studio App开发之捕获屏幕的变更事件实战(包括竖屏与横屏切换,回到桌面与切换到任务列表)
Android Studio App开发之捕获屏幕的变更事件实战(包括竖屏与横屏切换,回到桌面与切换到任务列表)
251 0
|
10月前
|
开发工具 Android开发
rk平台Android12屏幕永不休眠
rk平台Android12屏幕永不休眠
166 1
|
6月前
|
编解码 开发工具 Android开发
Android平台实现屏幕录制(屏幕投影)|音频播放采集|麦克风采集并推送RTMP或轻量级RTSP服务
Android平台屏幕采集、音频播放声音采集、麦克风采集编码打包推送到RTMP和轻量级RTSP服务的相关技术实现,做成高稳定低延迟的同屏系统,还需要有配套好的RTMP、RTSP直播播放器
|
10月前
|
Shell Android开发
ADB更改Android设备屏幕显示方向
ADB更改Android设备屏幕显示方向
453 5
|
10月前
|
Java Android开发
修改Android 触摸提示音及音量大小
修改Android 触摸提示音及音量大小
343 4
|
10月前
|
Android开发
获取Android设备屏幕大小
获取Android设备屏幕大小
160 3
|
9月前
|
Android开发
Android音量细分
【6月更文挑战第3天】
102 0
|
9月前
|
API Android开发 UED
56. 【Android教程】媒体播放器:MediaPlayer
56. 【Android教程】媒体播放器:MediaPlayer
203 0

热门文章

最新文章

  • 1
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 2
    Android历史版本与APK文件结构
  • 3
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 4
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 5
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 6
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 7
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 8
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 9
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
  • 10
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥