2011-08-02 16 views
2

誰もがサイレントモードでアンドロイドイベントで警告アラームを作成する方法を知っていますか?私は、おかげで私はこのコードを試してみましたが、それは私のために動作しません。..アンドロイドのサイレントモードでも警告音を鳴らす方法は?

..私は大声で警告することができ、Androidデバイスが盗まれたときに、盗難防止アラームを作成したい:

ます。public void onCreate(バンドルsavedInstanceState){

super.onCreate(savedInstanceState)。 setContentView(R.layout.main);

Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 
    v.vibrate(300); 

    Uri alert = RingtoneManager 
      .getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
    MediaPlayer mMediaPlayer = new MediaPlayer(); 

    try { 
     mMediaPlayer.setDataSource(this, alert); 
    } catch (IllegalArgumentException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (SecurityException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    final AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
    if (audioManager.getStreamVolume(AudioManager.STREAM_ALARM) != 0) { 
     mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); 
     mMediaPlayer.setLooping(false); 
     //mMediaPlayer.prepare(); 
     mMediaPlayer.start(); 
    } 
} 

答えて

3

私は携帯電話の音量設定を無効にするために、これを使用しています

int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM); 

audioManager.setStreamVolume(AudioManager.STREAM_ALARM, maxVolume,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE); 
+0

はネクサス5 4.4.4 :( – amIT

+0

に取り組んでいないあなたはマイケルの元の質問のコードは動作しない意味場合、つまり、 。(少なくとも4.4.4で、それを必要とする - 私は自分自身を試してみました)コメントを解除しなければなりません誰もがこれを指摘していないことを好奇心 –

+0

これは素晴らしい作品 - しかし、私はしないでください。「mMediaPlayer.prepareは()」ので。彼の電話を黙らせるためにユーザーの選択をしていきたいと思っています...私が必要とするのは、配信する必要があるアラームであるため、唯一のノイズ通知です。 lution、私の警報の後ミュートオフ:...( – Zordid

関連する問題