【问题标题】:Deny vibrations (except my app) while my app is running在我的应用程序运行时拒绝振动(我的应用程序除外)
【发布时间】:2018-03-28 18:38:30
【问题描述】:

我想为盲人创建一个安卓应用,所以我不希望来自我的应用之外的振动,比如通知或其他应用,否则这些会改变模式。如何使用 Java 以编程方式完成?

【问题讨论】:

  • 只需在应用程序运行时将铃声设置为静音,然后在应用程序振动之前重新打开铃声以振动,然后在振动后将其重新设为静音
  • 这可能是一种方法,但我们是否可以在牛轧糖及更高版本的应用程序中将手机设为静音? @SteelToe
  • 是的,我有一个辅助类可以做到这一点。要我发帖吗?

标签: java android accessibility vibration android-vibration


【解决方案1】:

正如 SteelToe 所说:

只需在您的应用运行时将铃声设置为静音,然后在您的应用振动之前重新打开铃声以振动,然后在振动后将其重新设为静音

所以你可以使用如下代码:

function vibrateOn(){
    audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
            AudioManager.VIBRATE_SETTING_ON);
    audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
            AudioManager.VIBRATE_SETTING_ON);
}

function vibrateOff(){
    audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
            AudioManager.VIBRATE_SETTING_OFF);
    audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
            AudioManager.VIBRATE_SETTING_OFF);
}

【讨论】:

    【解决方案2】:

    这里是所有选项。

    switch (position) {
     case 0:
        audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
           break;
     case 1:
         audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
           break;
    case 2:
         audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
          audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, 
             AudioManager.VIBRATE_SETTING_OFF);
           break;
     case 3:
        audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
        audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, 
            AudioManager.VIBRATE_SETTING_ON);
        break;
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-28
      • 1970-01-01
      • 2021-07-30
      • 2018-08-18
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      相关资源
      最近更新 更多