android - 如何/在哪里可以访问Android “Toggle sound mode”(振动,静音,正常)功能?

标签 android audio toggle switch-statement shortcut

我正在使用一个名为“BetterCut”的应用程序(与“AnyCut”相同)。

在该应用程序中,我可以通过“ Activity ”,“系统切换器”(但是“振动切换”不在命题中),...创建快捷方式。

我还可以使用三个值创建自己的快捷方式:ActionDataType。问题是我不知道从Android设备访问声音模式切换器的位置...

有人可以帮忙吗?

最佳答案

如果您需要切换到正常模式和带有振动的静音模式,请执行以下代码:

   package com.example.silent.mode.toggle;
   import android.os.Bundle;\
   import android.app.Activity;
   import android.widget.ImageView;
   import android.util.Log;
   import android.view.View;
   import android.graphics.drawable.Drawable;
   import android.media.AudioManager;
   import android.widget.Button;

  public class MainActivity extends Activity {

private AudioManager mAudioManager;
private boolean mPhoneIsSilent;
 @Override
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    super.onCreate(savedInstanceState);
    mAudioManager = (AudioManager)getSystemService(AUDIO_SERVICE);
    checkIfPhoneIsSilent();
    setButtonClickListener();
    Log.d("SilentModeApp", "This is a test");

}    


    private void setButtonClickListener() {
    Button toggleButton = (Button)findViewById(R.id.silent);
    toggleButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

        if (mPhoneIsSilent) {
            //change back to normal mode
            mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
            mPhoneIsSilent = false;
        }
            else
            {
                //change to silent mode - This Changes to Vibration


         mAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
                mPhoneIsSilent = true;
            }
        // Now toggle the UI again
        toggleUi(); 
        }
        });
}
    private void checkIfPhoneIsSilent() {
        int ringermode = mAudioManager.getRingerMode();
        if (ringermode == AudioManager.RINGER_MODE_SILENT) {
            mPhoneIsSilent = true;
        }
        else
        {
            mPhoneIsSilent = false;
        }
    }
    private void toggleUi() {
        ImageView imageView = (ImageView) findViewById(R.id.phone_icon);
        Drawable newPhoneImage;
        if (mPhoneIsSilent){
            newPhoneImage = 
            getResources().getDrawable(R.drawable.phone_silent);
    }
    else
    {
        newPhoneImage = 
                getResources().getDrawable(R.drawable.phone_on);

    }
        imageView.setImageDrawable(newPhoneImage);

}
     @Override      
     protected void onResume() {
 super.onResume();
 checkIfPhoneIsSilent();
 toggleUi();

     }
   }

关于android - 如何/在哪里可以访问Android “Toggle sound mode”(振动,静音,正常)功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9097024/

相关文章:

ios - iPhone - 如何将 .caf 音频文件转换为 .aac?

function - 在函数中实现代码时的 setTimeout 问题

android - 自定义(圆形)切换按钮

android - 在自定义 ListView 中处理 imageButton 单击

Android - 一个应用程序中有两个或多个 GCM token

android - Liveview 在 Appcelerator Studio 的合金项目中不起作用(在经典项目中工作正常)

javascript - 在javascript中解释image.src.match

android - SQLite 数据库在 SSMS 文件夹中不可见

web-applications - 您如何识别网络应用中的语音

javascript - jQuery Toggle 不适用于多个元素