java - 如何在静音模式下创建 Android 事件警报?

标签 java android android-manifest

我想创建一个防盗警报器,这样当 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();
    }
}

最佳答案

我用它来覆盖手机音量设置:

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

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

关于java - 如何在静音模式下创建 Android 事件警报?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6914343/

相关文章:

android - 在 JNI 中使用错误代码将 jbytearray 转换为 char*

android - GCM和android异步异常

安卓 list : Why sometimes ".<classname>" instead of just "<classname>"?

Android - url 方案不起作用,应用程序无法打开

android - 如何通过estimote android sdk更改estimote beacon的UUID?

android - 将字符串附加到 Activity 的 android :label

java - 使用 openid spring security 登录时注册

path - 如何在 ubuntu 16.04 LTS 中的路径上同时创建 javac 和 java

java - Glassfish Server start-domain domain1 无法启动

java.lang.RuntimeException : Can't create handler inside thread that has not called Looper. 准备()