本節主要記錄開發自己的HelloDrone無人機的過程,本節是第一節歡迎批評指正!
參考資料:
部落格參考
dronekit-android原始碼
Tower原始碼
usb-serial-for-android庫
1.建立一個空白的專案
2.建立專案名稱及儲存位置
3.最後點選完成
1.開啟build.gradle(Module:app),在依賴關係部分,新增下方庫並同步:
implementation 'com.o3dr.android:dronekit-android:3.0.2'
最後同步下來的資料:
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() {
}
}
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");
}
}
public class MainActivity extends ActionBarActivity implements DroneListener, TowerListener {
@Override
public void onDroneEvent(String event, Bundle extras) {//連線成功的回撥
}
@Override
public void onDroneServiceInterrupted(String errorMsg) {//連線失敗的回撥
}
...
}
到這裡基本就完成了一個簡單的呼叫3DR庫的無人機連線過程,但是由於呼叫的庫內容是不可以修改的,很不方便我們的學習,因此,我們可以參考官網提供的DEMO去學習,拿到原始碼進行實現自己的無人機APP。
官網提供的原始碼可以修改的地址:dronekit-android demo
下面是自己呼叫3DR的DEMO進行修改得到的原始碼圖片
最終實現的介面是: