我对个人安全应用程序有要求,用户必须通过按下音量增大或音量减小按钮尽快启动应用程序。添加此功能的步骤是什么?
答案 0 :(得分:11)
音量变化没有广播事件。
但是,there is an undocumented action可以使用“android.media.VOLUME_CHANGED_ACTION
”,但它可能不适用于所有设备/版本it is not recommended。
虽然可以使用其他按钮(例如media buttons)。
编辑:代码示例(使用未记录的操作):
的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);
}
}
}
}
如果您想在启动应用时解锁屏幕,请参阅this question。
答案 1 :(得分:-6)
我之前用过这段代码来听取音量按钮,
@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;
}
此方法可以上下调整音量事件。