2

マナーモードやメディア音量を無効にして、電話に大きなノイズをブロードキャストさせたい。私は目覚まし時計がサイレントモードを無効にすることができることを知っています。アプリを介してこれをどのように行いますか?

4

3 に答える 3

4

目覚まし時計アプリでサイレント モードをオーバーライドできるかどうか、またはコードでサイレント モードをオーバーライドできるかどうかを尋ねていますか?

コードの答えは「はい」です。次のようなコードでサイレント モードの設定を変更できます。

AudioManager audio = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
int currentVolume = audio.getStreamVolume(AudioManager.STREAM_RING);
int max = audio.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION);
audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
audio.setStreamVolume(AudioManager.STREAM_RING, max, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
于 2010-11-01T18:04:35.827 に答える
4

トニーの答えがうまくいったので、私は別の方法を手に入れましたが、デバイスをサイレントモードにし、アプリをアラーム音のような音を再生する必要があると仮定すると、プロファイルが変更され、プロファイルがサイレントモードからリンガーモードに変更されます。再びサイレントモードにする必要があります。私は正しいですか?

したがって、別の解決策は、以下のスニペットで着信音を再生できることでした

int volume = audioManager.getStreamVolume(AudioManager.STREAM_ALARM);
if(volume==0)
volume = audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM);
audioManager.setStreamVolume(AudioManager.STREAM_ALARM, volume,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
ringtone = RingtoneManager.getRingtone(getApplicationContext(), Uri.parse(ringTonePath));
if(ringtone!=null){
    ringtone.setStreamType(AudioManager.STREAM_ALARM);
    ringtone.play();
    isRinging = true;
}

isRingingプログラムで再生を停止する場合はフラグとして設定するか、着信音の isPlaying() でチェックして再生を停止することができます

これを経て、現在のプロファイルを変更せず、そのためのコードはもうありません

于 2012-03-17T13:27:15.370 に答える
-1

Preyはオープンソースの電話トラッカーアプリであり、その機能があればこれを1つとして実行します。より適切な回答が得られない場合は、ソースを調べて、どのように実行されたかを確認できます。

于 2010-11-01T17:05:18.700 に答える