android音频管理器setRingerMode RINGER_MODE_SILENT不工作



audiomanager.setRingerMode RINGER_MODE_SILENT无效。没有错误。

RINGER_MODE_VIBRATE和RINGER_MODE_NORMAL工作正常。在有问题的代码中,从RINGER_MODE_SILENT切换到RINGER_MODE_VIBRATE会产生一个振动开关。前面的一个问题建议通过切换到"请勿打扰"模式来解决这个问题。https://code-examples.net/en/q/255675d。我实现了这个代码,但没有任何效果。

相关的android清单代码是:

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

服务的onStartCommand方法是:

//@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Context context = getApplicationContext();
CharSequence text = "sound mode set silent from sss service!";
int duration = Toast.LENGTH_LONG;
NotificationManager notificationManager = 
(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

notificationManager.setInterruptionFilter 
(NotificationManager.INTERRUPTION_FILTER_ALARMS);
}
try {
AudioManager myAudioManager = 
(AudioManager)getSystemService(Context.AUDIO_SERVICE);
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
//        myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
} catch (Exception e) {
e.printStackTrace();
}
stopSelf();
return mStartMode;
}

我唯一可以测试的Android设备是Android 9,Pie。

我如何在设置中以编程方式将音频配置文件设置为静音?

试试这个,我已经看到它适用于一些用户:

myAudioManager.setRingerMode(0);

我也被困在这个问题上,但就我的研究而言,这是安卓9的一个问题。我测试过这个片段的每一台设备都能工作,但出于某种原因,android 9在运行以下代码时只启用了请勿打扰模式。

myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

最新更新