Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从Flatter Dart中的MainActivity.java读取变量_Android_Flutter_Dart - Fatal编程技术网

Android 从Flatter Dart中的MainActivity.java读取变量

Android 从Flatter Dart中的MainActivity.java读取变量,android,flutter,dart,Android,Flutter,Dart,当应用程序在Firebase测试实验室上运行时,我想禁用Flatter项目中Firebase分析的日志记录。根据Firebase文档,可以通过在MainActivity.java中添加以下内容来检测TestLab String testLabSetting = Settings.System.getString(getContentResolver(), "firebase.test.lab"); if ("true".equals(testLabSetting)) { // Do so

当应用程序在Firebase测试实验室上运行时,我想禁用Flatter项目中Firebase分析的日志记录。根据Firebase文档,可以通过在MainActivity.java中添加以下内容来检测TestLab

String testLabSetting = Settings.System.getString(getContentResolver(), "firebase.test.lab");
if ("true".equals(testLabSetting)) {
    // Do something when running in Test Lab
    // ...
}
如何在main.dart中的dart端访问此测试的结果,这是我要禁用日志记录的地方(因为dart代码中已经禁用了日志记录还有一些其他原因)


谢谢

我刚找到这个。但我还没有试过:

此项目允许您检查是否在Firebase中运行 试验室

您可以像他们的示例一样使用它:

import 'dart:async';
import 'package:flutter/material.dart';

import 'package:flutter_runtime_env/flutter_runtime_env.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  bool _shouldBeEnabled = false;

  @override
  void initState() {
    super.initState();
    initPlatformState();
  }

  // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> initPlatformState() async {
    var result = await shouldEnableAnalytics();
    setState(() {
      _shouldBeEnabled = result;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Should Enable Analytics'),
        ),
        body: Center(
          child: Text('Should Analytics be Enabled: $_shouldBeEnabled\n'),
        ),
      ),
    );
  }
}
导入'dart:async';
进口“包装:颤振/材料.省道”;
导入“包:flatter_runtime_env/flatter_runtime_env.dart”;
void main()=>runApp(MyApp());
类MyApp扩展了StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
bool_shouldBeEnabled=false;
@凌驾
void initState(){
super.initState();
initPlatformState();
}
//平台消息是异步的,所以我们用异步方法初始化。
Future initPlatformState()异步{
var result=await shouldEnableAnalytics();
设置状态(){
_shouldBeEnabled=结果;
});
}
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
appBar:appBar(
标题:常量文本(“应启用分析”),
),
正文:中(
子项:文本('应启用分析:$\u shouldBeEnabled\n'),
),
),
);
}
}
编辑:

我想我找到了更好的解决办法

它有以下方法

/// Return `true` if running under Firebase Test Lab (includes pre-launch
/// report environment) on Android, `false` otherwise.
static Future<bool> isFirebaseTestLab() async
///如果在Firebase测试实验室(包括预启动)下运行,则返回'true'
///报告环境),否则为'false'。
静态未来isFirebaseTestLab()异步
这似乎是目前为止最好的解决方案

编辑2:

去他妈的!我刚刚创建了一个小插件


您可以使用
MethodChannel
将数据(
boolean
此处)发送到您的Dart代码。请参阅@pskink,它不会work@pskink我试图创建一个MethodChannel并检查“firebase.test.lab”,但机器人程序仍然创建帐户欢迎链接到解决方案,但是请确保你的答案在没有它的情况下是有用的:这样你的其他用户就会知道它是什么以及它为什么在那里,然后引用你链接到的页面中最相关的部分,以防目标页面不可用@史瑞,谢谢