Muh*_*man 9 android android-hardware
我在个人安全应用程序中有一个要求,用户必须通过按下音量增大或音量减小按钮尽快启动应用程序.添加此功能的步骤是什么?
mol*_*arm 12
音量变化没有广播事件.
但是,您可以使用一个名为" android.media.VOLUME_CHANGED_ACTION" 的无记录操作,但它可能不适用于所有设备/版本,因此不建议这样做.
但是,可以使用其他按钮(例如媒体按钮).
编辑:代码示例(使用未记录的操作):
AndroidManifest.xml中
...
<receiver android:name="VolumeChangeReceiver" >
<intent-filter>
<action android:name="android.media.VOLUME_CHANGED_ACTION" />
</intent-filter>
</receiver>
...
Run Code Online (Sandbox Code Playgroud)
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);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果要在启动应用时解锁屏幕,请参阅此问题.
dip*_*ali -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;
}
Run Code Online (Sandbox Code Playgroud)
此方法获取音量增大和减小的事件。
| 归档时间: |
|
| 查看次数: |
7853 次 |
| 最近记录: |