uniapp android app 鈴聲靜音,真正的免打擾

需要加入這個權限:

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

代碼:

                    /**
             * 設置鈴聲爲靜音,媒體音量不變(免打擾)
             * */
            setDisturb()
            {
                // #ifdef APP-PLUS
                var pf = uni.getSystemInfoSync().platform;
                if (pf == "android")
                {
                    let AudioManager = plus.android.importClass('android.media.AudioManager');
                    let Settings = plus.android.importClass('android.provider.Settings');
                    let Intent = plus.android.importClass('android.content.Intent');
                    let NotificationManager = plus.android.importClass('android.app.NotificationManager');
                    let Context = plus.android.importClass('android.content.Context');

                    let main = plus.android.runtimeMainActivity();

                    this.audioManager = main.getSystemService(Context.AUDIO_SERVICE);

                    if (this.audioManager == null)
                    {
                        return;
                    }
                    //console.log(AudioManager.RINGER_MODE_SILENT);//0
                    //console.log(AudioManager.RINGER_MODE_NORMAL);//2
                    //console.log(AudioManager.RINGER_MODE_VIBRATE);//1

                    let n = main.getSystemService(Context.NOTIFICATION_SERVICE);

                    if (n == null)
                    {
                        console.log("n is null");
                        return;
                    }
            //授權
                    if (n.isNotificationPolicyAccessGranted())
                    {
                        this.audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
                        uni.showToast(
                        {
                            title: '已爲您開起免打擾模式。',
                            duration: 3000,
                            icon: 'none',
                            mask: false
                        });
                    }
                    else
                    {
                        uni.showToast(
                        {
                            title: '稍後,請授予此應用免打擾權限,然後請再按一次以開啓免打擾。',
                            duration: 4500,
                            icon: 'none',
                            mask: false
                        });

                        setTimeout(function()
                        {
                            let intent = new Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
                            main.startActivity(intent);
                        }, 4500);
                    }

                    this.audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
                    var n1 = this.audioManager.getRingerMode()
                }
              

                // #endif
            },
            

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章