目錄
文章目錄
- 目錄
- 摘要
- 1.專案設定
- 1.設定一個基本的Android Studio專案
- 2.添加客戶端庫
- 3.實作TowerListener的監聽事件
- 4.初始化ControlTower 并系結activity的生命周期
- 5.實作無人機監聽事件
- 6.無人機實體化并在tower上注冊
摘要
本節主要記錄開發自己的HelloDrone無人機的程序,本節是第一節歡迎批評指正!
參考資料:
博客參考
dronekit-android原始碼
Tower原始碼
usb-serial-for-android庫
1.專案設定
1.設定一個基本的Android Studio專案
1.建立一個空白的專案

2.建立專案名稱及存盤位置

3.最后點擊完成

2.添加客戶端庫
1.打開build.gradle(Module:app),在依賴關系部分,添加下方庫并同步:
implementation 'com.o3dr.android:dronekit-android:3.0.2'

最后同步下來的資料:

3.實作TowerListener的監聽事件

public class MainActivity extends AppCompatActivity implements TowerListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onTowerConnected() {
}
@Override
public void onTowerDisconnected() {
}
}
4.初始化ControlTower 并系結activity的生命周期
package com.example.dzuav_hellodrone;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.o3dr.android.client.ControlTower;
import com.o3dr.android.client.interfaces.TowerListener;
public class MainActivity extends AppCompatActivity implements TowerListener {
//定義私有的Tower APP控制
private ControlTower controlTower;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//創建私有物件
this.controlTower = new ControlTower(getApplicationContext());
}
@Override
protected void onStart() {
super.onStart();
//實作連接
this.controlTower.connect(this);
}
@Override
protected void onStop() {
super.onStop();
this.controlTower.disconnect();
}
@Override
public void onTowerConnected() {
Log.i("LXW","onTowerConnected");
}
@Override
public void onTowerDisconnected() {
Log.i("LXW","onTowerDisconnected");
}
}

5.實作無人機監聽事件
public class MainActivity extends ActionBarActivity implements DroneListener, TowerListener {
@Override
public void onDroneEvent(String event, Bundle extras) {//連接成功的回呼
}
@Override
public void onDroneServiceInterrupted(String errorMsg) {//連接失敗的回呼
}
...
}
6.無人機實體化并在tower上注冊

到這里基本就完成了一個簡單的呼叫3DR庫的無人機連接程序,但是由于呼叫的庫內容是不可以修改的,很不方便我們的學習,因此,我們可以參考官網提供的DEMO去學習,拿到原始碼進行實作自己的無人機APP,
官網提供的原始碼可以修改的地址:dronekit-android demo
下面是自己呼叫3DR的DEMO進行修改得到的原始碼圖片

最終實作的界面是:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/142291.html
標籤:其他
上一篇:vue-cli4/vue-cil3使用process.env.VUE_APP_BASE_API全域地址代替vue-cli2的process.env.BASE_API
