У меня есть требования в приложении личной безопасности, где пользователь должен запустить приложение как можно скорее, нажав кнопку увеличения или уменьшения громкости. Какова процедура добавления этой функции?
Как я могу запустить приложение для Android при нажатии кнопки увеличения или уменьшения громкости?
comment
действительно интересный вопрос!!
- person Jitesh Upadhyay   schedule 13.01.2014
comment
если мой ответ возможен, поднимите и примите, что мы можем закрыть его.
- person Jitesh Upadhyay   schedule 13.01.2014
Ответы (2)
Нет широковещательного события для изменения громкости.
Однако существует недокументированное действие под названием "android.media.VOLUME_CHANGED_ACTION
", который вы могли бы использовать, но он, вероятно, выиграл не работает на всех устройствах/версиях, поэтому не рекомендуется.
Однако использование других кнопок (например, кнопок мультимедиа) возможно.
EDIT: пример кода (с использованием недокументированного действия):
AndroidManifest.xml
...
<receiver android:name="VolumeChangeReceiver" >
<intent-filter>
<action android:name="android.media.VOLUME_CHANGED_ACTION" />
</intent-filter>
</receiver>
...
VolumeChangeReceiver.java
public class VolumeChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.media.VOLUME_CHANGED_ACTION")) {
int newVolume = intent.getIntExtra("android.media.EXTRA_VOLUME_STREAM_VALUE", 0);
int oldVolume = intent.getIntExtra("android.media.EXTRA_PREV_VOLUME_STREAM_VALUE", 0);
if (newVolume != oldVolume) {
Intent i = new Intent();
i.setClass(context, YourActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
}
}
См. этот вопрос, если вы хотите разблокировать экран при запуске приложения. .
person
molnarm
schedule
13.01.2014
@MuhammadMaqsoodurRehman Я добавил образец кода (на основе моих первой и второй ссылок), сейчас у меня нет SDK, поэтому он не тестировался. Имейте в виду, что, поскольку это неофициальный метод, он не будет работать на всех устройствах/версиях.
- person molnarm; 20.01.2014
Я использовал этот код для прослушивания кнопки громкости раньше,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)){
//Do something
}
if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP)){
//Do something
}
return true;
}
Этот метод получает событие увеличения и уменьшения громкости.
person
dipali
schedule
13.01.2014
привет Дивали, он хочет запустить само приложение, в то время как этот код может работать изнутри, а до запуска приложения это возможно??
- person Jitesh Upadhyay; 13.01.2014
@MuhammadMaqsoodurRehman, чем есть две возможности: либо вам нужно что-то сделать с прошивкой, либо вы можете запустить приложение в первый раз в обычном режиме, а в следующий раз вы можете запустить его с помощью широковещательного приемника.
- person Jitesh Upadhyay; 13.01.2014