Flutter: How can I pass a selected file through a method channel? Or specify a path in flutter and have it work through kotlin/java?

I'm relying on native code in flutter to load a .kml overlay on to my Google Map (modified GoogleMapController.java).

The .kml overlay is stored here: android/app/src/main/res/raw/borders.kml.

I call my overlay in main.dart like so:

  Future<void> addKml(GoogleMapController mapController) async {

    const MethodChannel channel = MethodChannel('flutter.native/helper');
    try {
      int kmlResourceId = await channel.invokeMethod('KML');
      return mapController.channel.invokeMethod("map#addKML", <String, dynamic>{
        'resourceId': kmlResourceId,
    } on PlatformException catch (e) {
      throw 'Unable to plot map: ${e.message}';

This is my MainActivity.kt:

class MainActivity: FlutterActivity() {

    private val CHANNEL = "flutter.native/helper"
    private var mapId: Int? = null

    override fun onCreate(savedInstanceState: Bundle?, PersistentState: PersistableBundle?) {
        super.onCreate(savedInstanceState, PersistentState)



    override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {

            call,result ->
            if (call.method == "KML") {
                result.success (getKMLResource());
            } else {

    private fun getKMLResource(): Int {
        return R.raw.borders;

and finally, my GoogleMapController.java:

        case "map#addKML":
            int resourceId = call.argument("resourceId");
        try {
            KmlLayer kml = new KmlLayer(googleMap, resourceId, context);
        } catch (XmlPullParserException e) {
        } catch (IOException e) {

How can I specify a path in flutter to load my .kml from? It seems to be loading from here in kotlin:

return R.raw.borders;

Hope someone can help me out here. Thank you in advance.