- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个任务 - 电话响起时立即更改铃声音量。例如:检测到有来电后,我需要将铃声音量设置为 0(静音),并且还应禁用振动器(如果尚未禁用)。然后当我需要执行另一个代码时会有延迟(startComputing();)。之后应将铃声音量更改为特定值(f.e.7)并激活振动器。这是我的代码:
public class IncomingCallReceiver extends BroadcastReceiver {
private AudioManager amanager;
public void onReceive(Context context, Intent intent) {
if(intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING)) {
amanager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
amanager.setRingerMode(0x00000000); // no sound and no vibration
startComputing();
amanager.setRingerMode(0x00000002); // normal
amanager.setStreamVolume(AudioManager.STREAM_RING, 7,
AudioManager.FLAG_SHOW_UI
+ AudioManager.FLAG_PLAY_SOUND);
}
}
private void startComputing() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
1) 主要问题在于:amanager.setStreamVolume(AudioManager.STREAM_RING, 7, AudioManager.FLAG_SHOW_UI + AudioManager.FLAG_PLAY_SOUND);振铃器根本不响,只出现声级改变但电话不播放任何声音的 toast 消息。这怎么能改变?2)还有问题 amanager.setRingerMode(0x00000000);不会立即改变音量和振动,但会在大约半秒内改变。先感谢您。雅各布
最佳答案
我认为在将铃声静音之前,您无法克服 1/2 秒的延迟。有时它有效(即非常短或没有延迟),有时您会听到短时间的铃声。
我认为您遇到的问题是传递给 setStreamVolume
的标志。
试试这个:
amanager.setStreamVolume(AudioManager.STREAM_RING, 7,
AudioManager.FLAG_SHOW_UI|AudioManager.FLAG_PLAY_SOUND);
您应该使用按位包含或 (|
),而不是简单的加法 (+
) .
关于android - 来电期间的 setRingerMode - RINGING,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8175650/
我有一个任务 - 电话响起时立即更改铃声音量。例如:检测到有来电后,我需要将铃声音量设置为 0(静音),并且还应禁用振动器(如果尚未禁用)。然后当我需要执行另一个代码时会有延迟(startComput
每当我使用它时,它都会使我的应用程序崩溃。此外,对于振动模式,当我使用audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE)时,它会打
我使用 AudioManager.setRingerMode() 来处理我的应用程序中的设备音量: AudioManager.setRingerMode(AudioManager.RINGER_MOD
我是一名优秀的程序员,十分优秀!