如何在Flutter中从Android清单中获取变量?

如何在Flutter中从Android清单中获取变量?,flutter,dart,Flutter,Dart,我想在我的包中使用GoogleMapsAPI的API键,假设它存在于AndroidManifest文件(以及iOS等效文件)中。我发现如果您使用google\u maps\u flatter包,您永远不必将API键传递给GoogleMap小部件。目前,我将API密钥作为属性传递给我使用的每个小部件,如下所示: //该类通过名为apiKey的属性接收API密钥 SearchPlaceWidget(apiKey:YOUR_API_KEY); 我想要这样的东西: //该类将直接从AndroidMan

我想在我的包中使用GoogleMapsAPI的API键,假设它存在于AndroidManifest文件(以及iOS等效文件)中。我发现如果您使用
google\u maps\u flatter
包,您永远不必将API键传递给
GoogleMap
小部件。目前,我将API密钥作为属性传递给我使用的每个小部件,如下所示:

//该类通过名为apiKey的属性接收API密钥
SearchPlaceWidget(apiKey:YOUR_API_KEY);

我想要这样的东西:

//该类将直接从AndroidManifest文件获取API密钥
SeachPlaceWidget()

您无法从
AndroidManifest.xml
文件中获取变量。下面是您可以做的,在
lib
文件夹中创建一个新文件,比如说
strings.dart
,在该文件中

在新创建的
lib/strings.dart中编写此代码

final String apiKey = "your_api_key";
无论您想在何处使用API密钥,只需导入
lib/strings.dart
文件,然后像这样使用它:

SearchPlaceWidget(apiKey: apiKey);

谷歌地图小部件是如何访问它的?直接从本机语言(Android的Java和iOS的Obj-C)?在我的例子中,因为我正在将其制作成一个包,所以使用这个解决方案并不是最好的(将其作为参数之一传递给小部件构造函数更好)?如果是,您已经有了
strings.xml
文件,您可以在那里添加上面的字符串,并像
getString(R.String.api_key)
我没有处理本机代码一样使用它。我将在Flatter GitHub中打开一个功能请求,让他们制作一个简单的API,这样我们就可以访问AndroidManifest(和iOS等效)全局变量。
GoogleMap
widget可以像我提到的
SearchPlaceWidget
一样访问它,你所需要做的就是导入
strings.dart
文件并使用
apiKey
在这种情况下,它没有任何帮助,因为我正在制作一个供任何人使用的包,只需在小部件构造函数中请求api密钥就更容易了。谢谢你的帮助。