私には仕事があります-電話が鳴ったらすぐに着信音の音量を変更してください。例: 着信があることを検出した後、呼び出し音の音量を 0 (ミュート) に設定する必要があり、バイブレーターも無効にする必要があります (まだ無効になっていない場合)。次に、別のコード (startComputing();) を実行する必要があるときに遅延が発生します。その後、着信音量を特定の値 (fe7) に変更し、バイブレーターをアクティブにする必要があります。これが私のコードです:
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); 着信音はまったく鳴らず、サウンド レベルが変更されたというトースト メッセージのみが表示されますが、電話機はサウンドを再生しません。これはどのように変更できますか?2) amanager.setRingerMode(0x00000000); という問題もあります。音量とバイブレーションはすぐには変わりませんが、約 0.5 秒で変わります。前もって感謝します。ジェイコブ