Как создать оповещение о тревоге на андроид событие в тихом режиме? - PullRequest
2 голосов
/ 02 августа 2011

Я хочу создать противоугонную сигнализацию, поэтому, когда устройство Android украдено, оно должно сделать громкий сигнал. Я пробовал этот код, но он не работает.

public void onCreate(Bundle 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();
    }
}

1 Ответ

4 голосов
/ 02 августа 2011

Я использовал это, чтобы переопределить настройки громкости телефона:

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

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