限飞解禁教程
Sample 介绍
限飞解禁功能给开发者提供飞行安全通知,即对飞行安全信息、飞行安全警告信息、飞行安全严重警告信息、飞行安全返航信息、飞行器附近限飞区的变化进行监听。通过限飞解禁可以获取飞行器周边特定公里范围的限飞区,并对指定的限飞区进行解锁。解锁后将不再提示任何限飞区并取消飞行器起飞限制,若飞行器重启,限飞区提示与起飞限制将恢复。
限飞区划分
MSDK 对限飞区的划分在 限飞区策略枚举值 – FlyZoneCategory
可查阅。限飞区类型的介绍可通过限飞查询 获得,如下图所示。

注意:
- 如果飞行器飞行过程途径禁飞区或授权区,或者飞行器飞行超过限高区,飞行器将在区域前悬停并且无法打杆飞行器往区域方向前进。
- M300 RTK、M350 RTK、M30 系列、M3 系列等行业类机型,可直接传入 flyZoneID 进行授权区解禁,重启飞行器后授权区将继续禁飞。
- DJI Mini 3 和 DJI Mini 3 Pro 等消费类机型,需要参考飞行器解禁操作流程,在 DJI 限飞官网申请解禁后,调用
downloadFlyZoneLicensesFromServer
和pushFlyZoneLicensesToAircraft
进行授权区解禁。- 限飞区查询方式:
1. 通过getFlyZonesInSurroundingArea()
获取飞行器为中心位置特定公里范围内的限飞区。
2. 通过官网进行限飞查询,可以通过输入 “地址” 或 “经度,纬度” 查询。- 获取飞行器附近限飞区信息,MSDK 必须与飞行器已经连接。
证书解禁
以下为证书解禁步骤介绍,增强警示区与授权区可以直接通过 MSDK API 解锁,不必借助解禁证书。
- 登陆 DJI 账号后,前往官网申请解禁证书。
- 通过
downloadFlyZoneLicensesFromServer()
从服务器上获取证书,下载到 App。请注意需要预先调用logInDJIUserAccount()
登陆 DJI 账号,以获取该 DJI 账号持有的解禁证书。 - 通过
pushFlyZoneLicensesToAircraft()
导入与当前飞行器 SN 一致的证书到飞行器飞控中。
说明: 导入成功即可通过pullFlyZoneLicensesFromAircraft()
获取已经导入到飞行器的解禁证书列表。开发者根据通过当前飞行器已有的解禁证书,可以自定义后续操作。 - 通过
setFlyZoneLicensesEnabled()
使能 / 关闭证书能力,使能解禁证书后,飞行器将能够在限飞区正常起飞。
说明: 限飞解禁证书信息类FlyZoneLicenseInfo()
介绍了证书类型、有效期、证书绑定的飞行器飞控 SN 等。
获取解禁信息
目前存在两种获取解禁信息的方式,一种是从服务器拉取到账户申请的解禁信息,即downloadFlyZoneLicensesFromServer()
。另一种是从飞行器上获取飞控已经存储的解禁信息,即pullFlyZoneLicensesFromAircraft()
。从服务器上获取的解禁信息不一定是完整的,只有从飞行器获取到的信息才是完整的解禁信息。
一般流程如下:
downloadFlyZoneLicensesFromServer()
– 获取账户解禁信息pushFlyZoneLicensesToAircraft()
– 将获取到的解禁信息同步给飞行器pullFlyZoneLicensesFromAircraft()
– 获取完整解禁信息
接口调用流程
下图为限飞解禁接口调用流程示例,无需每步参照,请视实际情况调用。详细的使用方法请查看 Mobile SDK API 文档中的限飞解禁管理类 IFlyZoneManager 以及 Sample 代码。
.png)