react-native 监听手机音量按键(结合原生安卓)
目的:监听手机的物理按键实现相应的功能(给自己的笔记)
Android KeyCode 可以自行网上查找
可根据相应 KeyEvent 进行手机按键事件拦截
可根据相应 KeyCode 执行你想要执行的内容
需求
-------- 实现进入指定页面后,使用音量键时执行自定义任务,而不是调节系统音量
解决方案
在 MainActivity.java 文件里添加如下方法(一样的不需要重复添加)
package com.demo; // 自己的包名
import com.facebook.react.ReactActivity;
import org.devio.rn.splashscreen.SplashScreen;
import android.os.Bundle;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.BroadcastReceiver;
import android.content.res.Configuration;
import android.view.WindowManager;
import android.view.KeyEvent;
import android.support.annotation.Nullable;
import com.facebook.react.modules.core.DeviceEventManagerModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.ReactMethod;
public class MainActivity extends ReactActivity {
private NetworkChangeReceiver networkChangeReceiver;
/*
* isLister 音量键控制开关
* true --- 音量键不可调节系统音量
* flase --- 音量键可以调节系统音量
*/
Boolean isLister = false;
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Intent intent = new Intent("onConfigurationChanged");
intent.putExtra("newConfig", newConfig);
this.sendBroadcast(intent);
}
@Override
protected String getMainComponentName() {
return "demoApp";
}
@Override
protected void onCreate(Bundle savedInstanceState)