【问题标题】:Auto Silent android device with timer set my user带计时器的自动静音 android 设备设置我的用户
【发布时间】:2017-08-13 19:05:11
【问题描述】:

我的应用中有 2 个按钮 开始时间和结束时间

现在我希望设备在用户设置的开始和结束时间段内进入静音模式.....我该怎么做?

我的输入开始时间和结束时间的代码 mainactivity.java code 包 com.example.h.manualsilent;

public class MainActivity extends AppCompatActivity {
TimePickerDialog tpd;
SimpleDateFormat simpleDateFormat;
String time;
Button sttime;
Button entime;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    sttime=(Button)findViewById(R.id.startbtn);
    entime=(Button)findViewById(R.id.endbtn);
}
public void starttime(View view){
    Calendar cal=Calendar.getInstance();
    simpleDateFormat=new SimpleDateFormat("hh:mm a");
    int hour=cal.get(Calendar.HOUR);
    int minute=cal.get(Calendar.MINUTE);

    //int inst=cal.get(Calendar.AM_PM);
    tpd=new TimePickerDialog(MainActivity.this, new 
    TimePickerDialog.OnTimeSetListener() {

        @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
    Time time = new Time(hourOfDay, minute,0);

            //little h uses 12 hour format and big H uses 24 hour format
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("h:mm a");

            //format takes in a Date, and Time is a sublcass of Date
            String s = simpleDateFormat.format(time);
            sttime.setText(s);
        }
    },hour,minute,false);
    tpd.show();
    }
    public void endtime(View view){
    Calendar cal=Calendar.getInstance();
    int hour=cal.get(Calendar.HOUR);
    int minute=cal.get(Calendar.MINUTE);
    //int inst=cal.get(Calendar.AM_PM);
    tpd=new TimePickerDialog(MainActivity.this, new 
    TimePickerDialog.OnTimeSetListener() {

        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        Time time = new Time(hourOfDay, minute,0);

            //little h uses 12 hour format and big H uses 24 hour format
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("h:mm a");

            //format takes in a Date, and Time is a sublcass of Date
            String s = simpleDateFormat.format(time);
            entime.setText(s);
        }
        },hour,minute,false);
        tpd.show();
        }
        }

【问题讨论】:

    标签: java android


    【解决方案1】:

    您可以使用AudioManager 类。

    在这个类中你正在寻找setRingerMode() 函数。

    AudioManager audiomanage = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
    audiomanage.setRingerMode(AudioManager.RINGER_MODE_SILENT);
    

    您可以传递给函数的值是:

    铃声模式,RINGER_MODE_NORMALRINGER_MODE_SILENT 或其中之一 RINGER_MODE_VIBRATE.

    您必须将其添加到清单文件中:

    android.permission.MODIFY_AUDIO_SETTINGS
    

    我在这里看到了 - https://stackoverflow.com/a/3738768/8214839

    【讨论】:

      【解决方案2】:

      您可以使用AudioManager 从一般模式更改为静音模式。

      代码:

      AudioManager audioManager;
      audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
      // changing to silent mode
      audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
      

      您还必须在manifest 文件中提供所需的权限。

      android.permission.MODIFY_AUDIO_SETTINGS
      

      您可以根据需要使用上述代码将手机设置为静音。

      您也可以分别使用AudioManager.RINGER_MODE_VIBRATEAudioManager.RINGER_MODE_NORMAL 改回振动或通用。

      【讨论】:

      • 好的,现在我知道如何在静音模式和普通模式之间切换...这很有帮助....但是我怎样才能继续跟踪用户设置的持续时间并激活静音或一般模式... .我已经编辑了我的问题...你能帮忙@Johny
      猜你喜欢
      • 2015-09-13
      • 2021-07-13
      • 1970-01-01
      • 2015-09-30
      • 1970-01-01
      • 2014-03-26
      • 2015-04-08
      • 2021-04-26
      • 1970-01-01
      相关资源
      最近更新 更多