详细内容请参见DJI提供的开发者文档,这里讨论在执行过程中的一些细节。
APP注册与认证
在上篇随笔中已经谈到最终选择的技术路线,也就是基于DJI MobileSDK进行开发,随后就可以立即开工,希望在开发者文档中解决过程中遇到的问题。虽然如此,安卓开发对笔者来说仍然是全新的领域,在配置环境,调整API版本和大量的依赖中周旋了很久。实际上,开发者文档可能是在持续更新的,这使得一些内容并不统一,甚至同一个标程拆出来的示例程序的细节都有差异,在尝试直接套用之后总会报出各种错误。
例如,在根据开发文档开始新建项目,并进行配置之后,运行时出现了闪退问题,无论是在模拟器还是在手机上都无法正常运行。然而在前面给的示例又能够正常运行。查看示例,发现已经迭代过许多版本,怀疑是示例中修改了代码而文档内并没有体现。最终导致闪退的原因被锁定在http请求上,似乎在安卓9之后直接进行http请求不再被允许,使得按照之前的文档进行的gradle配置失效。根据其它教程,添加部分插件后,又出现了无法编译的问题。
经过长时间的调整和对java sdk版本的回调,终于得到了能够基本运行的程序。此时模拟器又成了问题,然而笔者已经无暇再匹配模拟器的版本,尝试之后发现手机竟然可以直接运行,就硬着头皮继续往下做,用手机来调试了。
可是对于该项目来说,手机必须要连接RemoteController才可由app控制无人机,而显然手机只有一个type