检查是否在原生 Android 模块中启用了开发者模式 [英] Check if developer mode is enabled in a native Android module

查看:50
本文介绍了检查是否在原生 Android 模块中启用了开发者模式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为我的 React Native 应用开发原生 Android 模块.我想检查是否启用了开发者模式并相应地打开或关闭 WebView 中的网页内容调试.

I am working on a native Android module for my React Native app. I would like to check if the developer mode is enabled and turn web content debugging in WebView on or off accordingly.

这是我尝试过的:

boolean devSupportIsEnabled;
ReactActivity reactActivity = (ReactActivity) getModule().getActivity();
if (reactActivity != null) {
    devSupportIsEnabled = reactActivity
        .getReactInstanceManager()
        .getDevSupportManager()
        .getDevSupportEnabled();
} else {
    devSupportIsEnabled = false;
}

不幸的是,这不会编译,因为 ReactActivity.getReactInstanceManager()protected.

Unfortunately, this does not compile because ReactActivity.getReactInstanceManager() is protected.

还有 ReactBuildConfig.DEBUG 属性,但由于某种原因它总是 false.

There is also the ReactBuildConfig.DEBUG property, but it is always false for some reason.

有其他替代方法吗?

推荐答案

ReactInstanceManager 的一个实例,如果继承自 ReactInstancePackage 就可以通过包获得:

An instance of ReactInstanceManager can be obtained by the package if it inherits from ReactInstancePackage:

public class MyPackage extends ReactInstancePackage {

    @Override
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext, ReactInstanceManager reactInstanceManager) {
        // store the provided instance of ReactInstanceManager
        this.reactInstanceManager = reactInstanceManager;

        // ...
    }
    //...
}

这个实例可以稍后用来检查是否启用了开发模式:

This instance can be used later to check whether the dev mode is enabled:

boolean devModeIsEnabled = this.reactInstanceManager
    .getDevSupportManager()
    .getDevSupportEnabled();

这篇关于检查是否在原生 Android 模块中启用了开发者模式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆