我在个人安全应用程序中有一个要求,用户必须通过按音量增大或音量减小按钮尽快启动应用程序。添加此功能的过程是什么?
问问题
9302 次
2 回答
14
没有音量变化的广播事件。
但是,您可以使用一个名为“ ”的未记录操作android.media.VOLUME_CHANGED_ACTION
,但它可能不适用于所有设备/版本,因此不推荐。
不过可以使用其他按钮(例如媒体按钮)。
编辑:代码示例(使用未记录的操作):
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);
}
}
}
}
如果您想在启动应用程序时解锁屏幕,请参阅此问题。
于 2014-01-13T09:14:56.457 回答
-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;
}
此方法获取音量上下的事件。
于 2014-01-13T08:14:25.733 回答