运行示例代码

2022-09-13
暂无评分

注册成为DJI开发者

您可以点击这里注册成为DJI开发者。

在注册过程中,需要您提供电子邮件信息和信用卡或手机号码用于注册验证。您所提供的任何信用卡信息将仅用于验证,不会收取任何费用。

本指南基于Android Studio Bumblebee 2021.1.1 大黄蜂及以上版本。

生成 App Key

每个应用程序都需要一个唯一的应用程序密钥(App Key)来初始化SDK。

要创建一个应用程序App Key:

请访问DJI开发者网站的 开发者中心

  • 选择左侧栏的 "应用 "。
  • 选择右侧的 “创建应用” 按钮。
  • 输入应用程序的名称, 开发平台, Package Name, 分类和描述信息。
  • 您会收到一封应用程序激活邮件,以完成App Key的生成。
  • 您可以在开发者中心中找到App Key,复制粘贴到应用程序配置中。

Android 示例代码

Android SDK已经包含在项目中,因此无需下载即可直接运行Android 示例代码工程。

Android 示例代码配置

  1. 下载或者克隆Github上的Android示例代码工程: https://github.com/dji-sdk/Mobile-SDK-Android-V5

  2. 若用户准备使用自己的工程,在Android Studio中打开项目工程,将生成的App Key字符串粘贴到 "AndroidManifest.xml" 文件中 android:value=""的“”符号内。

<!--
    ADD API_KEY HERE and make sure you
    are connected to the Internet before
    the app is launched
-->
<meta-data
    android:name="com.dji.sdk.API_KEY"
    android:value="" />
  1. 若用户直接使用MSDK的Sample工程,Sample对2.中的配置做了封装,在Android Studio中打开Sample工程后,可直接将生成的App Key字符串替换"gradle.properties" 文件中 AIRCRAFT_API_KEY = Please add your app key here.Please add your app key here.

运行示例代码

将示例代码编译安装到M30 系列遥控器(即DJI RC Plus)中,然后可以将DJI RC Plus连接到M30 系列飞行器上运行示例应用。

在开始使用之前,MSDK Sample会向您请求权限,如下是可能请求的权限范围。

<!-- SDK permission requirement -->
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <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" />
    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>

其中以下几项为必需权限,其余权限可按用户需求开启:

  • INTERNET:允许应用程序打开网络套接字。
  • ACCESS_COARSE_LOCATION:允许应用程序访问大致位置。
  • ACCESS_NETWORK_STATE:允许应用程序访问网络有关的信息。
  • ACCESS_FINE_LOCATION:允许应用程序访问精确的位置。
  • WRITE_EXTERNAL_STORAGE:允许应用程序写入外部存储器。
  • READ_EXTERNAL_STORAGE:允许应用程序从外部存储器中读取。
  • READ_PHONE_STATE:允许对手机状态进行只读访问,包括当前的蜂窝网络信息、任何正在进行的通话的状态以及设备上注册的任何 PhoneAccounts 的列表。

点击可查看权限具体含义open in new window

如果Sample主界面的左上角出现“注册状态:已注册” 字样说明示例代码运行成功,而出现”产品名称:M30_SERIES“,说明 MSDK 与飞行器连接成功。下图为SDK Manager接口调用流程图。

SDK Manager.png

注意:

在M30 系列飞行器配套的遥控器DJI RC Plus上启动基于MSDK开发的第三方App时,需要在DJI RC Plus遥控器系统设置界面下的的应用和通知界面把官方DJI Pilot强行退出后才能正常启动。此问题是遥控器固件的设计导致。

conflict.gif