AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE); switch (am.getRingerMode()) { case AudioManager.RINGER_MODE_SILENT: Log.i("MyApp","Silent mode"); break; case AudioManager.RINGER_MODE_VIBRATE: Log.i("MyApp","Vibrate mode"); break; case AudioManager.RINGER_MODE_NORMAL: Log.i("MyApp","Normal mode"); break; }
Из кода выше я могу получить режим звонка. Я бы предпочел прослушать изменения режима звонка и вызвать функцию.
Мне сказали, что я могу зарегистрировать AudioManager. RINGER_MODE_CHANGED_ACTION и прослушивайте намерение изменения в методе широковещательного приемника onReceive. Звучит ясно. Но я новичок в андроиде и не знаю, как его писать. Есть ли кто-то может просто написать часть кода и показать, как именно это работает вместо того, чтобы сказать использовать то или иное:) Спасибо
-121--1028786-
Argparse: игнорировать несколько позиционных аргументов, когда указан необязательный аргумент Я пытаюсь заставить argparse игнорировать тот факт, что два обычно обязательных позиционных аргумента не должны вычисляться, когда указан необязательный аргумент (-l). В основном я пытаюсь воспроизвести...Я пытаюсь заставить argparse игнорировать тот факт, что два обычно требуемых позиционных аргумента не должны вычисляться, когда указан необязательный аргумент (
-l
).В основном я пытаюсь реплицировать поведение --help: при указании -h все отсутствующие обязательные аргументы игнорируются.
Код примера:
parser = argparse.ArgumentParser(description="Foo bar baz") parser.add_argument('arg1', help='arg1 is a positional argument that does this') parser.add_argument('arg2', help='arg2 is a positional argument that does this') parser.add_argument('-l', '--list', dest='list', help='this is an optional argument that prints stuff') options, args = parser.parse_args() if options.list: print "I list stuff"
И, конечно, если я запускаю его сейчас, я получаю:
error: too few arguments
Я пробовал разные вещи, как
nargs = '?'
, но не мог получить ничего работающего.Этот вопрос довольно похож, но не получил ответа.