【问题标题】:How can I launch an android app on upon pressing the volume up or volume down button?如何在按下音量增大或音量减小按钮时启动 Android 应用程序?
【发布时间】:2014-01-31 21:57:36
【问题描述】:

我在个人安全应用中有一个要求,用户必须通过按增大音量或减小音量按钮尽快启动应用。添加此功能的过程是什么?

【问题讨论】:

  • 真是个有趣的问题!!
  • 如果我的回答可行,请提出并接受我们可以关闭它。

标签: android android-hardware


【解决方案1】:

没有改变音量的广播事件。

但是,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

【讨论】:

  • @MuhammadMaqsoodurRehman 我添加了一个代码示例(基于我的第一个和第二个链接),我现在没有 SDK,所以它没有经过测试。请记住,由于这是一种非官方方法,它不适用于所有设备/版本。
【解决方案2】:

我之前用这段代码监听音量键,

@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;
}

此方法获取音量上下的事件。

【讨论】:

  • 嗨 deepali,他想自己启动应用程序,而这段代码可以在活动内部工作,而在应用程序启动之前有可能吗??
  • @MuhammadMaqsoodurRehman 有两种可能性,要么你需要用固件做一些事情,要么你可以第一次正常启动应用程序,下次你可以在广播接收器的帮助下启动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多