运行示例代码
本指引中使用的 Android Studio 版本为 Android Studio Koala 2024.1.1,适配的 MSDK 为最新版本。可以预先阅读 MSDK Sample 工程的 Readme 文件 熟悉 Sample 工程。
注册成为 DJI 开发者
说明: 在注册过程中,需要您提供电子邮件信息、信用卡信息、手机号码用于注册验证。您所提供的任何信用卡信息将仅用于验证,不会收取任何费用。
生成 App Key
每个应用程序都需要一个唯一的应用程序密钥 (App Key) 来初始化 SDK。要创建一个应用程序 App Key,请访问 DJI 开发者网站的开发者中心。
- 点击左侧导航栏 “应用”。
- 点击右侧的 “创建应用” 按钮。
- 用户自行填充 App Type、App 名称、开发平台、Package Name 等信息。需要注意,
Package Name
需要与示例代码工程的 “applicationId” 参数保持一致。可以参考build.gradle
文件与下面的代码段。
defaultConfig {
applicationId "com.dji.sampleV5.aircraft"
minSdkVersion Integer.parseInt(project.ANDROID_MIN_SDK_VERSION)
targetSdkVersion Integer.parseInt(project.ANDROID_TARGET_SDK_VERSION)
versionCode 1
versionName "1.0"
manifestPlaceholders["API_KEY"] = project.AIRCRAFT_API_KEY
ndk {
abiFilters 'arm64-v8a'
}
}
- 用户会收到一封应用程序激活邮件,激活成功后返回开发者中心,即可获得 App Key 用于后续配置。
运行 Android 示例代码
Android SDK 已经包含在项目中,因此无需下载即可直接运行 Android 示例代码工程。
示例代码配置
- 下载或者克隆 Github 上的 Android 示例代码工程(后称 Sample)。
- 在 Android Studio 的上方工具栏选择
File > Open...
,导入 “android-sdk-v5-as” 工程。 - Sample 对配置做了封装,在 Android Studio 完成导入后,可直接将生成的 App Key 补充到 "gradle.properties" 文件,可以参考下面的代码段。
#msdk api key
AIRCRAFT_API_KEY = Please add your app key here.
示例代码运行
- 编译安装示例代码。由于飞行器配备的遥控器不同,安装场景有所不同。对于带屏遥控器,App 则安装在遥控器上。需要外接移动设备的遥控器,App 则安装在移动设备上。MSDK 支持的飞行器及其配套的遥控器可以从版本发布记录中的支持产品列表和固件版本中查看。
说明:
- 对于 M300 RTK 支持的 DJI 带屏遥控器行业版,该遥控器既支持 App 安装在遥控器上,也支持安装在移动设备上。
- 使用的移动设备需要注意安装的 Android 版本,MSDK 当前最高支持 Android 14(API 级别 34)。
在开始使用之前会向您请求权限,如下是所需权限清单,权限的含义介绍可以阅读 Manifest.permission。其中获取设备位置、访问媒体文件、允许录音将被系统显示,需要开发者选择是否允许。
SDK 所需权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
Sample 所需权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" />
uxsdk 所需权限
<uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
- 如果 Sample 主界面的左上角出现 “注册状态:已注册” 字样说明示例代码运行成功,而出现“产品名称:实际产品名”,说明 MSDK 与飞行器连接成功。
若出现 “{errorType='SDK', errorCode='INVALID_METADATA', innerCode='null', description='The metadata received from server is invalid, please reconnect to the server and try.', hint='The metadata received from server is invalid, please reconnect to the server and try.'}” 字样的注册失败的报错,有可能是申请 App Key 时使用的 Package Name
与示例代码工程的 “applicationId” 参数不一致,请注意检查。
注意:
在航拍无人机配套的遥控器 DJI RC Pro 上启动基于 MSDK 开发的第三方 App 时,需要在 DJI RC Pro 遥控器系统设置界面下的的应用和通知界面把官方 DJI Fly 强行退出后才能正常启动。此问题是遥控器固件的设计导致。
相关接口调用
ISDKManager 是 MSDK 入口管理类,用于初始化和注册 MSDK,提供设备连接、设备信息获取等功能。
