8

Android アプリの 1 つで、モードに関係なく完全にバイブレーションを有効または無効にする必要があります (つまり、サイレントまたは一般または大音量)。

現在、非推奨の関数 setVibrateSettingを使用して次のコードを使用しています。

//バイブレーションモードをオンにする場合

audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
            AudioManager.VIBRATE_SETTING_ON);
audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
            AudioManager.VIBRATE_SETTING_ON);

//バイブレーションモードをオフにする場合

audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
            AudioManager.VIBRATE_SETTING_OFF);
audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
            AudioManager.VIBRATE_SETTING_OFF);

しかし、これを行う明確な方法があるかどうか疑問に思っています。

そして、提案は大歓迎です:)

よろしく、ジュジャレ

4

4 に答える 4

1

次のコード行を使用できます。

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

vibration.cancel();
于 2016-09-03T10:40:33.670 に答える
1

これが私のコードです

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;
    }

setVibrateSetting は、nexus を Gingerbread と IceCreamSandwich で使用すると正常に動作し、ICS で開発しましたが、最近、Jelly Bean では動作せず、getVibrateSetting も動作しないことがわかりました。より良い方法を待っています〜

于 2013-01-19T16:25:35.327 に答える
-3

これをチェックしてください、最初のグーグルの結果としてそれを見つけました。コード:

if(isVibrate){
Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);  
     vib.vibrate(500);
      Toast.makeText(this, "vib started", Toast.LENGTH_LONG).show();
}

else{

// do nothing

}
于 2012-12-30T01:20:57.973 に答える