如何从方法通道检索字符串列表

Yea*_*508 5 android flutter

我想从原生 Android 检索字符串列表以通过方法通道颤动。这个字符串列表是所有联系电话号码。我目前的代码:

 new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
        new MethodChannel.MethodCallHandler() {
          @Override
          public void onMethodCall(MethodCall call, MethodChannel.Result result) {
            if (call.method.equals("getContacts")) {
              contacts = getContactList();

              if (contacts != null) {
                result.success(contacts);
              } else {
                result.error("UNAVAILABLE", "not avilable", null);
              }
            } else {
              result.notImplemented();
            }
          }
        });
Run Code Online (Sandbox Code Playgroud)

在颤振中:

final Iterable result = await platform.invokeMethod('getContacts');
  contactNumber = result.toList();
Run Code Online (Sandbox Code Playgroud)

但是我没有得到任何颤振的回应。如何仅从原生 android 检索电话号码到颤振?

小智 5

这是我如何做到的。

Android 本机代码(使用字符串发送列表):

new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
            new MethodCallHandler() {
                @Override
                public void onMethodCall(MethodCall call, Result result) {
                    if (call.method.equals("samples.flutter.io/contact")) {
                        final List<String> list = new ArrayList<>();
                        list.add("Phone number 1");
                        list.add("Phone number 2");
                        list.add("Phone number 3");

                        result.success(list);
                    } else {
                        result.notImplemented();
                    }
                }
            }
    );
Run Code Online (Sandbox Code Playgroud)

颤振代码:

List<dynamic> phoneNumbersList = <dynamic>[];

Future<List<String>> _getList() async {
   phoneNumbersList = await methodChannel.invokeMethod('samples.flutter.io/contact');
   print(phoneNumberList[0]);
   return phoneNumberList;
}
Run Code Online (Sandbox Code Playgroud)

  • 如果我有自定义类怎么办?我想作为列表检索? (3认同)