我只想在来电时禁用升级/上升/增加铃声音量。我知道有像Disable Increasing Ring这样的应用程序,但我是Android开发人员,我看不到他们的移动广告只是为了阻止我的手机增加音量;)
我试过这种方式......
public class CallReceiver extends BroadcastReceiver {
Context context;
public void onReceive(Context context, Intent intent) {
try {
this.context = context;
TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
manager.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE);
} catch (Exception e) {
e.printStackTrace();
}
}
private class MyPhoneStateListener extends PhoneStateListener {
public void onCallStateChanged(int state, String incomingNumber) {
AudioManager manager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
if (state == 1 && manager.getRingerMode() == AudioManager.RINGER_MODE_NORMAL) {
Log.e(getClass().getSimpleName(), "Incoming call from : " + incomingNumber);
manager.setStreamVolume(
AudioManager.STREAM_RING,
manager.getStreamMaxVolume(AudioManager.STREAM_RING),
FLAG_ALLOW_RINGER_MODES | FLAG_PLAY_SOUND
);
}
}
}
}
当我输入 0 音量时,手机状态监听器正在运行。但是当我使用 7 或manager.getStreamMaxVolume(AudioManager.STREAM_RING)
作为音量时,我认为setStreamVolume()不会增加音量。
参考: