Android 一体机研发之修改系统设置————屏幕亮度

news2024/9/23 17:21:39

在这里插入图片描述
Android 一体机研发之修改系统设置————屏幕亮度

Android 一体机研发之修改系统设置————声音

Android 一体机研发之修改系统设置————自动锁屏

前言

最近工作略微有点儿空闲,抽空给大家总结一下:近期一直搞得一体机app研发,适用于医疗渠道。

一体机找工厂定制了一下板子和系统,找他们fw后期app会以apk的形式封装到系统中,当然了开机logo也会封装进去。

在这版一体机,有一个可以更改系统设置的功能版块,记得之前总结过Android 调用系统设置,有兴趣的可以去看一下;这一篇将把部分功能做一个细分化讲解。

但是在调用系统设置的时候,有些系统功能让用户一看就和手机一样的功能,并且有些功能是我们不需要的,这里就需要我们自己去实现修改系统权限的功能

接下来,会给大家出几篇一体机研发之修改系统设置系列文章,欢迎我们共同学习进步!

屏幕亮度

修改系统屏幕亮度这种操作还是挺常见的,一般在多媒体开发中多少会涉及到。

从上图中虽然很难看出效果展示,但是大概都能猜到功能的具体实现,就是通过seekBar来控制亮度的百分比。

如果想实现修改屏幕亮度功能,这里涉及了一个高级隐私权限,需要用户在app设置页面手动授权

设计思路

  1. AndroidManifest设置权限;

  2. 获取系统屏幕亮度;

  3. 修改系统Settings 中屏幕亮度(注册监听屏幕亮度变化),影响所有页面和App;

    3.1 判断权限

    3.2 有则修改屏幕亮度

    3.3 无则引导用户授权

具体实现

AndroidManifest设置权限

	<!-- 修改系统设置 -->
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    <uses-permission android:name="android.permission.HARDWARE_TEST" />

获取系统屏幕亮度

  • Java
	/**
     * 获取app屏幕亮度
     *
     * @param activity
     * @return
     */
    public static int getScreenBrightness(Activity activity) {
        try {
            return Settings.System.getInt(activity.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
        } catch (Settings.SettingNotFoundException e) {
            e.printStackTrace();
        }

        return 0;
    }
  • Kotlin
	/**
     * 获取系统屏幕亮度(0-255)
     */
    private fun getScreenBrightness(): Int {
        try {
            return Settings.System.getInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS)
        } catch (e: SettingNotFoundException) {
            e.printStackTrace()
        }
        return 0
    }

修改系统Settings 中屏幕亮度,影响所有页面和App

注册监听 系统屏幕亮度变化
  • Java
	private void registerContentObserver() {
        ContentResolver contentResolver = getContentResolver();
        if (contentResolver != null) {
            contentResolver.registerContentObserver(Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS),
                    true,
                    mBrightnessObserver);
        }
    }
  • Kotlin
	private fun registerContentObserver() {
        this.contentResolver?.registerContentObserver(
            Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS),
            true,
            mBrightnessObserver
        )
    }

监听系统亮度变化
  • Java
	private ContentObserver mBrightnessObserver = new ContentObserver(new Handler()) {
        
        public void onChange(boolean selfChange) {
            super.onChange(selfChange);

            ContentResolver contentResolver = getContentResolver();
            if (contentResolver != null) {
                mScreenBrightness = getScreenBrightness(BrightActivity.this);
                Log.e("监听亮度 >>>", "init: " + mScreenBrightness);
                updateNum(mScreenBrightness);
                setWindowBrightness(mScreenBrightness);
            }
        }
    };
  • Kotlin
	private val mBrightnessObserver = object : ContentObserver(Handler(Looper.getMainLooper())) {
        override fun onChange(selfChange: Boolean) {
            super.onChange(selfChange)
            try {
                this.contentResolver?.let {
                    mScreenBrightness = Settings.System.getInt(it, Settings.System.SCREEN_BRIGHTNESS)
                    updateNum(mScreenBrightness)
                    setWindowBrightness(mScreenBrightness)
                }
            } catch (e: SettingNotFoundException) {
                e.printStackTrace()
            }
        }
    }

注销监听
  • Java
	
    protected void onDestroy() {
        super.onDestroy();
        ContentResolver contentResolver = getContentResolver();
        if (contentResolver != null) {
            contentResolver.unregisterContentObserver((ContentObserver) mBrightnessObserver);
        }
    }
  • Kotlin
	override fun onDestroy() {
        super.onDestroy()
        //注销监听
        this.contentResolver?.unregisterContentObserver(mBrightnessObserver)
    }

通过seekBar修改系统Settings 中屏幕亮度

  • Java
	brightBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            (api = Build.VERSION_CODES.M)
            
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                Log.e("动态屏幕亮度 >>>", "onProgressChanged: " + progress);
                mScreenBrightness = progress * ratio;
                if (Settings.System.canWrite(BrightActivity.this)) {
                    setScreenBrightness(mScreenBrightness);
                    updateNum(mScreenBrightness);
                } else {
                    Toast.makeText(BrightActivity.this, "没有修改权限", Toast.LENGTH_SHORT).show();

                    // 打开允许修改Setting 权限的界面
                    Intent intent = new Intent(
                            Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri
                            .parse("package:"
                                    + getPackageName()));
                    startActivityForResult(intent,
                            mRequestCode);
                }
            }

            
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });
  • Kotlin
	seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
            override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
                Log.i("onProgressChanged----", "" + progress)
                mScreenBrightness = progress * ratio
                //判断是否有修改系统设置权限
                if (Settings.System.canWrite(this)) {
                    setScreenBrightness(mScreenBrightness)
                    updateNum(mScreenBrightness)
                } else {
                    Toast.makeText(this, "没有修改权限", Toast.LENGTH_SHORT).show()
                    // 打开允许修改系统设置权限的页面
                    val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse("package:$packageName"))
                    startActivityForResult(intent, mRequestCode)
                }
            }

            override fun onStartTrackingTouch(seekBar: SeekBar?) {
            }

            override fun onStopTrackingTouch(seekBar: SeekBar?) {
            }
        })

用户已授权,设置屏幕亮度

  • Java
 	/**
     * 设置系统屏幕亮度,影响所有页面和app
     * 注意:这种方式是需要手动权限的(android.permission.WRITE_SETTINGS)
     */
    private final void setScreenBrightness(int brightness) {
        //先检测调节模式
        setScreenManualMode();
        //再设置
        Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, brightness);
    }

    private final void setScreenManualMode() {
        try {
            //获取当前系统亮度调节模式
            int mode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);
            //如果是自动,则改为手动
            if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
                Settings.System.putInt(getContentResolver(),
                        Settings.System.SCREEN_BRIGHTNESS_MODE,
                        Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
            }
        } catch (Settings.SettingNotFoundException var2) {
            var2.printStackTrace();
        }
    }
  • Kotlin
 	/**
     * 设置系统屏幕亮度,影响所有页面和app
     * 注意:这种方式是需要手动权限的(android.permission.WRITE_SETTINGS)
     */
    private fun setScreenBrightness(brightness: Int) {
        try {
            //先检测调节模式
            setScreenManualMode()
            //再设置
            Settings.System.putInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS, brightness)
        } catch (e: SettingNotFoundException) {
            e.printStackTrace()
        }
    }

 	/**
     * 设置系统亮度调节模式(SCREEN_BRIGHTNESS_MODE)
     * SCREEN_BRIGHTNESS_MODE_MANUAL 手动调节
     * SCREEN_BRIGHTNESS_MODE_AUTOMATIC 自动调节
     */
    private fun setScreenManualMode() {
        try {
            //获取当前系统亮度调节模式
            val mode = Settings.System.getInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE)
            //如果是自动,则改为手动
            if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
                Settings.System.putInt(
                    this.contentResolver,
                    Settings.System.SCREEN_BRIGHTNESS_MODE,
                    Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
                )
            }
        } catch (e: SettingNotFoundException) {
            e.printStackTrace()
        }
    }

监听系统按键

	//监听系统按键
    
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_VOLUME_DOWN:
                if (mScreenBrightness > ratio) {
                    mScreenBrightness -= ratio;
                } else {
                    mScreenBrightness = 1;
                }
                Log.e("Down >>>", "onKeyDown: " + mScreenBrightness);
                setWindowBrightness(mScreenBrightness);
                updateNum(mScreenBrightness);
                return true;
            case KeyEvent.KEYCODE_VOLUME_UP:
                if (mScreenBrightness < (255 - ratio)) {
                    mScreenBrightness += ratio;
                } else {
                    mScreenBrightness = 255;
                }
                Log.e("Up >>>", "onKeyDown: " + mScreenBrightness);
                setWindowBrightness(mScreenBrightness);
                updateNum(mScreenBrightness);
                return true;
           /* case KeyEvent.KEYCODE_VOLUME_MUTE:

                return true;*/
        }
        return super.onKeyDown(keyCode, event);
    }

完整操作

  • Java
/**
 * @author 拉莫帅
 * @date 2023/2/8
 * @address
 * @Desc 修改系统亮度
 */
public class BrightActivity extends Activity {

    /**
     * 非系统签名应用,引导用户手动授权修改Settings 权限
     **/
    private int mRequestCode = 1;

    private SeekBar brightBar;

    //当前屏幕亮度
    private int mScreenBrightness = 0;

    //每次加减的比例
    private int ratio = 25;

    private ContentObserver mBrightnessObserver = new ContentObserver(new Handler()) {
        
        public void onChange(boolean selfChange) {
            super.onChange(selfChange);

            ContentResolver contentResolver = getContentResolver();
            if (contentResolver != null) {
                mScreenBrightness = getScreenBrightness(BrightActivity.this);
                Log.e("监听亮度 >>>", "init: " + mScreenBrightness);
                updateNum(mScreenBrightness);
                setWindowBrightness(mScreenBrightness);
            }
        }
    };

    (api = Build.VERSION_CODES.M)
    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bright);

        init();
        registerContentObserver();
        setListener();
    }

    private void init() {
        brightBar = findViewById(R.id.brightBar);
        ImageView back = findViewById(R.id.back);
        TextView title = findViewById(R.id.title);
        title.setText("亮度");

        //获取当前亮度
        mScreenBrightness = getScreenBrightness(BrightActivity.this);
        Log.e("当前亮度 >>>", "init: " + mScreenBrightness);
        updateNum(mScreenBrightness);

        back.setOnClickListener(new View.OnClickListener() {
            
            public void onClick(View v) {
                finish();
            }
        });
    }

    private void registerContentObserver() {
        ContentResolver contentResolver = getContentResolver();
        if (contentResolver != null) {
            contentResolver.registerContentObserver(Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS),
                    true,
                    mBrightnessObserver);
        }
    }

    
    protected void onDestroy() {
        super.onDestroy();
        ContentResolver contentResolver = getContentResolver();
        if (contentResolver != null) {
            contentResolver.unregisterContentObserver((ContentObserver) mBrightnessObserver);
        }
    }

    private void setListener() {
        brightBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            (api = Build.VERSION_CODES.M)
            
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                Log.e("动态屏幕亮度 >>>", "onProgressChanged: " + progress);
                mScreenBrightness = progress * ratio;
                if (Settings.System.canWrite(BrightActivity.this)) {
                    setScreenBrightness(mScreenBrightness);
                    updateNum(mScreenBrightness);
                } else {
                    Toast.makeText(BrightActivity.this, "没有修改权限", Toast.LENGTH_SHORT).show();

                    // 打开允许修改Setting 权限的界面
                    Intent intent = new Intent(
                            Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri
                            .parse("package:"
                                    + getPackageName()));
                    startActivityForResult(intent,
                            mRequestCode);
                }
            }

            
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });
    }

    (api = Build.VERSION_CODES.M)
    
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == mRequestCode) {
            if (Settings.System.canWrite((Context) BrightActivity.this)) {
                setScreenBrightness(mScreenBrightness);
                updateNum(mScreenBrightness);
            } else {
                Toast.makeText((Context) this, "您已拒绝修系统Setting的屏幕亮度权限", Toast.LENGTH_SHORT).show();
            }
        }
    }

    /**
     * 获取app屏幕亮度
     *
     * @param activity
     * @return
     */
    public static int getScreenBrightness(Activity activity) {
        try {
            return Settings.System.getInt(activity.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
        } catch (Settings.SettingNotFoundException e) {
            e.printStackTrace();
        }

        return 0;
    }

    /**
     * 更新页面显示
     *
     * @param mScreenBrightness
     */
    private final void updateNum(int mScreenBrightness) {
        //四舍五入
        int i = (int) Math.floor(mScreenBrightness / ratio);
        brightBar.setProgress(i);
    }

    /**
     * 设置系统屏幕亮度,影响所有页面和app
     * 注意:这种方式是需要手动权限的(android.permission.WRITE_SETTINGS)
     */
    private final void setScreenBrightness(int brightness) {
        //先检测调节模式
        setScreenManualMode();
        //再设置
        Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, brightness);
    }

    private final void setScreenManualMode() {
        try {
            //获取当前系统亮度调节模式
            int mode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);
            //如果是自动,则改为手动
            if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
                Settings.System.putInt(getContentResolver(),
                        Settings.System.SCREEN_BRIGHTNESS_MODE,
                        Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
            }
        } catch (Settings.SettingNotFoundException var2) {
            var2.printStackTrace();
        }

    }

    /**
     * 设置当前应用屏幕亮度,只当前有效
     */
    private final void setWindowBrightness(int brightness) {
        Window window = this.getWindow();
        WindowManager.LayoutParams lp = window.getAttributes();
        lp.screenBrightness = (float) brightness / 255.0F;
        window.setAttributes(lp);
    }

    //监听系统按键
    
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_VOLUME_DOWN:
                if (mScreenBrightness > ratio) {
                    mScreenBrightness -= ratio;
                } else {
                    mScreenBrightness = 1;
                }
                Log.e("Down >>>", "onKeyDown: " + mScreenBrightness);
                setWindowBrightness(mScreenBrightness);
                updateNum(mScreenBrightness);
                return true;
            case KeyEvent.KEYCODE_VOLUME_UP:
                if (mScreenBrightness < (255 - ratio)) {
                    mScreenBrightness += ratio;
                } else {
                    mScreenBrightness = 255;
                }
                Log.e("Up >>>", "onKeyDown: " + mScreenBrightness);
                setWindowBrightness(mScreenBrightness);
                updateNum(mScreenBrightness);
                return true;
           /* case KeyEvent.KEYCODE_VOLUME_MUTE:

                return true;*/
        }
        return super.onKeyDown(keyCode, event);
    }
}
  • Kotlin
class BrightnessActivity : AppCompatActivity() {

    //当前屏幕亮度
    private var mScreenBrightness: Int = 0

    //每次加减的比例
    private var ratio: Int = 25

    private var mRequestCode = 1

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_brightness)

        init()

        registerContentObserver()

        setListener()
    }

    private fun init() {
        mScreenBrightness = getScreenBrightness()
        updateNum(mScreenBrightness)
    }

    /**
     * 注册监听 系统屏幕亮度变化
     */
    private fun registerContentObserver() {
        this.contentResolver?.registerContentObserver(
            Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS),
            true,
            mBrightnessObserver
        )
    }

    /**
     * 监听系统亮度变化
     */
    private val mBrightnessObserver = object : ContentObserver(Handler(Looper.getMainLooper())) {
        override fun onChange(selfChange: Boolean) {
            super.onChange(selfChange)
            try {
                this.contentResolver?.let {
                    mScreenBrightness = Settings.System.getInt(it, Settings.System.SCREEN_BRIGHTNESS)
                    updateNum(mScreenBrightness)
                    setWindowBrightness(mScreenBrightness)
                }
            } catch (e: SettingNotFoundException) {
                e.printStackTrace()
            }
        }
    }

    override fun onDestroy() {
        super.onDestroy()
        //注销监听
        this.contentResolver?.unregisterContentObserver(mBrightnessObserver)
    }

    private fun setListener() {
    	seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
            override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
                Log.i("onProgressChanged----", "" + progress)
                mScreenBrightness = progress * ratio
                //判断是否有修改系统设置权限
                if (Settings.System.canWrite(this)) {
                    setScreenBrightness(mScreenBrightness)
                    updateNum(mScreenBrightness)
                } else {
                    Toast.makeText(this, "没有修改权限", Toast.LENGTH_SHORT).show()
                    // 打开允许修改系统设置权限的页面
                    val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse("package:$packageName"))
                    startActivityForResult(intent, mRequestCode)
                }
            }

            override fun onStartTrackingTouch(seekBar: SeekBar?) {
            }

            override fun onStopTrackingTouch(seekBar: SeekBar?) {
            }
        })

    }

    /**
     * 处理返回结果
     */
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == mRequestCode) {
            if (Settings.System.canWrite(this)) {
                setScreenBrightness(mScreenBrightness)
                updateNum(mScreenBrightness)
            } else {
                Toast.makeText(this, "拒绝了权限", Toast.LENGTH_SHORT).show()
            }
        }
    }

    /**
     * 更新页面显示
     */
    private fun updateNum(mScreenBrightness: Int) {
        //转float 取四舍五入
        val i: Int = (mScreenBrightness / (ratio.toFloat())).roundToInt()
        tv_brightness.text = i.toString()
        seekBar.progress = i
    }

    /**
     * 获取系统屏幕亮度(0-255)
     */
    private fun getScreenBrightness(): Int {
        try {
            return Settings.System.getInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS)
        } catch (e: SettingNotFoundException) {
            e.printStackTrace()
        }
        return 0
    }

    /**
     * 设置系统屏幕亮度,影响所有页面和app
     * 注意:这种方式是需要手动权限的(android.permission.WRITE_SETTINGS)
     */
    private fun setScreenBrightness(brightness: Int) {
        try {
            //先检测调节模式
            setScreenManualMode()
            //再设置
            Settings.System.putInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS, brightness)
        } catch (e: SettingNotFoundException) {
            e.printStackTrace()
        }
    }

    /**
     * 设置系统亮度调节模式(SCREEN_BRIGHTNESS_MODE)
     * SCREEN_BRIGHTNESS_MODE_MANUAL 手动调节
     * SCREEN_BRIGHTNESS_MODE_AUTOMATIC 自动调节
     */
    private fun setScreenManualMode() {
        try {
            //获取当前系统亮度调节模式
            val mode = Settings.System.getInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE)
            //如果是自动,则改为手动
            if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
                Settings.System.putInt(
                    this.contentResolver,
                    Settings.System.SCREEN_BRIGHTNESS_MODE,
                    Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
                )
            }
        } catch (e: SettingNotFoundException) {
            e.printStackTrace()
        }
    }

    /**
     * 设置当前应用屏幕亮度,只当前有效
     */
    private fun setWindowBrightness(brightness: Int) {
        val window = window
        val lp = window.attributes
        lp.screenBrightness = brightness / 255.0f
        window.attributes = lp
    }
}


最近忙里偷闲,↓↓↓↓【谁家de码农陈先生】↓↓↓↓,里面定时给大家分享技术博文、前方高能资讯内容!欢迎各位老板点赞关注,你们就是我的动力源泉!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/342718.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

recv和明文收包分析

我们CTRLg 跳到recv 分析收包函数 发现函数会断并且收包函数返回值(收包包长)也会不断变化 那么证明recv是真正的收包函数&#xff0c;游戏没有重新实现该函数 我们只要分析该函数即可 在recv函数执行完毕以后下断 eax是包长,esi28是包指针 我们上2个号&#xff0c;让另外…

项目(今日指数之环境搭建)

一 项目架构1.1 今日指数技术选型【1】前端技术【2】后端技术栈【3】整体概览1.2 核心业务介绍【1】业务结构预览【2】业务结构预览1.定时任务调度服务XXL-JOB通过RestTemplate多线程动态拉去股票接口数据&#xff0c;刷入数据库&#xff1b; 2.国内指数服务 3.板块指数服务 4.…

清晰理解并解决二分问题

文章目录二分问题常规解法&#xff1a;使用CSTL自带算法解决二分问题&#xff1a;小数二分二分问题常规解法&#xff1a; 二分问题注意事项&#xff1a; 题目可能无解&#xff0c;但二分一定有解&#xff08;也就是二分问题会得到一个结果&#xff0c;但是该结果可能不符合题目…

RabbitMQ-集群

一、搭建1、创建三个虚拟机2、修改三台主机的hostname,分别为node1,node2,node3,分别重启vi /etc/hostname reboot3、配置各个主机的hosts文件&#xff0c;让各个节点都能互相识别对方vi /etc/hosts #添加下面配置 192.168.xxx.165 node1 192.168.xxx.167 node2 192.168.xxx.16…

Django by Example·第三章|Extending Your Blog Application@笔记

Django by Example第三章|Extending Your Blog Application笔记 之前已经写过两章内容了&#xff0c;继续第三章。第三章继续对博客系统的功能进行拓展&#xff0c;其中将会穿插一些重要的技术要点。 部分内容引用自原书&#xff0c;如果大家对这本书感兴趣 请支持原版Django …

基于模块联邦的微前端实现方案

一、 微前端应用案例概述 当前案例中包含三个微应用&#xff0c;分别为 Marketing、Authentication 和 Dashboard Marketing&#xff1a;营销微应用&#xff0c;包含首页组件和价格组件 Authentication&#xff1a;身份验证微应用&#xff0c;包含登录组件 Dashboard&#x…

B站发帖软件哪个好用?好用的哔哩哔哩发帖工具

B站发帖软件哪个好用?好用的哔哩哔哩发帖工具#发帖软件#哔哩哔哩发帖#视频发布软件 登录成功之后&#xff0c;进入到这样一个界面&#xff0c;默认情况下是这个样子的&#xff0c;我们在这里输入一下我们的一个文件夹的路径&#xff0c;输入到这里&#xff0c;点击添加账号&a…

kettle开发-Day36-循环驱动作业

前言&#xff1a;在日常数据处理时&#xff0c;我们通过变量传参来完成某个日期的数据转换。但可能因程序或者网络原因导致某个时间段的数据抽取失败。常见导致kettle作业失败的原因大概分为三大类&#xff0c;数据源异常、数据库异常、程序异常。因此面对这些异常时&#xff0…

Not available OpenAI s services are not available in your country.

一、准备阶段 1、邮箱账号(qq、网易、谷歌等等) 2、你能够科学上网(下边详细介绍) 3、拥有一个GW手机号&#xff0c;用于接收注册验证码。&#xff08;下边详细介绍&#xff09; 二、开始注册 1、官方注册网址https://beta.openai.com/signup&#xff08;按照步骤注册&am…

RDSDRDSPolarDBPolarDB-X的区别

RDS 阿里云关系型数据库&#xff08;Relational Database Service&#xff0c;简称RDS&#xff09;&#xff0c;是一种稳定可靠、可弹性伸缩的在线数据库服务。 基于阿里云分布式文件系统和高性能存储&#xff0c;RDS支持MySQL、SQL Server、PostgreSQL和PPAS&#xff08;Post…

在VScode终端上创建nuxtjs项目遇到的问题以及使用GitHub遇到的问题和一些个人笔记

文章目录&#x1f4cb;前言&#x1f4bb;关于GitHub打开慢或无法打开的问题&#x1f4bb;克隆GitHub的项目到本地&#x1f4bb;创建nuxtjs项目&#x1f9e9;无法加载文件的报错问题&#x1f9e9;使用vue init nuxt/starter demo出现的问题&#x1f9e9;另一种命令创建nuxtjs项目…

字符编码及转换

什么是字符编码字符编码&#xff08;Character encoding&#xff09;也称字集码&#xff0c;是把字符集中的字符&#xff0c;编码为指定集合中的某一对象&#xff08;例如&#xff1a;比特模式、自然数序列、8位组或者电脉冲&#xff09;&#xff0c;以便文本在计算机中存储或者…

前端控制台出现 红色 的报错信息TypeError: fn.apply is not a function

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 使用vue在原来的系统中 开发新的模块&#xff0c;开发时无意间发现 前端控制台出现 红色 的报错信息&#xff0c;但是页面依然还是正常 加载出来了 控制台一直报错 TypeError: fn.apply is not a fun…

09- 逻辑回归算法 (LogisticRegression) (机器学习)

基本概念: 逻辑回归主要逻辑是通过sigmoid函数进行分类, 当函数结果大于0时赋值1, 小于0时赋值0, 然后根据结果进行分类, 化简后求最小值的过程和线性方程类似, 该函数的特点是:分类算法 模型训练 : lr LogisticRegression() from sklearn.linear_model import LogisticRegr…

力扣39.组合总数

文章目录力扣39.组合总数题目描述方法1&#xff1a;深搜回溯力扣39.组合总数 题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可…

【数据库】MySQL 单表查询,多表查询

目录 单表查询 一&#xff0c;创建表worker 1&#xff0c;创建表worker的sql代码如下&#xff1a; 2&#xff0c;向worker表中插入信息 二&#xff0c; 按要求进行单表查询 1、显示所有职工的基本信息。 2、查询所有职工所属部门的部门号&#xff0c;不显示重复的部门号。 …

【自学Python】Python字符大小写判断

大纲 Python字符串是否是小写 Python字符串是否是小写教程 在开发过程中&#xff0c;有时候我们需要判断一个 字符串 是否是小写形式&#xff08;即&#xff0c;所有的字符都是小写字母&#xff0c;不是英文字符的忽略不做判断&#xff09;&#xff0c;在 Python 中&#xff…

SAP ERP系统SD模块常用增强之一:VA01/VA02创建或修改SO的输入检查

在SAP/ERP项目的实施中销售管理模块&#xff08;SD&#xff09;的创建和修改销售订单必定会有输入字段校验检查的需求&#xff0c;来防止业务人员录入错误或少录入数据&#xff0c;SAP公司也考虑到这一点&#xff0c;所以这方面的配置功能也非常强大&#xff0c;通常情况下不需…

GraphQL vs REST API 架构,谁更胜一筹?

GraphQL vs REST API 架构&#xff0c;谁更胜一筹&#xff1f; Michele Moody 平川 万佳 2020 年 1 月 18 日 本文字数&#xff1a;2890 字 阅读完需&#xff1a;约 9 分钟 2015 年&#xff0c;Facebook 开源 GraphQL。此后&#xff0c;它在前端 Web 中大受欢迎。传统的 R…

一篇文章带你学会Ansible的安装及部署

目录 前言 一、什么是Ansible 二、Ansible的工作方式 三、Ansible的安装 四、构建Anisble清单 1、清单书写方式 2、清单查看 3、清单书写规则 4、主机规格的范围化操作 五、ansible命令指定清单的正则表达式 六、 Ansible配置文件参数详解 1、配置文件的分类与优先…