React Native:开发调试时如何防止安卓设备屏幕自动熄灭
解决React Native安卓调试时设备自动熄屏问题
以下是3种不同场景的解决方案,可根据自己的需求选择:
方案1:修改安卓开发者选项(无需改代码,最便捷)
适合固定自用调试设备的场景:
- 如果未开启开发者模式,先进入设备「设置」-「关于手机」,连续点击5次「版本号」启用开发者选项
- 进入「开发者选项」,找到「充电时不锁定屏幕/保持唤醒」选项,开启后设备只要连接USB充电就不会自动熄屏
方案2:ADB命令临时设置(适合临时调试场景,无需修改系统配置)
设备连接电脑后执行命令即可生效,调试结束可随时恢复:
- 开启USB连接时保持屏幕唤醒:
adb shell settings put global stay_on_while_plugged_in 3 - 恢复默认熄屏规则:
adb shell settings put global stay_on_while_plugged_in 0 - 参数说明:数值3代表USB供电和AC供电时都保持唤醒,设为1代表仅AC供电时保持,2代表仅USB供电时保持
方案3:修改项目代码(仅调试模式生效,不影响正式包)
该方案可以让所有参与项目调试的设备默认不用单独修改设置:
- 先在
android/app/src/main/AndroidManifest.xml中添加权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
- 修改入口Activity文件(一般为
android/app/src/main/java/[你的包名路径]/MainActivity.java或对应的Kotlin文件),在onCreate生命周期中添加判断逻辑:
Java示例
import android.os.Bundle; import android.view.WindowManager; import com.facebook.react.BuildConfig; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 仅调试模式下保持屏幕常亮,正式包不会生效 if (BuildConfig.DEBUG) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } }
Kotlin示例
import android.os.Bundle import android.view.WindowManager import com.facebook.react.BuildConfig override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (BuildConfig.DEBUG) { window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) } }
内容的提问来源于stack exchange,提问作者John Stuart
相关产品推荐
相关产品推荐

