Dronekit-Android中ConnectionParameter参数需求及UDP连接报错排查
解决Dronekit-Android中ConnectionParameter实例化报错问题
嘿,我来帮你搞定这个UDP连接的问题!你遇到的报错是因为ConnectionParameter的构造方法被设为私有了,所以不能直接用new ConnectionParameter(...)来创建实例——这个类设计成了用Builder模式来构建对象。
正确创建UDP连接的ConnectionParameter方式
你应该用ConnectionParameter.Builder来构建连接参数,下面是适配你需求的修正代码:
// 构建UDP连接的参数 Bundle extraParams = new Bundle(); extraParams.putInt(ConnectionType.EXTRA_UDP_SERVER_PORT, DEFAULT_UDP_PORT); ConnectionParameter connectionParameter = new ConnectionParameter.Builder() .setConnectionType(ConnectionType.TYPE_UDP) .setExtraParams(extraParams) // 如果不需要Uri可以传null,或者根据需求设置 .setUri(null) .build(); drone.connect(connectionParameter);
ConnectionParameter的核心参数说明
通过Builder类,你需要设置的核心参数包括:
- 连接类型:通过
setConnectionType()指定,比如你用的ConnectionType.TYPE_UDP,还有TYPE_TCP、TYPE_USB等选项 - 额外参数:通过
setExtraParams()传入Bundle,针对不同连接类型传对应的参数(比如UDP需要端口,TCP需要IP和端口) - Uri(可选):通过
setUri()设置,部分连接类型可能需要,UDP场景下一般传null即可
查询Java库必填参数的实用方法
除了查官方文档,还有几个本地就能搞定的方式:
- 查看源码注释:在Android Studio里,按住Ctrl(Mac是Cmd)点击
ConnectionParameter类名,直接跳转到源码,看Builder类的每个方法注释,里面会说明参数的作用和必填性 - 利用代码提示:输入
new ConnectionParameter.Builder().之后,Android Studio会弹出所有可用的构建方法,悬停在方法上就能看到参数说明 - 参考官方示例:3DR的Dronekit-Android项目里有现成的连接示例,比如UDP连接的Demo代码,直接参考示例里的参数设置
- 查看SDK的JavaDoc:如果SDK附带了JavaDoc,你可以在Android Studio中关联后,通过Ctrl+Q(Mac是Ctrl+J)快速查看类和方法的详细文档
内容的提问来源于stack exchange,提问作者Infinity_Challenge
相关产品推荐
相关产品推荐

