我已经开始学习Flutter。我正在尝试使用MethodChannel和MethodCall与Android平台进行通信。我不知道如何将参数传递给Android代码。
下面是我的代码。
// dart
void _onClick() async {
var parameters = {'image':'starry night'};
await platform.invokeMethod('showToast', new Map.from(parameters));
}
// kotlin
MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result ->
Log.d("MainActivity", ">> ${call.method}, ${call.arguments}")
when (call.method) {
"showToast" -> {
showToast("toast")
}
else -> {
Log.d("MainActivity", "fail");
}
}
Run Code Online (Sandbox Code Playgroud)
我可以检查一个争论值,该值是我通过日志消息传递的内容,是我打印的内容。
{image=starry night}
但是我不知道如何解析到地图对象。
我正在制作一个在 android 设备上运行的 Gatt 服务器应用程序,它运行良好。
但我有一个关于设备名称的问题。
我用我的“Nexus 5X”创建了这个应用程序,它的默认设备名称是“Nexus 5x”,Gatt 客户端可以很好地扫描这个设备。
但是,如果服务器运行在“Galaxy S7”上,客户端将无法找到服务器设备。
因此,我检查了服务器的设备名称,默认为“Samsung Galaxy S7”。将名称更改为“gal7”后,它工作正常。
在我的测试中,android gatt 服务器允许设备名称长度最大为 8 个字符。
“Nexus 5x”--> 很好
“Galaxy S7”--> 不好
“Nexus”--> 很好
“长名称设备”--> 坏
是否有任何原因(错误与否),gatt 服务器设备名称长度限制?